Monday.com MCP Server
A Model Context Protocol (MCP) server that provides tools to interact with the Monday.com API. This server enables AI assistants to retrieve board lists, board details, item content, and user information from your Monday.com workspace.
What is MCP?
The Model Context Protocol (MCP) is an open protocol that enables AI applications to connect to external data sources and tools. MCP servers expose tools, resources, and prompts that can be used by AI assistants like Claude to perform actions and access information.
Features
Board Management: Retrieve paginated lists of boards from your Monday.com workspace
Board Details: Get detailed information about specific boards with filtered items
Item Content: Fetch detailed content for specific board items including parsed descriptions
User Information: Retrieve information about the currently authenticated user
Stdio Transport: Uses standard input/output for communication (perfect for local development)
TypeScript: Written in TypeScript for type safety and better developer experience
Zod Validation: Uses Zod for schema validation of tool inputs and outputs
Error Handling: Comprehensive error handling with user-friendly messages
Prerequisites
Node.js (v18 or higher recommended)
npm or yarn
Monday.com account with API access
Monday.com API token
Installation
Clone or download this repository
Install dependencies:
Set up your Monday.com API token as an environment variable:
Or create a .env file in the project root:
Getting Your Monday.com API Token
Log in to your Monday.com account
Click on your avatar in the bottom left corner
Navigate to Administration → API
Generate a new API token or copy an existing one
Copy the token and save it securely
Building
Compile TypeScript to JavaScript:
This will create the compiled JavaScript files in the dist/ directory.
Running the Server
Production Mode
After building, run the compiled server:
Development Mode
Run the server directly with TypeScript (no build step required):
The server will start and listen for MCP requests via stdio (standard input/output).
Available Tools
The server exposes four tools to interact with Monday.com:
1. monday_get_board_list
Retrieve a paginated list of boards from your Monday.com workspace.
Parameters:
limit(number, optional): Maximum number of boards to return (default: 10)page(number, optional): Page number for pagination (default: 1)
Returns:
Array of board objects with ID, name, description, item terminology, state, and views
Example Usage:
2. monday_get_board_details
Retrieve detailed information about a specific board with filtered items (assigned to me and ready to start).
Parameters:
boardId(string, required): The ID of the board to retrieve details for
Returns:
Board object with filtered items that match the criteria
Example Usage:
3. monday_get_board_item_list
Retrieve detailed content for a specific board item including parsed description text.
Parameters:
itemId(string, required): The ID of the item to retrieve content for
Returns:
Item object with id, name, and clean description text (images filtered out)
Example Usage:
4. monday_get_me
Retrieve information about the currently authenticated Monday.com user.
Parameters:
None
Returns:
User object with profile details (id, name, email, etc.)
Example Usage:
Project Structure
How It Works
Architecture
Server Creation: The server is created using
McpServerfrom@modelcontextprotocol/sdkTool Registration: All tools are registered via the central
registerToolsfunctionService Layer: Business logic is separated into service modules (boards, items, users)
Monday.com Client: API interactions use the official
@mondaydotcomorg/apiSDKTransport Setup: The server connects via
StdioServerTransportfor stdio communicationRequest Handling: When a client calls a tool, it executes the corresponding service function
Services
Board Service (services/boards.ts)
getBoardListPaginated(limit, page): Fetches a paginated list of boardsgetBoardDetailsPaginated(boardId): Fetches board details with filtered items
Item Service (services/items.ts)
getBoardItemContent(itemId): Fetches item content with parsed description
User Service (services/users.ts)
getMe(): Fetches current authenticated user information
Content Parsing
The server includes utilities to parse Monday.com's description format:
Extracts clean text from Quill-like deltaFormat structures
Filters out image blocks
Provides readable text content
Using with MCP Clients
To use this server with an MCP client (like Claude Desktop or Cursor), you'll need to configure it in your MCP client settings. The server communicates via stdio, so the client needs to spawn the server process.
Example Client Configuration
For Claude Desktop, add to your ~/Library/Application Support/Claude/claude_desktop_config.json:
For Cursor, add to your ~/.cursor/mcp.json:
Development
Scripts
npm run build- Compile TypeScript to JavaScript using tsupnpm start- Run the compiled servernpm run dev- Run the server directly with TypeScript (development mode)
Dependencies
@modelcontextprotocol/sdk- Official MCP SDK for TypeScript/Node.js@mondaydotcomorg/api- Official Monday.com API SDKzod- Schema validation librarytypescript- TypeScript compilertsup- TypeScript bundler for building
Adding New Tools
To add a new tool:
Create a new file in
src/tools/(e.g.,my-new-tool.ts)Define a
ToolDefinitionwith name, config, and handlerImport it in
src/tools/index.tsAdd it to the
toolsarray in theregisterToolsfunction
Example:
Error Handling
All tools include comprehensive error handling:
Errors are caught and returned in both human-readable format (
content) and structured format (structuredContent)Error responses include error type and message
Network errors, authentication issues, and API errors are handled gracefully
Learning Resources
License
ISC