Integrate monday MCP server into your Slack workspace for instant access to your AI agent.
Tools that your AI agent can use through this MCP server to interact with monday
Rename an existing item. Use for the item's name only — Update Column Values cannot change it, and this action changes nothing else. Set Board ID, Item ID and the new Item Name. Example: Item ID 9876543210, Item Name Website redesign v2. Returns the item's ID as a string. Use Get Board Items Page or Get Items By Column Value to find an Item ID. See the documentation
Set one or more column values on an existing item. Use for any field change except the item's name — this mutation cannot change it, so use Update Item Name for that. Set Board ID, Item ID and Column Values as column ID to value pairs; call List Columns first for the column IDs and the labels a status/dropdown column accepts. Example: Column Values { "status": "Done", "date4": "2026-09-02", "numbers": 42 }. A file column takes a file URL or a path under /tmp and is uploaded in a separate request. Every column ID is checked against the board before anything is sent, so a call that names an unknown column fails without changing the item. Returns the updated item with its column_values. See the documentation
List the account's workspaces as { value, label } option pairs, to discover the Workspace IDs to pass to actions that filter across several workspaces, such as List Boards. Use when you know workspaces by name but need their IDs. Example: call with Page 1; returns e.g. [{ "value": 12345, "label": "Marketing" }]. Returns at most Limit workspaces per page (25 by default), so if exactly Limit come back there are probably more — call again with Page incremented by 1. See the documentation
List the account's workspaces as { value, label } option pairs, to discover a Workspace ID to pass to Create Board or to filter List Boards. Use when you know a workspace by name but need its ID. Example: call with Page 1; returns e.g. [{ "value": 12345, "label": "Marketing" }]. Returns at most Limit workspaces per page (25 by default), so if exactly Limit come back there are probably more — call again with Page incremented by 1. See the documentation
List the updates (comments) posted on a board's items, including each update's ID, body and author. Use this to discover the Parent Update ID required by Create an Update when replying to an existing update. Set Board ID. Example: Limit 25, Page 1. Returns an array of update objects, each carrying the item_id of the item it was posted on. If exactly Limit updates come back there are probably more — call again with Page incremented by 1. See the documentation
List the columns of a board, including each column's ID, type, and the labels a status or dropdown column accepts. Use this to discover the column IDs and values required by Create Item, Update Column Values and Get Items By Column Value. Set Board ID. Example: returns e.g. [{ "id": "status", "title": "Status", "type": "status", "labels": ["Done", "Working on it"] }]; labels is absent for column types that do not use them. Not paginated — every column on the board is returned. See the documentation
List boards with their full details — columns, groups, owners, subscribers, tags and workspace. Use when you need board metadata; use List Board ID Options when you only need an ID and a name, which returns a far smaller response. Narrow the results with Board IDs, Workspace IDs, Board Kind and State. Example: Limit 25, Page 1, State active. Returns an array of board objects. If exactly Limit boards come back there are probably more — call again with Page incremented by 1. See the documentation
List the account's boards as { value, label } option pairs, to discover the Board IDs to pass to actions that filter across several boards, such as List Boards. Use when you know boards by name but need their IDs. Example: call with Page 1; returns e.g. [{ "value": "2419687965", "label": "Q3 Campaigns" }]. Returns at most 25 options per page, so if exactly 25 come back there are probably more — call again with Page incremented by 1. Sub-items boards are excluded. See the documentation
List the account's boards as { value, label } option pairs, to discover a Board ID to pass to other actions. Use when you know a board by name but need its ID; use List Boards when you want each board's full details instead. Example: call with Page 1; returns e.g. [{ "value": "2419687965", "label": "Q3 Campaigns" }]. Returns at most 25 options per page, so if exactly 25 come back there are probably more — call again with Page incremented by 1. Sub-items boards are excluded. See the documentation
Find every item on a board whose column matches a value, following the API's cursor automatically so all matches are returned in a single call. Use to look up items by a field instead of pulling the whole board with Get Board Items Page. Set Board ID, Column and Value. For a status or dropdown column pass the label text rather than its ID — call List Columns to see the labels a column accepts. Example: Column status, Value Done. Returns an array of matching items, each with a column_values array of { id, value } pairs; an empty array means nothing matched. Gotcha: not every column type is searchable this way. See the documentation
Read the column values of one item. Use when you already have an Item ID and want its field values; use Get Items By Column Value to search for items by a value instead. Set Board ID and Item ID; leave Column IDs empty to return every column, or pass specific column IDs from List Columns. Example: Item ID 9876543210, Column IDs ["status", "date4"]. Returns an array holding the item and a column_values array of { id, value } pairs, where value is the column's display text when one exists and the raw JSON value otherwise. See the documentation
List every item (row) on a board, following the API's cursor automatically so all pages are returned in a single call — you do not need to paginate. Use when you want the whole board; use Get Items By Column Value to filter server-side by one column, which is far cheaper on a large board. Set Board ID, and optionally Query Params to filter or sort. Example: Query Params { "rules": [{ "column_id": "status", "compare_value": ["Done"], "operator": "any_of" }] }. Returns an array of items with id, name, state, timestamps and column values. Gotcha: a large board returns every row in one response, so expect a slow call and a large payload. See the documentation
Post an update (a comment) on an item, or reply to an existing update. Use to add a note to an item's activity feed; this changes no column value — use Update Column Values for that. Set Board ID, Item ID and Update Body, and set Parent Update ID only when replying to an existing update rather than starting a new thread. Example: Update Body Design approved, moving to build. Returns the new update's ID as a string. Use Get Board Items Page to find an Item ID. See the documentation
Create a subitem nested under an existing item. Use when the row belongs to a parent item; use Create Item for a top-level row. Set Board ID (the parent item's board), Parent Item ID and Item Name. Gotcha: subitems live on a separate subitems board, so Column Values must use that board's column IDs — run List Columns against the subitems board, not the board selected here. Example: Item Name Draft copy, Column Values { "status": "Done" }. Returns the new subitem's ID as a string. See the documentation
Create an item (a row) on a board. Use for a top-level row; use Create Subitem for a row nested under an existing item. Set Board ID and Item Name, and optionally Group ID and Column Values. Call List Columns first to get the column IDs and the labels a status or dropdown column accepts. Example: Item Name Website redesign, Column Values { "status": "Working on it", "date4": "2026-09-02", "numbers": 42 }. Set Item Create Labels to true to allow missing status/dropdown labels to be created, which requires permission to change the board structure. Returns the new item's ID as a string (e.g. 9876543210). See the documentation
Create a group (a titled section of rows) on a board. Use when you need somewhere to put new rows before calling Create Item, which takes an optional Group ID. Set Board ID and Group Name. Example: Board ID 2419687965, Group Name In Progress. Returns the new group's ID as a string (e.g. new_group12345) — pass that value as Group ID to Create Item. Use List Board ID Options to find a valid Board ID. See the documentation
Add a column to an existing board. Use when a board is missing a field you need before setting values with Create Item or Update Column Values. Set Board ID, Title and Column Type (e.g. status, text, date, numbers). Custom Labels (Defaults) is accepted only when Column Type is status or dropdown and is rejected for any other type. Example: Title Priority, Column Type status, Custom Labels { "1": "High", "2": "Low" }. Returns the new column's ID as a string (e.g. status_1). Call List Columns afterwards to confirm the ID and the labels it accepts. See the documentation
Create a new board in a workspace. Use when you need a new board before adding groups, columns or items to it. Set Board Name and Board Kind (public, private or share); if you omit Workspace ID the board is created in the Main Workspace. Example: Board Name Q3 Campaigns, Board Kind public. Returns the new board's ID as a string (e.g. 2419687965), not the full board object — call List Boards if you need its details. Use List Workspace ID Options to find a valid Workspace ID. See the documentation