Monday.com MCP Server

by sakce
Verified
  • src
  • mcp_server_monday
import json from mcp import types from monday import MondayClient async def handle_monday_get_board_groups( boardId: str, monday_client: MondayClient ) -> list[types.TextContent]: """Get the Groups of a Monday.com Board.""" response = monday_client.groups.get_groups_by_board(board_ids=boardId) return [ types.TextContent( type="text", text=f"Got the groups of a Monday.com board. {json.dumps(response['data'])}", ) ] async def handle_monday_get_board_columns( boardId: str, monday_client: MondayClient ) -> list[types.TextContent]: """Get the Columns of a Monday.com Board.""" query = f""" query {{ boards(ids: {boardId}) {{ columns {{ id title type }} }} }} """ response = monday_client.custom._query(query) return [ types.TextContent( type="text", text=f"Got the columns of a Monday.com board. {json.dumps(response)}", ) ] async def handle_monday_list_boards( monday_client: MondayClient, limit: int = 100 ) -> list[types.TextContent]: """List all available Monday.com boards""" response = monday_client.boards.fetch_boards(limit=limit) boards = response["data"]["boards"] board_list = "\n".join( [f"- {board['name']} (ID: {board['id']})" for board in boards] ) return [ types.TextContent( type="text", text=f"Available Monday.com Boards:\n{board_list}" ) ]