# Monday.com API MCP Server
A server implementation for the Model Context Protocol (MCP) that provides an interface to interact with Monday.com API.
? Claude Desktop Demo
https://github.com/user-attachments/assets/ed8d24e1-256b-4f6b-9d84-38e54a8703fd
Prerequisites
Before running the MCP server, make sure you have:
- Node v20 or higher installed
- NPM v5.2.0 or higher installed
- monday.com API key
⚙️ Usage
npx @mondaydotcomorg/monday-api-mcp -t abcd123
The Monday API token can also be provided via the monday_token
environment variable.
Command Line Arguments
Argument | Flags | Description | Required | Default |
---|---|---|---|---|
Monday API Token | --token , -t |
Monday.com API token (can also be provided via monday_token environment variable) |
Yes | - |
API Version | --version , -v |
Monday.com API version | No | current |
Read Only Mode | --read-only , -ro |
Enable read-only mode | No | false |
Dynamic API Tools | --enable-dynamic-api-tools , -edat |
(Beta) Enable dynamic API tools (Mode that includes the whole API schema, not supported when using read-only mode) | No | false |
? Claude Desktop Integration
{
"mcpServers": {
"monday-api-mcp": {
"command": "npx",
"args": [
"@mondaydotcomorg/monday-api-mcp",
"-t",
"abcd123"
]
}
}
}
? Cursor Integration
Using command line arguments
{
"mcpServers": {
"monday-api-mcp": {
"command": "npx",
"args": [
"@mondaydotcomorg/monday-api-mcp",
"-t",
"abcd123"
],
"env": {}
}
}
}
Using environment variable
{
"mcpServers": {
"monday-api-mcp": {
"command": "npx",
"args": [
"@mondaydotcomorg/monday-api-mcp"
],
"env": {
"monday_token": "abcd123"
}
}
}
}
License
This project is licensed under the MIT License - see the LICENSE file for details.
[
{
"description": "Delete an item",
"name": "delete_item",
"parameters": {
"additionalProperties": false,
"properties": {
"itemId": {
"type": "number"
}
},
"required": [
"itemId"
],
"type": "object"
}
},
{
"description": "Get items by board id and term",
"name": "get_board_items_by_name",
"parameters": {
"additionalProperties": false,
"properties": {
"boardId": {
"type": "number"
},
"term": {
"type": "string"
}
},
"required": [
"boardId",
"term"
],
"type": "object"
}
},
{
"description": "Create a new item in a monday.com board",
"name": "create_item",
"parameters": {
"additionalProperties": false,
"properties": {
"boardId": {
"description": "The id of the board to which the new item will be added",
"type": "number"
},
"columnValues": {
"description": "A string containing the new column values for the item following this structure: {column_id: value,... you can change multiple columns at once, note that for status column you must use nested value with label as a key and for date column use date as key} - example: {text_column_id:New text, status_column_id:{label:Done}, date_column_id:{date:2023-05-25},dropdown_id:value, phone_id:123-456-7890, email_id:[email protected]}",
"type": "string"
},
"groupId": {
"description": "The id of the group id to which the new item will be added, if its not clearly specified, leave empty",
"type": "string"
},
"name": {
"description": "The name of the new item to be created, must be relevant to the users request",
"type": "string"
}
},
"required": [
"boardId",
"name",
"columnValues"
],
"type": "object"
}
},
{
"description": "Create a new update in a monday.com board",
"name": "create_update",
"parameters": {
"additionalProperties": false,
"properties": {
"body": {
"description": "The update to be created, must be relevant to the users request",
"type": "string"
},
"itemId": {
"description": "The id of the item to which the update will be added",
"type": "number"
}
},
"required": [
"itemId",
"body"
],
"type": "object"
}
},
{
"description": "Get board schema (columns and groups) by board id",
"name": "get_board_schema",
"parameters": {
"additionalProperties": false,
"properties": {
"boardId": {
"description": "The id of the board to get the schema of",
"type": "number"
}
},
"required": [
"boardId"
],
"type": "object"
}
},
{
"description": "Get users, can be filtered by name or partial name",
"name": "get_users_by_name",
"parameters": {
"additionalProperties": false,
"properties": {
"name": {
"description": "The name or partial name of the user to get",
"type": "string"
}
},
"required": null,
"type": "object"
}
},
{
"description": "Change the column values of an item in a monday.com board",
"name": "change_item_column_values",
"parameters": {
"additionalProperties": false,
"properties": {
"boardId": {
"description": "The ID of the board that contains the item to be updated",
"type": "number"
},
"columnValues": {
"description": "A string containing the new column values for the item following this structure: {column_id: value,... you can change multiple columns at once, note that for status column you must use nested value with label as a key and for date column use date as key} - example: {text_column_id:New text, status_column_id:{label:Done}, date_column_id:{date:2023-05-25}, phone_id:123-456-7890, email_id:[email protected]}",
"type": "string"
},
"itemId": {
"description": "The ID of the item to be updated",
"type": "number"
}
},
"required": [
"boardId",
"itemId",
"columnValues"
],
"type": "object"
}
},
{
"description": "Move an item to a group in a monday.com board",
"name": "move_item_to_group",
"parameters": {
"additionalProperties": false,
"properties": {
"groupId": {
"description": "The id of the group to which the item will be moved",
"type": "string"
},
"itemId": {
"description": "The id of the item to which the update will be added",
"type": "number"
}
},
"required": [
"itemId",
"groupId"
],
"type": "object"
}
},
{
"description": "Create a monday.com board",
"name": "create_board",
"parameters": {
"additionalProperties": false,
"properties": {
"boardDescription": {
"description": "The description of the board to create",
"type": "string"
},
"boardKind": {
"default": "public",
"description": "The kind of board to create",
"enum": [
"private",
"public",
"share"
],
"type": "string"
},
"boardName": {
"description": "The name of the board to create",
"type": "string"
},
"workspaceId": {
"description": "The ID of the workspace to create the board in",
"type": "string"
}
},
"required": [
"boardName"
],
"type": "object"
}
},
{
"description": "Create a new column in a monday.com board",
"name": "create_column",
"parameters": {
"additionalProperties": false,
"properties": {
"boardId": {
"description": "The id of the board to which the new column will be added",
"type": "number"
},
"columnDescription": {
"description": "The description of the column to be created",
"type": "string"
},
"columnSettings": {
"description": "The default values for the new column (relevant only for column type status or dropdown) when possible make the values relevant to the users request",
"items": {
"type": "string"
},
"type": "array"
},
"columnTitle": {
"description": "The title of the column to be created",
"type": "string"
},
"columnType": {
"description": "The type of the column to be created",
"enum": [
"auto_number",
"board_relation",
"button",
"checkbox",
"color_picker",
"country",
"creation_log",
"date",
"dependency",
"direct_doc",
"doc",
"dropdown",
"email",
"file",
"formula",
"group",
"hour",
"integration",
"item_assignees",
"item_id",
"last_updated",
"link",
"location",
"long_text",
"mirror",
"name",
"numbers",
"people",
"person",
"phone",
"progress",
"rating",
"status",
"subtasks",
"tags",
"team",
"text",
"time_tracking",
"timeline",
"unsupported",
"vote",
"week",
"world_clock"
],
"type": "string"
}
},
"required": [
"boardId",
"columnType",
"columnTitle"
],
"type": "object"
}
},
{
"description": "Delete a column from a monday.com board",
"name": "delete_column",
"parameters": {
"additionalProperties": false,
"properties": {
"boardId": {
"description": "The id of the board to which the new column will be added",
"type": "number"
},
"columnId": {
"description": "The id of the column to be deleted",
"type": "string"
}
},
"required": [
"boardId",
"columnId"
],
"type": "object"
}
},
{
"description": "Create a new custom activity in the Eu0026A app",
"name": "create_custom_activity",
"parameters": {
"additionalProperties": false,
"properties": {
"color": {
"description": "The color of the custom activity",
"enum": [
"BRINK_PINK",
"CELTIC_BLUE",
"CORNFLOWER_BLUE",
"DINGY_DUNGEON",
"GO_GREEN",
"GRAY",
"LIGHT_DEEP_PINK",
"LIGHT_HOT_PINK",
"MAYA_BLUE",
"MEDIUM_TURQUOISE",
"PARADISE_PINK",
"PHILIPPINE_GREEN",
"PHILIPPINE_YELLOW",
"SLATE_BLUE",
"VIVID_CERULEAN",
"YANKEES_BLUE",
"YELLOW_GREEN",
"YELLOW_ORANGE"
],
"type": "string"
},
"icon_id": {
"description": "The icon ID of the custom activity",
"enum": [
"ASCENDING",
"CAMERA",
"CONFERENCE",
"FLAG",
"GIFT",
"HEADPHONES",
"HOMEKEYS",
"LOCATION",
"NOTEBOOK",
"PAPERPLANE",
"PLANE",
"PLIERS",
"TRIPOD",
"TWOFLAGS",
"UTENCILS"
],
"type": "string"
},
"name": {
"description": "The name of the custom activity",
"type": "string"
}
},
"required": [
"color",
"icon_id",
"name"
],
"type": "object"
}
},
{
"description": "Create a new timeline item in the Eu0026A app",
"name": "create_timeline_item",
"parameters": {
"additionalProperties": false,
"properties": {
"content": {
"description": "The content of the new timeline item",
"type": "string"
},
"custom_activity_id": {
"description": "The ID of the custom activity for the timeline item",
"type": "string"
},
"end_timestamp": {
"description": "The end time of the timeline item in ISO8601 format",
"type": "string"
},
"item_id": {
"description": "The ID of the item to create the new timeline item on",
"type": "number"
},
"location": {
"description": "The location to add to the new timeline item",
"type": "string"
},
"phone": {
"description": "The phone number to add to the new timeline item",
"type": "string"
},
"start_timestamp": {
"description": "The start time of the timeline item in ISO8601 format",
"type": "string"
},
"summary": {
"description": "The summary of the new timeline item (max 255 characters)",
"type": "string"
},
"timestamp": {
"description": "The creation time of the new timeline item in ISO8601 format (e.g., 2024-06-06T18:00:30Z)",
"type": "string"
},
"title": {
"description": "The title of the new timeline item",
"type": "string"
},
"url": {
"description": "The URL to add to the new timeline item",
"type": "string"
}
},
"required": [
"item_id",
"custom_activity_id",
"title",
"timestamp"
],
"type": "object"
}
},
{
"description": "Get custom activities from the Eu0026A app",
"name": "fetch_custom_activity",
"parameters": {
"additionalProperties": false,
"properties": {},
"required": null,
"type": "object"
}
}
]