Monday.com MCP Server

Monday.com MCP Server

Enables AI assistants to interact with Monday.com workspaces, allowing retrieval of board lists, board details, item content, and user information through the Monday.com API.

Category
访问服务器

README

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

  1. Clone or download this repository
  2. Install dependencies:
npm install
  1. Set up your Monday.com API token as an environment variable:
export MONDAY_API_TOKEN="your_api_token_here"

Or create a .env file in the project root:

MONDAY_API_TOKEN=your_api_token_here

Getting Your Monday.com API Token

  1. Log in to your Monday.com account
  2. Click on your avatar in the bottom left corner
  3. Navigate to AdministrationAPI
  4. Generate a new API token or copy an existing one
  5. Copy the token and save it securely

Building

Compile TypeScript to JavaScript:

npm run build

This will create the compiled JavaScript files in the dist/ directory.

Running the Server

Production Mode

After building, run the compiled server:

npm start

Development Mode

Run the server directly with TypeScript (no build step required):

npm run dev

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:

// Get first 10 boards
{ limit: 10, page: 1 }

// Get 25 boards from page 2
{ limit: 25, page: 2 }

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:

{ boardId: "1234567890" }

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:

{ itemId: "9876543210" }

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:

// No parameters needed
{}

Project Structure

mat-monday-mcp-server/
├── src/
│   ├── index.ts                      # Main server implementation
│   ├── types.ts                      # Type definitions
│   ├── config/
│   │   └── client.ts                 # Monday.com API client configuration
│   ├── services/
│   │   ├── boards.ts                 # Board-related API operations
│   │   ├── items.ts                  # Item-related API operations
│   │   ├── monday.ts                 # Core Monday.com service
│   │   └── users.ts                  # User-related API operations
│   ├── tools/
│   │   ├── index.ts                  # Tool registry
│   │   ├── get-board-list.ts         # Board list tool
│   │   ├── get-board-details.ts      # Board details tool
│   │   ├── get-board-item-content.ts # Item content tool
│   │   └── get-me.ts                 # Current user tool
│   └── utils/
│       └── content-parser.ts         # Content parsing utilities
├── dist/                             # Compiled JavaScript (generated)
├── package.json                      # Project dependencies and scripts
├── tsconfig.json                     # TypeScript configuration
├── tsup.config.ts                    # Build configuration
└── README.md                         # This file

How It Works

Architecture

  1. Server Creation: The server is created using McpServer from @modelcontextprotocol/sdk
  2. Tool Registration: All tools are registered via the central registerTools function
  3. Service Layer: Business logic is separated into service modules (boards, items, users)
  4. Monday.com Client: API interactions use the official @mondaydotcomorg/api SDK
  5. Transport Setup: The server connects via StdioServerTransport for stdio communication
  6. Request 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 boards
  • getBoardDetailsPaginated(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:

{
  "mcpServers": {
    "monday": {
      "command": "node",
      "args": ["/path/to/mat-monday-mcp-server/dist/index.js"],
      "env": {
        "MONDAY_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

For Cursor, add to your ~/.cursor/mcp.json:

{
  "mcpServers": {
    "monday": {
      "command": "node",
      "args": ["/path/to/mat-monday-mcp-server/dist/index.js"],
      "env": {
        "MONDAY_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Development

Scripts

  • npm run build - Compile TypeScript to JavaScript using tsup
  • npm start - Run the compiled server
  • npm 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 SDK
  • zod - Schema validation library
  • typescript - TypeScript compiler
  • tsup - TypeScript bundler for building

Adding New Tools

To add a new tool:

  1. Create a new file in src/tools/ (e.g., my-new-tool.ts)
  2. Define a ToolDefinition with name, config, and handler
  3. Import it in src/tools/index.ts
  4. Add it to the tools array in the registerTools function

Example:

// src/tools/my-new-tool.ts
import { z } from 'zod'
import type { ToolDefinition } from '../index'

export const myNewTool: ToolDefinition = {
  name: 'monday_my_new_tool',
  config: {
    title: 'My New Tool',
    description: 'Description of what this tool does',
    inputSchema: {
      param: z.string().describe('Description of parameter')
    },
    outputSchema: {
      result: z.any().describe('Result description')
    }
  },
  handler: async (inputs: any) => {
    try {
      // Tool logic here
      return {
        content: [{ type: 'text', text: 'Success message' }],
        structuredContent: { result: {} }
      }
    } catch (error) {
      const errorMessage = error instanceof Error ? error.message : 'Unknown error'
      return {
        content: [{ type: 'text', text: `Error: ${errorMessage}` }],
        structuredContent: {
          result: { error: true, type: 'ErrorType', message: errorMessage }
        }
      }
    }
  }
}

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

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选