MatteoMass's picture
removed the tokens from env
9ad58d0
"""
This module contains tools for managing Trello boards.
"""
import logging
from typing import List
from mcp.server.fastmcp import Context
from pmcp.mcp_server.trello_server.models import TrelloBoard, TrelloLabel
from pmcp.mcp_server.trello_server.services.board import BoardService
from pmcp.mcp_server.trello_server.trello import trello_client
service = BoardService(trello_client)
async def get_board(ctx: Context, 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.
"""
try:
result = await service.get_board(board_id)
return result
except Exception as e:
error_msg = f"Failed to get board: {str(e)}"
await ctx.error(error_msg)
raise
async def get_boards(ctx: Context) -> List[TrelloBoard]:
"""Retrieves all boards for the authenticated user.
Use this method when the user specify only the Board Name and you have to retrieve the Board ID.
Returns:
List[TrelloBoard]: A list of board objects.
"""
try:
result = await service.get_boards()
return result
except Exception as e:
error_msg = f"Failed to get boards: {str(e)}"
await ctx.error(error_msg)
raise
async def get_board_labels(ctx: Context, 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.
"""
try:
result = await service.get_board_labels(board_id)
return result
except Exception as e:
error_msg = f"Failed to get board labels: {str(e)}"
await ctx.error(error_msg)
raise