Installation
- Go to Apps in your workspace
- Search for monday.com and install it
- Open the app instance configuration and fill in the required fields
Configuration
| Field | Description |
|---|
| monday.com API Base URL | Base URL of the monday.com API (default https://api.monday.com) |
| Personal API Token | monday.com Personal API Token (v2), stored as a workspace secret |
| MCP Endpoint | Auto-populated on install — URL of the MCP endpoint for this instance |
| MCP API Key | Auto-populated on install — signed key used in the mcp-api-key header. Do not modify |
MCP Endpoint and MCP API Key are generated automatically by the onInstall flow and are only needed to expose this instance as an MCP server (see the next tab).
Available Instructions
Each instruction resolves credentials from the workspace configuration. All IDs are strings (monday.com uses numeric IDs wrapped as strings). Most list operations accept limit and page for pagination, with 25 items per page by default.Boards
| Instruction | Arguments |
|---|
boards | ids, workspace_ids, state (active/all/archived/deleted), order_by (created_at/used_at), board_kind (private/public/share), limit, page |
get_board | id* |
create_board | board_name, board_kind (private/public/share), description, folder_id, workspace_id, template_id, board_owner_ids, board_owner_team_ids, board_subscriber_ids, board_subscriber_teams_ids, empty |
update_board | board_id, board_attribute (name/description/communication), new_value* |
duplicate_board | board_id, duplicate_type (duplicate_board_with_pulses/duplicate_board_with_pulses_and_updates/duplicate_board_with_structure), board_name, workspace_id, folder_id, keep_subscribers |
archive_board | board_id* |
delete_board | board_id* |
Items & Subitems
| Instruction | Arguments |
|---|
items_page | board_ids*, query_params, cursor, limit |
items_page_by_column_values | board_id, columns (array of {column_id, column_values}), cursor, limit |
get_items | ids* (max 100), newest_first, exclude_nonactive |
create_item | board_id, item_name, group_id, column_values, create_labels_if_missing, position_relative_method (before_at/after_at), relative_to |
create_subitem | parent_item_id, item_name, column_values, create_labels_if_missing |
duplicate_item | board_id*, item_id, with_updates |
move_item_to_group | item_id, group_id |
move_item_to_board | item_id, board_id, group_id*, columns_mapping, subitems_columns_mapping |
archive_item | item_id* |
delete_item | item_id* |
clear_item_updates | item_id* |
Columns
| Instruction | Arguments |
|---|
columns | board_id* |
create_column | board_id, title, column_type* (see enum below), description, defaults, id |
change_column_title | board_id, column_id, title* |
change_column_metadata | board_id, column_id, column_property* (title/description), value* |
delete_column | board_id, column_id |
change_column_value | board_id, column_id, value* (JSON), item_id, create_labels_if_missing |
change_simple_column_value | board_id, column_id, value* (string), item_id, create_labels_if_missing |
change_multiple_column_values | board_id, column_values (map of column_id → value), item_id, create_labels_if_missing |
column_type accepts: auto_number, board_relation, button, checkbox, color_picker, country, creation_log, date, dependency, dropdown, email, file, formula, hour, item_assignees, item_id, last_updated, link, location, long_text, mirror, name, numbers, people, phone, progress, rating, status, subtasks, tags, team, text, timeline, time_tracking, vote, week, world_clock.Groups
| Instruction | Arguments |
|---|
groups | board_ids* |
create_group | board_id, group_name, position, relative_to, position_relative_method (before_at/after_at) |
update_group | board_id, group_id, group_attribute* (title/color/position/relative_position_after/relative_position_before), new_value* |
duplicate_group | board_id, group_id, add_to_top, group_title |
archive_group | board_id, group_id |
delete_group | board_id, group_id |
Users & Teams
| Instruction | Arguments |
|---|
users | ids, emails, name, kind (all/non_guests/guests/non_pending), newest_first, non_active, limit, page |
me | – |
invite_users | emails*, user_role (member/viewer/guest/admin), product (core/crm/dev/service/form/projectManagement/workManagement/workforms) |
deactivate_users | user_ids* |
teams | ids |
add_users_to_team | team_id, user_ids |
remove_users_from_team | team_id, user_ids |
Workspaces
| Instruction | Arguments |
|---|
workspaces | ids, kind (open/closed), state (active/all/archived/deleted), limit, page |
create_workspace | name, kind (open/closed), description |
update_workspace | id, attributes ({name, kind, description}) |
delete_workspace | workspace_id* |
add_users_to_workspace | workspace_id, user_ids, kind* (subscriber/owner) |
delete_users_from_workspace | workspace_id, user_ids |
| Instruction | Arguments |
|---|
updates | ids, limit, page |
item_updates | item_id*, limit, page |
create_update | item_id, body, parent_id |
edit_update | id, body |
delete_update | id* |
pin_to_top / unpin_from_top | id* |
like_update / unlike_update | update_id* |
| Instruction | Arguments |
|---|
tags | ids |
board_tags | board_id* |
create_or_get_tag | tag_name*, board_id |
assets | ids* |
Webhooks & Notifications
| Instruction | Arguments |
|---|
webhooks | board_id*, app_webhooks_only |
create_webhook | board_id, url, event*, config |
delete_webhook | id* |
create_notification | user_id, target_id, text, target_type (Project/Post) |
event accepts: change_column_value, change_status_column_value, change_subitem_column_value, change_specific_column_value, change_name, create_item, item_archived, item_deleted, item_moved_to_any_group, item_moved_to_specific_group, item_restored, create_subitem, change_subitem_name, move_subitem, subitem_archived, subitem_deleted, create_column, create_update, edit_update, delete_update, create_subitem_update.Docs
| Instruction | Arguments |
|---|
docs | ids, object_ids, workspace_ids, folder_ids, limit, page |
doc_blocks | doc_id*, limit, page |
create_doc | location* (either {workspace: {...}} or {board: {item_id, column_id}}) |
create_doc_block | doc_id, type, content*, after_block_id, parent_block_id |
update_doc_block | block_id, content |
delete_doc_block | block_id* |
create_doc_block.type accepts: normal_text, large_title, medium_title, small_title, bulleted_list, numbered_list, check_list, quote, code, table, divider, image, video, page_break, layout, toggle.Folders
| Instruction | Arguments |
|---|
folders | ids, workspace_ids, limit, page |
create_folder | workspace_id, name, color, parent_folder_id |
update_folder | folder_id*, name, color, parent_folder_id |
delete_folder | folder_id* |
create_folder.color accepts the monday.com palette: done_green, bright_green, working_orange, dark_orange, sunset, stuck_red, dark_red, sofia_pink, lipstick, purple, dark_purple, berry, dark_blue, indigo, navy, bright_blue, aquamarine, chili_blue, river, winter, explosive, american_gray, blackish, brown.| Instruction | Arguments | Description |
|---|
activity_logs | board_ids*, from, to, user_ids, column_ids, group_ids, item_ids, limit, page | Activity log of one or more boards |
board_views | board_id* | Views configured on a board |
account | – | Account meta (name, slug, tier, members, logo) |
account_products | – | Products installed (CRM, Dev, Service, WM, …) |
complexity | – | Remaining complexity budget of the API token (per-minute) |
version | – | API version currently served |
Arguments flagged with * are required.
DSUL Examples
Create a Board With an Item
- Monday.create_board:
board_name: Q2 Roadmap
board_kind: private
workspace_id: '{{workspace_id}}'
output: board
- Monday.create_item:
board_id: '{{board.id}}'
item_name: Ship onboarding revamp
group_id: topics
column_values:
status:
label: Working on it
date:
date: 2026-05-15
create_labels_if_missing: true
output: item
Update a Status Column
- Monday.change_simple_column_value:
board_id: '{{board_id}}'
item_id: '{{item_id}}'
column_id: status
value: Done
output: result
Post an Update and Notify a User
- Monday.create_update:
item_id: '{{item_id}}'
body: <p>Deployed to staging.</p>
output: update
- Monday.create_notification:
user_id: '{{owner_id}}'
target_id: '{{item_id}}'
text: Staging is ready for review
target_type: Project
Paginate Items of a Board
- Monday.items_page:
board_ids:
- '{{board_id}}'
limit: 100
output: firstPage
- Monday.items_page:
board_ids:
- '{{board_id}}'
cursor: '{{firstPage.cursor}}'
output: nextPage
The monday.com app ships with a built-in MCP server. Each app instance gets its own signed mcp-api-key that encodes the workspace ID and a credentials lookup URL — the monday.com Personal API Token is never passed through headers and is resolved server-side from the app configuration.Use this flow to plug the monday.com MCP into an AI Knowledge agent that does not yet support the native MCP picker.Install the monday.com app
Install and configure the app in the same workspace as your agent (see the Usage as App tab). Once configured, mcpEndpoint and mcpApiKey are auto-populated.
Copy the MCP credentials
Open the app instance config and copy the values of MCP Endpoint and MCP API Key.
Open your AI Knowledge project
Navigate to Advanced > Tools.
Add an MCP tool
Click Add and select the MCP tab.
Fill in the endpoint
Paste the MCP Endpoint URL copied from the app instance.
Add the auth header
In the Headers field, add the signed API key:{
"mcp-api-key": "your-mcp-api-key"
}
Save
The agent can now list and call monday.com tools through the MCP endpoint.
The signed mcp-api-key encodes the workspace ID and the getConfig webhook URL. The MCP server validates the signature using the central app secret and transparently fetches the monday.com token and base URL from the installed app. Credentials are cached per tenant for 10 minutes.
Runtime Credential Override
At tool-call time, the MCP server resolves credentials in this order:
- Per-session credentials set via the
configureMondayCom tool (takes precedence)
- Workspace-level credentials from the installed app
Every tool accepts an outputFormat parameter that controls the MCP response shape:
verbose (default) — human-readable text for LLM consumption
structured — machine-readable JSON in structuredContent
both — both text and structured content
Configuration
| Tool | Description |
|---|
configureMondayCom | Store a monday.com Personal API Token (and optional base URL) in the user session |
Boards
| Tool | Description |
|---|
boards | List boards (optional filters by ids / workspace / state) |
get_board | Get a single board with its groups, columns and paged items |
create_board / update_board / duplicate_board / archive_board / delete_board | Full board lifecycle |
Items & Subitems
| Tool | Description |
|---|
items_page | Cursor-paginated items of one or more boards (with optional query_params) |
items_page_by_column_values | Paginated items filtered by column values |
get_items | Fetch up to 100 items by ID |
create_item / create_subitem / duplicate_item | Create or clone items |
move_item_to_group / move_item_to_board | Relocate items |
archive_item / delete_item / clear_item_updates | Archive, delete, or clear updates |
Columns
| Tool | Description |
|---|
columns | List columns (with types and JSON settings) |
create_column | Create any of 37 column types (see app tab) |
change_column_title / change_column_metadata / delete_column | Rename or delete columns |
change_column_value | Update a single value with a typed JSON payload |
change_simple_column_value | Update a value with a simple string |
change_multiple_column_values | Bulk-update several columns in one call |
Groups
| Tool | Description |
|---|
groups | List groups of one or more boards |
create_group / update_group / duplicate_group / archive_group / delete_group | Group lifecycle |
Users & Teams
| Tool | Description |
|---|
users | List users (filter by kind/email/name) |
me | Get the user whose token is used |
invite_users / deactivate_users | Manage user lifecycle |
teams | List teams |
add_users_to_team / remove_users_from_team | Manage team membership |
Workspaces
| Tool | Description |
|---|
workspaces | List workspaces |
create_workspace / update_workspace / delete_workspace | Workspace lifecycle |
add_users_to_workspace / delete_users_from_workspace | Manage subscribers and owners |
| Tool | Description |
|---|
updates / item_updates | List updates |
create_update / edit_update / delete_update | Manage updates |
pin_to_top / unpin_from_top | Pin or unpin updates |
like_update / unlike_update | React to updates |
| Tool | Description |
|---|
tags / board_tags / create_or_get_tag | Browse and create tags |
assets | Fetch file assets by ID |
webhooks / create_webhook / delete_webhook | Manage board webhooks |
create_notification | Send an in-app notification to a user |
Docs & Folders
| Tool | Description |
|---|
docs / doc_blocks | List docs and blocks |
create_doc | Create a doc in a workspace or attach it to a column |
create_doc_block / update_doc_block / delete_doc_block | Manage doc blocks (17 block types) |
folders / create_folder / update_folder / delete_folder | Manage folders in a workspace |
| Tool | Description |
|---|
activity_logs | Activity log of boards, filtered by time or user |
board_views | Views configured on a board |
account / account_products | Account info and installed products |
complexity | Remaining per-minute complexity budget |
version | API version currently served |
Store a monday.com Personal API Token in the user session. Takes precedence over the installed app config for the current session.{
"name": "configureMondayCom",
"arguments": {
"token": "your-monday-api-token",
"baseUrl": "https://api.monday.com"
}
}
| Parameter | Required | Description |
|---|
token | Yes | monday.com Personal API Token (v2) |
baseUrl | No | API base URL (defaults to https://api.monday.com) |
create_item
{
"name": "create_item",
"arguments": {
"board_id": "1234567890",
"item_name": "Ship onboarding revamp",
"group_id": "topics",
"column_values": {
"status": { "label": "Working on it" },
"date": { "date": "2026-05-15" }
},
"create_labels_if_missing": true
}
}
column_values is a map of column_id → value, with the payload shape depending on the column type (see monday.com API reference). Set create_labels_if_missing: true to auto-create missing status/dropdown labels.items_page_by_column_values
Filter board items by column values server-side.{
"name": "items_page_by_column_values",
"arguments": {
"board_id": "1234567890",
"columns": [
{ "column_id": "status", "column_values": ["Done"] },
{ "column_id": "person", "column_values": ["alice@example.com"] }
],
"limit": 50
}
}
change_column_value vs change_simple_column_value
change_column_value takes a typed JSON payload (e.g. {"label": "Done"} for status, {"date": "2026-05-15"} for date).
change_simple_column_value takes a plain string and lets monday.com infer the format (e.g. Done, 2026-05-15).
Use the typed variant when you need precise control (e.g. writing a people column with {"personsAndTeams":[{"id":123,"kind":"person"}]}).create_webhook
{
"name": "create_webhook",
"arguments": {
"board_id": "1234567890",
"url": "https://api.studio.prisme.ai/v2/workspaces/.../webhooks/monday",
"event": "change_column_value",
"config": { "columnId": "status" }
}
}
config is required for change_specific_column_value and item_moved_to_specific_group.create_notification
{
"name": "create_notification",
"arguments": {
"user_id": "987",
"target_id": "1234567890",
"text": "Staging is ready for review",
"target_type": "Project"
}
}
target_type is Project for board items/boards, Post for updates.create_doc
{
"name": "create_doc",
"arguments": {
"location": {
"workspace": {
"workspace_id": "42",
"name": "Release Notes",
"kind": "private",
"folder_id": "99"
}
}
}
}
To attach a doc to a board item, use location.board instead:{ "location": { "board": { "item_id": "1234567890", "column_id": "doc_column" } } }