|
""" |
|
Service for managing Trello boards in MCP server. |
|
""" |
|
|
|
from typing import List |
|
|
|
from pmcp.mcp_server.trello_server.models import TrelloBoard, TrelloLabel |
|
from pmcp.mcp_server.trello_server.utils.trello_api import TrelloClient |
|
|
|
|
|
class BoardService: |
|
""" |
|
Service class for managing Trello boards |
|
""" |
|
|
|
def __init__(self, client: TrelloClient): |
|
self.client = client |
|
|
|
async def get_board(self, board_id: str) -> TrelloBoard: |
|
"""Retrieves a specific board by its ID. |
|
|
|
Args: |
|
board_id (str): The ID of the board to retrieve. |
|
|
|
Returns: |
|
TrelloBoard: The board object containing board details. |
|
""" |
|
response = await self.client.GET(f"/boards/{board_id}") |
|
return TrelloBoard(**response) |
|
|
|
async def get_boards(self, member_id: str = "me") -> List[TrelloBoard]: |
|
"""Retrieves all boards for a given member. |
|
|
|
Args: |
|
member_id (str): The ID of the member whose boards to retrieve. Defaults to "me" for the authenticated user. |
|
|
|
Returns: |
|
List[TrelloBoard]: A list of board objects. |
|
""" |
|
response = await self.client.GET(f"/members/{member_id}/boards") |
|
return [TrelloBoard(**board) for board in response] |
|
|
|
async def get_board_labels(self, board_id: str) -> List[TrelloLabel]: |
|
"""Retrieves all labels for a specific board. |
|
|
|
Args: |
|
board_id (str): The ID of the board whose labels to retrieve. |
|
|
|
Returns: |
|
List[TrelloLabel]: A list of label objects for the board. |
|
""" |
|
response = await self.client.GET(f"/boards/{board_id}/labels") |
|
return [TrelloLabel(**label) for label in response] |
|
|