Skip to main content
Glama
mondaycom

monday MCP Server

Official
by mondaycom

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MONDAY_TOKENYesMonday.com API token
MONDAY_VERSIONNoMonday.com API version2026-04
MONDAY_READONLYMODENoEnable read-only modefalse
MONDAY_ENABLEDYNAMICAPITOOLSNo(Beta) Enable dynamic API tools (Mode that includes the whole API schema, not supported when using read-only mode)false

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
delete_itemC

Delete an item

get_board_items_pageA

Get all items from a monday.com board with pagination support and optional column values and item descriptions. Returns structured JSON with item details, creation/update timestamps, and pagination info. Use the nextCursor parameter from the response to get the next page of results when has_more is true. To retrieve an item description (the rich-text body/details of a monday.com item), set includeItemDescription to true — the response will include the item description document blocks with their content, type, and id. Use this whenever the user asks about an item description, body, details, or notes. [REQUIRED PRECONDITION]: Before using this tool, if new columns were added to the board or if you are not familiar with the board structure (column IDs, column types, status labels, etc.), first use get_board_info to understand the board metadata. This is essential for constructing proper filters and knowing which columns are available. [REQUIRED PRECONDITION]: For board-relation / cross-board linking tasks, call link_board_items_workflow before using this tool. VIEW-BASED FILTERING: If the user refers to a board view by name (e.g. "show me items in the Overdue view"), first call get_board_info to get the board views, find the matching view by name, then extract its filter field and pass it as the filters argument here.

create_itemA

Create a new item with provided values, create a subitem under a parent item, or duplicate an existing item and update it with new values. Use parentItemId when creating a subitem under an existing item. Use duplicateFromItemId when copying an existing item with modifications.[REQUIRED PRECONDITION]: Before using this tool, if new columns were added to the board or if you are not familiar with the board's structure (column IDs, column types, status labels, etc.), first use get_board_info to understand the board metadata. This is essential for constructing proper column values and knowing which columns are available.

create_updateA

Create a new update (comment/post) on a monday.com item. Updates can be used to add comments, notes, or discussions to items. You can optionally mention users, teams, or boards in the update. You can also reply to an existing update by using the parentId parameter.

get_updatesA

Get updates (comments/posts) from a monday.com item or board. Specify objectId and objectType (Item or Board) to retrieve updates. For Board queries, you can filter by date range using fromDate and toDate (both required together, ISO8601 format). By default, Board queries return only board discussion. Set includeItemUpdates to true to also include updates on individual items. Returns update text, creator info, timestamps, and optionally replies and assets.

create_update_in_mondayB

Create a new update (comment/post) on a monday.com item. Updates can be used to add comments, notes, or discussions to items. You can optionally mention users, teams, or boards in the update. After calling this tool you should call the full board data tool to get data, and immediately after that call the show table tool to show the data from that tool. IMPORTANT: You MUST use the COMPLETE data from the full board data tool - do NOT cut, truncate, or omit any data. Pass the entire dataset to the show table tool.

get_board_schemaB

Get board schema (columns and groups) by board id

get_board_activityA

Get board activity logs for a specified time range (defaults to last 30 days). Optionally filter by item ids or user ids to avoid fetching activity for the entire board.

get_board_infoA

Get comprehensive board information including metadata, structure, owners, and configuration. Also returns the board's views (e.g. table views, filter views) — each view includes its id, name, type, and a structured filter object.

get_full_board_dataA

INTERNAL USE ONLY - DO NOT CALL THIS TOOL DIRECTLY. This tool is exclusively triggered by UI components and should never be invoked directly by the agent.

list_users_and_teamsA

Tool to fetch users and/or teams data.

  MANDATORY BEST PRACTICES:
  1. ALWAYS use specific IDs or names when available
  2. If no ids available, use name search if possible (USERS ONLY)
  3. Use 'getMe: true' to get current user information
  4. AVOID broad queries (no parameters) - use only as last resort

  REQUIRED PARAMETER PRIORITY (use in this order):
  1. getMe - STANDALONE
  2. userIds
  3. name - STANDALONE (USERS ONLY, NOT for teams)
  4. teamIds + teamsOnly
  5. No parameters - LAST RESORT

  CRITICAL USAGE RULES:
  • userIds + teamIds requires explicit includeTeams: true flag
  • includeTeams: true fetches both users and teams, do not use this to fetch a specific user's teams rather fetch that user by id and you will get their team memberships.
  • name parameter is for USER search ONLY - it cannot be used to search for teams. Use teamIds to fetch specific teams.
change_item_column_valuesA

Change the column values of an item in a monday.com board. [REQUIRED PRECONDITION]: For board-relation linking tasks, call link_board_items_workflow before using this tool.

move_item_to_groupB

Move an item to a group in a monday.com board

create_boardC

Create a monday.com board

create_formA

Create a monday.com form. Also creates a backing board to store responses. Returns the formToken for future mutations.

update_formB

Update a monday.com form. Use the action field to specify the operation.

get_formA

Get a monday.com form by its form token. Form tokens can be extracted from the form's url. Given a form url, such as https://forms.monday.com/forms/abc123def456ghi789?r=use1, the formToken is the alphanumeric string that appears right after /forms/ and before the ?. In the example, the formToken is abc123def456ghi789.

form_questions_editorB

Create, update, or delete a question in a monday.com form

create_form_submissionA

Submit a response to a monday.com WorkForm. Use get_form first to retrieve the WorkForm, then:

  • Inspect each question's showIfRules to determine which questions are conditionally shown based on previous answers.

  • Inspect each question's settings for any answer constraints (e.g. rating limits, select options, label limits).

  • Take note of any titles, descriptions, and content blocks to present the form naturally as you walk the user through it.

  • Take note of pages and question order to present questions in the correct sequence. Gather all answers upfront before calling this tool — do not submit one question at a time. Accepts a bare form token, a full WorkForm URL (e.g. https://forms.monday.com/forms/{form_token}?r=use1), or a shortened wkf.ms URL (e.g. https://wkf.ms/4tqP28t) — shortened URLs are automatically resolved by following the redirect. Returns the submission ID.

create_columnB

Create a new column in a monday.com board

update_columnA

Update properties of an existing monday.com column (title, description, settings). Uses optimistic concurrency control via the revision field — fetch the current revision via get_board_schema first, then call this tool. If the update fails because the revision is stale, re-fetch and try again.

create_groupA

Create a new group in a monday.com board. Groups are sections that organize related items. Use when users want to add structure, categorize items, or create workflow phases. Groups can be positioned relative to existing groups and assigned predefined colors. Items will always be created in the top group and so the top group should be the most relevant one for new item creation

delete_columnB

Delete a column from a monday.com board

all_api_readA

Execute read-only GraphQL queries against the monday.com API. Only queries are accepted — mutations are rejected with an error before the request is sent. Use get_graphql_schema and get_type_details tools first to understand the schema before crafting your query.

get_column_type_infoA

Retrieves comprehensive information about a specific column type. Use fetchMode "schema" (default) to get the JSON schema definition from the API — use this before creating or updating columns (e.g. create_column) to understand structure, validation rules, and available properties for column settings. Use fetchMode "guidelines" to get only guidelines.filter and guidelines.aggregation for building items_page filters and board insights counts (no schema, no GraphQL round-trip).

create_custom_activityC

Create a new custom activity in the E&A app

create_notificationA

Send a notification to a user via the bell icon and optionally by email. Use target_type "Post" for updates/replies or "Project" for items/boards.

create_timeline_itemC

Create a new timeline item in the E&A app

fetch_custom_activityA

Get custom activities from the E&A app

read_docsA

Get information about monday.com documents. Supports two modes:

MODE: "content" (default) — Fetch documents with their full markdown content.

  • Requires: type ("ids" | "object_ids" | "workspace_ids") and ids array

  • Supports pagination via page/limit. Check has_more_pages in response.

  • If type "ids" returns no results, automatically retries with object_ids.

  • Set include_blocks: true to include block IDs, types, and positions in the response — required before calling update_doc.

  • Blocks default to 25 per page. Use blocks_limit and blocks_page to paginate through long documents.

  • Set include_comments: true to fetch all comments and replies on the document. Each comment is enriched with anchor info (block_id, selection_from, selection_length) indicating which block and text range it's attached to. Use comments_limit to control how many comments per item (default 50).

MODE: "version_history" — Fetch the edit history of a single document.

  • Requires: ids with the document's object_id (use the object_id field from content mode results, NOT the id field).

  • The object_id is the numeric ID visible in the document URL.

  • Returns restoring points sorted newest-first. Use version_history_limit to cap results (e.g., "last 3 changes" → version_history_limit: 3).

  • Use since/until to filter by time range. If omitted, returns full history.

  • Set include_diff: true to see what content changed between versions (fetches up to 10 diffs, may be slower).

  • Examples:

    • { mode: "version_history", ids: ["5001466606"], version_history_limit: 3 }

    • { mode: "version_history", ids: ["5001466606"], since: "2026-03-11T00:00:00Z", include_diff: true }

workspace_infoA

This tool returns the boards, docs and folders in a workspace and which folder they are in. It returns up to 100 of each object type, if you receive 100 assume there are additional objects of that type in the workspace.

list_workspacesA

List all workspaces available to the user, ordered by membership (user's workspaces first). Returns workspaces with their ID, name, and description. [IMPORTANT] To search for workspaces by name, use the "search" tool with searchType WORKSPACES instead — it provides faster and more accurate results.

create_docA

Create a new monday.com doc either inside a workspace or attached to an item (via a doc column). After creation, the provided markdown will be appended to the document.

LOCATION TYPES:

  • workspace: Creates a document in a workspace (requires workspace_id, optional doc_kind, optional folder_id, optional docOwnerIds)

  • item: Creates a document attached to an item (requires item_id, optional column_id, optional docOwnerIds)

USAGE EXAMPLES:

  • Workspace doc: { location: "workspace", workspace_id: 123, doc_name: "My Doc", doc_kind: "private" , markdown: "..." }

  • Workspace doc in folder: { location: "workspace", workspace_id: 123, doc_name: "My Doc", folder_id: 17264196 , markdown: "..." }

  • Item doc: { location: "item", item_id: 456, doc_name: "My Doc", column_id: "doc_col_1" , markdown: "..." }

  • Workspace doc with agent owner: { location: "workspace", workspace_id: 123, doc_name: "My Doc", markdown: "...", docOwnerIds: [""] }

add_content_to_docA

Add markdown content to an existing monday.com document.

IDENTIFICATION: Provide either doc_id or object_id to identify the document:

  • doc_id: The document ID (the id field returned by read_docs). Takes priority if both provided.

  • object_id: The document object ID (the object_id field from read_docs, also visible in the document URL). Will be resolved to a doc_id.

USAGE EXAMPLES:

  • By doc_id: { doc_id: "123", markdown: "# New Section\nContent here" }

  • By object_id: { object_id: "456", markdown: "# New Section\nContent here" }

  • Insert after block: { doc_id: "123", markdown: "Inserted content", after_block_id: "block_789" }

update_docA

Update an existing monday.com document. Provide doc_id (preferred) or object_id, plus an ordered operations array (executed sequentially, stops on first failure).

OPERATIONS:

  • set_name: Rename the document.

  • add_markdown_content: Append markdown as blocks (or insert after a block). Best for text, headings, lists, simple tables — no block IDs needed.

  • update_block: Update content of an existing text, code, or list_item block in-place.

  • create_block: Create a new block at a precise position. Use parent_block_id to nest inside notice_box, table cell, or layout cell.

  • delete_block: Remove any block. The ONLY option for BOARD, WIDGET, DOC embed, and GIPHY blocks.

  • replace_block: Delete a block and create a new one in its place (use when update_block is not supported).

  • add_comment: Create a new comment or reply on the document (doc-level, block-level, or text-selection).

WHEN TO USE EACH OPERATION:

  • text / code / list_item → update_block. Use replace_block to change subtype (e.g. NORMAL_TEXT→LARGE_TITLE)

  • divider / table / image / video / notice_box / layout → replace_block (properties immutable after creation)

  • BOARD / WIDGET / DOC / GIPHY → delete_block only

GETTING BLOCK IDs: Call read_docs with include_blocks: true — returns id, type, position, and content per block.

BLOCK CONTENT (delta_format): Array of insert ops. Last op MUST be {insert: {text: "\n"}}.

  • Plain: [{insert: {text: "Hello"}}, {insert: {text: "\n"}}]

  • Bold: [{insert: {text: "Hi"}, attributes: {bold: true}}, {insert: {text: "\n"}}]

  • Mention user/doc/board: [{insert: {text: "Hey "}}, {insert: {mention: {id: 12345, type: "USER"}}}, {insert: {text: "\n"}}] — type is USER, DOC, or BOARD. id is numeric (user IDs from list_users_and_teams)

  • Inline column value: [{insert: {column_value: {item_id: 111, column_id: "status"}}}, {insert: {text: "\n"}}]

  • Supported attributes: bold, italic, underline, strike, code, link, color, background (not applicable to mention/column_value ops)

IMAGE WITH ASSET: For asset-based images, use create_block with block_type "image" and asset_id (instead of public_url). add_markdown_content does NOT support asset images — for mixed content, alternate add_markdown_content (text) and create_block (image) operations in sequence.

COMMENTS:

  • add_comment: Create a new comment or reply on the document. Three scopes:

    • Doc-level (no block_id): comment appears on the doc as a whole.

    • Block-level (block_id only): comment is anchored to a specific block. The block shows a comment indicator in the UI.

    • Text-selection (block_id + selection_from + selection_length): comment is anchored to a specific character range inside a text/code/list_item block. That text is highlighted with a comment marker. Block-level and text-selection comments only work on blocks with text content (text, code, list_item, title, quote). They do NOT work on: divider, page_break, table, layout, notice_box, image, video, or giphy blocks. Get block IDs from read_docs with include_blocks: true. Format body with HTML, not markdown. Use mentions_list for @mentions.

update_workspaceB

Update an existing workspace in monday.com

update_folderB

Update an existing folder in monday.com

create_workspaceB

Create a new workspace in monday.com

create_folderB

Create a new folder in a monday.com workspace

move_objectA

Move a folder, board, or overview in monday.com. Use position for relative placement based on another object, parentFolderId for folder changes, workspaceId for workspace moves, and accountProductId for account product changes.

create_dashboardA

Use this tool to create a new monday.com dashboard that aggregates data from one or more boards. Dashboards provide visual representations of board data through widgets and charts.

Use this tool when users want to:
- Create a dashboard to visualize board data
- Aggregate information from multiple boards
- Set up a data visualization container for widgets
all_widgets_schemaA

Fetch complete JSON Schema 7 definitions for all available widget types in monday.com.

This tool is essential before creating widgets as it provides:
- Complete schema definitions for all supported widgets
- Required and optional fields for each widget type
- Data type specifications and validation rules
- Detailed descriptions of widget capabilities

Use this tool when you need to:
- Understand widget configuration requirements before creating widgets
- Validate widget settings against official schemas
- Plan widget implementations with proper data structures

The response includes JSON Schema 7 definitions that describe exactly what settings each widget type accepts.
create_widgetA

Create a new widget in a dashboard or board view with specific configuration settings.

This tool creates data visualization widgets that display information from monday.com boards:
**Parent Containers:**
- **DASHBOARD**: Place widget in a dashboard (most common use case)
- **BOARD_VIEW**: Place widget in a specific board view

**Critical Requirements:**
1. **Schema Compliance**: Widget settings MUST conform to the JSON schema for the specific widget type
2. **Use all_widgets_schema first**: Always fetch widget schemas before creating widgets
3. **Validate settings**: Ensure all required fields are provided and data types match

**Workflow:**
1. Use 'all_widgets_schema' to get schema definitions
2. Prepare widget settings according to the schema
3. Use this tool to create the widget
board_insightsA

This tool allows you to calculate insights about board's data by filtering, grouping and aggregating columns. For example, you can get the total number of items in a board, the number of items in each status, the number of items in each column, etc. Use this tool when you need to get a summary of the board's data, for example, you want to know the total number of items in a board, the number of items in each status, the number of items in each column, etc.[REQUIRED PRECONDITION]: Before using this tool, if new columns were added to the board or if you are not familiar with the board's structure (column IDs, column types, status labels, etc.), first use get_board_info to understand the board metadata. This is essential for constructing proper filters and knowing which columns are available.[IMPORTANT]: For some columns, human-friendly label is returned inside 'LABEL_<column_id' field. E.g. for column with id 'status_123' the label is returned inside 'LABEL_status_123' field.

searchA

Search within monday.com platform. Can search for boards, documents, folders, workspaces, updates, and items. For searching/listing specific users and teams, use list_users_and_teams tool. For account-level info (plan, member count, products), use get_user_context tool. For groups, use get_board_info tool. ITEMS search requires a searchTerm and only returns id, title, and url. WORKSPACES search requires a searchTerm and only returns id, title, and description. UPDATES search requires a searchTerm and returns id, title (the update body), itemId, boardId, and creatorId. Optionally scope it with boardIds and/or creatorIds. IMPORTANT: ids returned by this tool are prefixed with the type of the object (e.g doc-123, board-456, folder-789, workspace-101, update-303, item-321). When passing the ids to other tools, you need to remove the prefix and just pass the number.

get_user_contextA

Fetch current user information, account information, and their relevant items (boards, folders, workspaces, dashboards).

Use this tool to:
- Get context about who the current user is (id, name, title)
- Get account info: plan tier, active member count, trial status, and active products
- Get the number of active members in the account (returns active_members_count)
- Discover user's favorite boards, folders, workspaces, and dashboards
- Get user's most relevant boards based on visit frequency and recency
- Get user's most relevant people based on interaction frequency and recency
- Reduce the need for search requests by knowing user's commonly accessed items
update_assets_on_itemA

Update a file or doc column value on an item using existing assets, docs, or links. Sets the column to the provided list of files, adding new ones and removing any not in the list.

get_assetsA

Get assets (files) by their IDs. Returns file metadata including name, extension, size, public URL (valid for 1 hour), thumbnail URL, upload date, and who uploaded it.

get_notetaker_meetingsA

Retrieve notetaker meetings with optional detailed fields. Use include_summary, include_topics, include_action_items, and include_transcript flags to control which details are returned. Use access to filter by meeting access level (OWN, SHARED_WITH_ME, SHARED_WITH_ACCOUNT, ALL). Defaults to OWN. Supports filtering by ids, search term, and cursor-based pagination.

create_viewA

Create a new board view (tab) with optional filters and sorting. This creates a saved view on a monday.com board that users can switch to.

Filter operators: any_of, not_any_of, is_empty, is_not_empty, greater_than, lower_than, between, contains_text, not_contains_text

Example filter for people column: { "rules": [{ "column_id": "people", "compare_value": ["person-12345"], "operator": "any_of" }] } Example filter for status column: { "rules": [{ "column_id": "status", "compare_value": [1], "operator": "any_of" }] }

update_viewA

Update an existing board view (tab) — change its name, filter rules, or sort order. Provide only the fields you want to change. Omitted fields are left unchanged.

Filter operators: any_of, not_any_of, is_empty, is_not_empty, greater_than, lower_than, between, contains_text, not_contains_text

Example filter for people column: { "rules": [{ "column_id": "people", "compare_value": ["person-12345"], "operator": "any_of" }] } Example filter for status column: { "rules": [{ "column_id": "status", "compare_value": [1], "operator": "any_of" }] }

create_view_tableA

Create a new table-type board view with optional filters, sort, tags, and table-specific settings (column visibility/order and group-by). Use this instead of create_view when you need to configure table-specific settings. For a simple table view, create_view also works.

Filter operators: any_of, not_any_of, is_empty, is_not_empty, greater_than, lower_than, between, contains_text, not_contains_text

Example settings.columns: { "column_properties": [{ "column_id": "status", "visible": true }], "column_order": ["name", "status", "date"] } Example settings.group_by: { "conditions": [{ "columnId": "status" }], "hideEmptyGroups": true }

update_view_tableA

Update an existing table-type board view — change its name, filters, sort, tags, or table-specific settings (column visibility/order and group-by). Provide only the fields you want to change. Omitted fields are left unchanged.

Filter operators: any_of, not_any_of, is_empty, is_not_empty, greater_than, lower_than, between, contains_text, not_contains_text

Example settings.columns: { "column_properties": [{ "column_id": "status", "visible": true }], "column_order": ["name", "status", "date"] } Example settings.group_by: { "conditions": [{ "columnId": "status" }], "hideEmptyGroups": true }

undo_actionA

Undo a previous action on a board using its action_record_uuid. Supports undoing column changes, deletes, archives, moves, duplicates, and more. Use get_board_activity with includeData=true to find the action_record_uuid.

get_object_schemasA

Retrieve account-level object schemas by their IDs or names. Schemas define the structure and columns of boards. Provide ids or names to filter specific schemas. Omit both to list all schemas (paginated).

create_object_schemaC

Create a new account-level object schema. Schemas define the structure and columns of boards.

update_object_schemaA

Update an account-level object schema. Requires the current revision number for optimistic locking — retrieve it first via get_object_schemas.

delete_object_schemaA

Delete an account-level object schema. Only allowed when no boards are connected to the schema. Provide either id or name.

delete_object_schema_columnsA

Permanently delete columns from an account-level object schema. Only allowed when no boards are connected to the schema. Use manage_object_schema_column with action=deactivate for a reversible alternative.

manage_object_schema_board_connectionB

Connect or detach a board from an account-level object schema. connect: attaches a board to an object schema so it inherits the schema column structure. detach: removes one or more boards from their object schema.

manage_object_schema_columnsA

Create or update columns on an account-level object schema. Column changes are propagated to all boards connected to the schema. create: adds new columns. Each column requires type and title. Call get_column_type_info with fetchMode "schema" first to understand valid defaults per column type. update: modifies existing columns. Each entry must include column_id. Only send the columns you want to modify — other columns are unaffected. Use opt_out_by_default=true to stop a column from being auto-added to boards (opt out), or opt_out_by_default=false to restore auto-adding (opt in).

set_object_schema_column_active_stateA

Set the active state of a column on an account-level object schema. deactivate: soft-disables the column, preventing it from being used on new boards. The column is not deleted and can be restored. reactivate: restores a previously deactivated column, making it available again.

get_asset_upload_urlA

Get a presigned URL to upload a file to monday.com. Returns an upload_id and upload_url.

After calling this tool, upload the file to the returned URL using an HTTP PUT request and capture the ETag header from the response:

curl -i -X PUT ""
-H "Content-Type: "
--data-binary @

The response includes an ETag header (e.g. ETag: "abc123...") — save this value.

Then call finalize_asset_upload with the upload_id, etag, board_id, item_id, and column_id to complete the upload and attach the file to an item's file column.

Max file size: 500MB.

finalize_asset_uploadA

Finalize a file upload and create the asset on monday.com. Call this after uploading the file to the presigned URL from get_asset_upload_url. Requires the etag value from the PUT response headers. Automatically attaches the uploaded asset to the specified file column on the item. Returns the created asset_id.

link_board_items_workflowA

When to use: any board-relation / cross-board linking task. Hard gate — you MUST call this BEFORE get_board_items_page, or change_item_column_values in the same turn. No discovery, matching, or write happens first. Triggers: link or connect items across boards (board-relation / "connect boards" / pairs) — also vague phrasings where only one side is named ("link this to an item on another board", "the matching row"). This tool is read-only (no API).

fetch_file_contentA

Fetch and extract the text content from a file stored in a monday.com files column.

Use this tool when you need to read, summarize, or analyze the content of files attached to board items. Provide the item ID and column ID from the get_board_items_page response — the column value will be a URL like "https://monday.com/protected_static/..." indicating a file is present (null means no file).

PROACTIVE USE: If you retrieve board items and notice a files column with a non-null value (a URL), consider fetching its content if it could help answer the user's question — don't wait to be explicitly asked.

Supported file types and what is returned:

  • Text files (.txt, .md, .csv, .json): raw text content

  • Word documents (.docx): extracted text content

  • PDF files (.pdf): extracted text content

  • Excel files (.xlsx, .xls): extracted text content per sheet

  • Images (.png, .jpg, .gif, .webp, .svg, .bmp, .ico): returns the public URL so you can view or analyze the image directly

Text responses include a total_length field. If has_more is true, the content was truncated — you can call this tool again with next_offset if you need the remaining content.

When to use:

  • User asks to summarize, read, or analyze the content of a file in a files column

  • User asks questions about what is inside a file (e.g., "what does the PDF say?")

  • User wants to extract data from a CSV or Excel file attached to a board item

  • A board item has a files column with a non-null value and the user's question may be answered by its content — even if the user didn't explicitly ask to read the file

When NOT to use:

  • The files column value is null (no file uploaded for that item)

manage_agentA

Full lifecycle management for monday platform agents — create, read, update, delete, change state, and run.

monday platform agents are user-built work orchestrators on monday.com — each has a profile (name, role, avatar), a goal, and a markdown execution plan. Agents in state ACTIVE can be triggered automatically. They are NOT local LangChain or MCP agents.

ACTIONS (only pass fields that apply to the chosen action):

  • create: { action:"create", prompt, agent_model? } — AI-generated agent. Platform creates profile, goal, and plan from the prompt.

  • create_blank: { action:"create_blank", name?, role?, role_description?, avatar_url?, gender?, background_color?, user_prompt? } — manually defined agent.

  • get one: { action:"get", agent_id }

  • list owned: { action:"get" }

  • update: { action:"update", agent_id, name?, role?, role_description?, plan?, agent_model? }

  • delete: { action:"delete", agent_id }

  • activate: { action:"activate", agent_id }

  • deactivate: { action:"deactivate", agent_id }

  • run: { action:"run", agent_id }

RULES:

  • "create_blank" with no fields creates a nameless blank agent — only do this intentionally.

  • "update" requires at least one of name/role/role_description/plan/agent_model.

  • "update", "delete", "activate", "deactivate", "run" all require "agent_id".

  • Created agents start INACTIVE. Follow with action:"activate" using the returned agent_id before they can be triggered.

  • ⚠️ DESTRUCTIVE — "delete" is permanent and irreversible. When the user refers to an agent by name, ALWAYS call action:"get" first to confirm the correct agent_id before deleting.

  • "run" is fire-and-forget. Returns trigger_uuid — no run-status query exists, treat successful enqueue as the only signal.

  • Agent state is one of ACTIVE, INACTIVE, ARCHIVED, or FAILED. DELETED only appears as the return value of action:"delete".

USAGE EXAMPLES:

  • AI create: { "action": "create", "prompt": "Run my daily standup every weekday at 9am." }

  • Manual create:{ "action": "create_blank", "name": "Standup Bot", "role": "Project Manager", "gender": "female" }

  • Fetch one: { "action": "get", "agent_id": "42" }

  • List mine: { "action": "get" }

  • Rename: { "action": "update", "agent_id": "7", "name": "New Name" }

  • Activate: { "action": "activate", "agent_id": "7" }

  • Deactivate: { "action": "deactivate", "agent_id": "7" }

  • Run: { "action": "run", "agent_id": "7" }

  • Delete: { "action": "delete", "agent_id": "7" }

RELATED TOOLS:

  • agent_catalog — browse available trigger types and skills before wiring them to an agent

  • manage_agent_triggers — manage which triggers fire this agent automatically

  • manage_agent_skills — manage which skills this agent can perform

  • manage_agent_knowledge — manage which boards/docs this agent has access to

manage_agent_triggersA

Manage the triggers attached to a monday platform agent — triggers define WHEN the agent runs automatically.

ACTIONS:

  • list: { agent_id } — returns active triggers with node_id, block_reference_id, name, field_summary.

  • add: { agent_id, block_reference_id, field_values? } — attaches a trigger type to the agent.

  • remove: { agent_id, node_id } — detaches a trigger instance by node_id (NOT block_reference_id).

WORKFLOW — add a trigger:

  1. Call agent_catalog action:"list_triggers" — note block_reference_id, field_schemas, and required_fields.

  2. Collect required field values from the user (e.g. board_id, column_id).

  3. Call this tool action:"add" with block_reference_id and field_values. Note: add returns only { success } — no node_id for the new instance. Call action:"list" afterward if you need the node_id.

WORKFLOW — remove a trigger:

  1. Call action:"list" to see active triggers and note the node_id of the instance to remove.

  2. Call action:"remove" with that node_id.

NOTE: Only triggers that can be added programmatically appear in the catalog. OAuth/3rd-party triggers (Slack, Gmail, Salesforce, etc.) require user setup in the monday.com UI — they will not appear in agent_catalog and cannot be managed here.

USAGE EXAMPLES:

  • List triggers: { "action": "list", "agent_id": "7" }

  • Add trigger: { "action": "add", "agent_id": "7", "block_reference_id": "status-change-ref", "field_values": { "board_id": "42" } }

  • Remove trigger: { "action": "remove", "agent_id": "7", "node_id": "node-abc" }

RELATED TOOLS:

  • agent_catalog action:"list_triggers" — discover available trigger types and their required field_values before calling action:"add" here

  • manage_agent_skills — manage which skills this agent can perform

  • manage_agent — manage the agent entity itself (create, activate, deactivate, etc.)

manage_agent_skillsA

Manage the full skill lifecycle for monday platform agents — create new skills in the catalog, attach skills to an agent, or detach them.

Skills extend what an agent can do (e.g. sending emails, querying databases, posting to Slack).

ACTIONS:

  • create: { name, content, description? } — creates a new custom skill in the account-wide catalog. The skill becomes available to all agents in the account.

  • add: { agent_id, skill_id } — attaches a skill to this agent.

  • remove: { agent_id, skill_id } — detaches a skill from this agent.

WORKFLOW — attach an existing skill:

  1. Call agent_catalog action:"list_skills" — find the skill_id of the skill to attach.

  2. Call this tool action:"add" with agent_id and that skill_id.

WORKFLOW — create a new skill and attach it:

  1. Call this tool action:"create" with name and content — note the returned id.

  2. Call this tool action:"add" with agent_id and that id directly (no catalog lookup needed).

NOTE: There is no action to list which skills are currently attached to a specific agent — the platform does not yet expose that query. To browse all skills available in the account catalog, use agent_catalog action:"list_skills".

USAGE EXAMPLES:

  • Create a skill: { "action": "create", "name": "Send Slack Message", "content": "## Instructions\nPost a message to a Slack channel.", "description": "Sends a message to Slack" }

  • Add a skill: { "action": "add", "agent_id": "7", "skill_id": "skill-abc-123" }

  • Remove a skill: { "action": "remove", "agent_id": "7", "skill_id": "skill-abc-123" }

RELATED TOOLS:

  • agent_catalog action:"list_skills" — browse existing skills to find a skill_id before calling action:"add"

  • manage_agent_triggers — manage which triggers fire this agent automatically

  • manage_agent — manage the agent entity itself (create, activate, deactivate, etc.)

manage_agent_knowledgeA

List, grant, update, or revoke a monday platform agent's access to boards and docs.

An agent's "knowledge" is the set of monday.com boards and docs it can read from or write to during a run.

  • list: Returns all resources the agent currently has access to, including permission level and resource type.

  • add: Grants the agent access to a board or doc with the specified permission level.

  • update: Changes the permission level on a resource the agent already has access to. Call action:"list" first to confirm the resource_id exists.

  • remove: Revokes the agent's access to a board or doc entirely. Call action:"list" first to confirm the resource_id exists.

Permission types:

  • READ: Agent can read data from the resource.

  • READ_WRITE: Agent can read and write data to the resource.

USAGE EXAMPLES:

  • List: { "action": "list", "agent_id": "7" }

  • Add board access: { "action": "add", "agent_id": "7", "resource_id": "42", "scope_type": "BOARD", "permission_type": "READ" }

  • Update to read-write: { "action": "update", "agent_id": "7", "resource_id": "42", "scope_type": "BOARD", "permission_type": "READ_WRITE" }

  • Remove access: { "action": "remove", "agent_id": "7", "resource_id": "42", "scope_type": "BOARD" }

RELATED TOOLS:

  • manage_agent — manage the agent entity itself (create, activate, deactivate, etc.)

  • manage_agent_triggers — manage which triggers fire this agent automatically

  • manage_agent_skills — manage which skills this agent can perform

agent_catalogA

Browse the account-wide catalog of available trigger types and skills for monday platform agents. READ-ONLY — no agent_id required.

Use this tool to discover what's available BEFORE wiring anything to a specific agent.

ACTIONS:

  • list_triggers: { block_reference_ids? } — returns available trigger types. Each entry has block_reference_id (required for manage_agent_triggers action:"add"), name, description, field_schemas (describes field_values shape), and required_fields (fields to collect from the user). Note: only triggers that can be added programmatically appear here. OAuth/3rd-party triggers (Slack, Gmail, Salesforce, etc.) require user setup in the monday.com UI and will not appear here.

  • list_skills: {} — returns available skills with id, name, description. Never guess or invent a skill id — always look it up here before calling manage_agent_skills action:"add".

USAGE EXAMPLES:

  • List all trigger types: { "action": "list_triggers" }

  • Fetch specific trigger: { "action": "list_triggers", "block_reference_ids": ["some-block-ref-id"] }

  • List all skills: { "action": "list_skills" }

RELATED TOOLS:

  • manage_agent_triggers — use block_reference_id from list_triggers to attach a trigger to a specific agent

  • manage_agent_skills — use skill id from list_skills, or action:"create" to author a new skill, then attach to an agent

  • manage_agent — manage the agent entity itself (create, update, delete, activate, etc.)

list_automationsA

List all automations on a specific monday.com board, including their ids, titles, active state, and configuration. When NOT to use: Do not call this tool to get general board information unrelated to automations. Note: Some legacy automations may not appear — mention this if users ask about missing automations.

manage_automationsA

Activate, deactivate, or delete an existing monday.com automation.

Requires an automation id. When the user refers to an automation by name, always call list_automations first to resolve the id — never guess or infer ids.

Actions:

  • activate: enables a paused automation so it starts responding to its trigger.

  • deactivate: pauses an automation while preserving its definition.

  • delete: permanently removes an automation — irreversible.

When intent is ambiguous ("stop", "turn off", "pause"), prefer deactivate over delete.

create_automationA
Creates an automation on a monday board from a structured natural-language description.

Use this tool only when you know:

  • boardId

  • the user's intended trigger

  • at least one intended action

  • any details the user provided that are relevant to the trigger, conditions, or actions

The caller does not need to know the exact available automation blocks or their required fields. Describe the user's intent clearly — the tool will translate that intent into supported blocks and values.

If a required detail is missing from the user's request, ask for clarification before calling the tool.

If the tool returns status: "needs_clarification", present the unresolved fields to the user, gather answers, then call the tool again.

Describe the automation in this format:

Trigger: When Details: :

Conditions:

  • Only if Details: :

Actions:

  • : :

Rules:

  • Use one trigger.

  • Conditions are optional.

  • Multiple conditions mean AND.

  • Use one or more actions.

  • Do not use branching.

  • Use natural language, not block IDs or internal field names.

  • Actions may reference values from the trigger context, such as "{{item name}}", "{{creator}}", "{{status}}", "{{group}}", or "{{board}}".

Terminology:

  • Trigger: the event that starts the automation, such as "when a new item is created".

  • Conditions: optional requirements that must be true before actions run.

  • Actions: what the automation does when it runs.

Example:

Trigger: When a new item is created

Actions:

  • Send a notification: Recipient: John Snow Title: Important Update Message: The item "{{item name}}" was created.

  • Move the item to a group: Group: Top group

get_automation_runsA

Read automation/workflow run history. Read-only.

Modes:

  • "history": paginated run feed (state, duration, error reason). Use "filters" to narrow results and "nextPageOffset" to page (offset-only — next page = previous offset + returned count).

  • "detail": single run by "triggerUuid" (required) — returns block steps and MCP tool calls. Set "includeToolEvents": false to skip tool calls.

Scope: provide "boardId" for a specific board or "accountWide": true. One is required.

Known event states: "success", "failure", "exhausted".

get_automation_statisticsA

Aggregate automation run statistics. Read-only.

Breakdowns:

  • "totals": success/failure/total counts at the account or board level.

  • "by_entity": per-automation and per-workflow counts for a given "runStatus" (required: "success" | "failure" | "exhausted"). Use "excludeAutomationIds" to omit specific automations.

Scope: provide "boardId" for a specific board or "accountWide": true. One is required.

Optional "userIds" narrows results to specific creators.

create_workflowA

Creates a new empty workflow in a monday.com workspace.

Use this when the user wants to build a new standalone workflow from scratch. Workflows are cross-board, workspace-level — distinct from automations (use create_automation for those). You only need a workspaceId to get started — all other fields are optional.

Returns:

  • workflowObjectId: the workflow object ID

  • workflowDraftId: the current draft version ID — workflows start as drafts and must be published before they run

Terminology:

  • Workflows vs. automations: workflows are standalone objects scoped to a workspace. Automations (create_automation) are per-board trigger/action rules. They are different products.

  • Draft: the editable, inactive version of a workflow. Changes are made on the draft version until it is published as the live version.

  • Privacy: PUBLIC — visible to all workspace members (default). PRIVATE — restricted access. SHAREABLE — accessible to guests outside the account.

Note: if directing the user to the workflow in the UI, the correct URL path is custom_objects/, not workflows/ — e.g. {account}.monday.com/custom_objects/{workflowObjectId}.

update_workflowA

Updates an existing workflow draft using an AI agent.

The agent interprets the prompt and applies structural changes to the workflow — creating, updating, or deleting steps. Pass clear, descriptive instructions and the agent will decide which operations to perform, then return a summary of what it did.

Use this after create_workflow to build out the workflow step by step. You can call it multiple times on the same draft to iteratively refine the workflow.

Parameters:

  • workflowObjectId and workflowDraftId: both returned by create_workflow — they identify which draft to update.

  • prompt: describe what you want to change in plain English (e.g. "Add a trigger that fires when an item is created on the Marketing board"). Maximum 2000 characters.

Returns:

  • workflowObjectId: the workflow object ID (unchanged)

  • workflowDraftId: the draft version ID (unchanged)

  • result: agent response describing the changes made

Note: if directing the user to the workflow in the UI, the correct URL path is custom_objects/, not workflows/ — e.g. {account}.monday.com/custom_objects/{workflowObjectId}.

Note: the workflow runs only after it is published to live version.

plan_workflowA

Plans one or more monday.com workflows for a described process using an AI agent.

The agent analyzes the prompt, decides how many workflows are needed, identifies the required boards and columns, selects the correct trigger and action blocks (with their IDs), and returns a structured implementation plan with Mermaid diagrams and build notes for each workflow.

Use this before create_workflow to understand how to break a complex process into individual workflows and which resources to create first.

Parameters:

  • prompt: describe the full end-to-end process in plain English. Maximum 2000 characters.

Returns:

  • result: structured markdown plan with workflow breakdowns, block IDs, resource definitions, and a list of assumptions and gaps

publish_workflowA

Publishes a workflow draft, promoting it to the live version.

Use this after create_workflow (and optionally update_workflow) to make the workflow active. Before publishing, the workflow is validated — if it has missing or misconfigured steps, publish will fail with a WORKFLOW_VALIDATION_FAILED error that includes structured issue details: which step failed, the issue type, and which inputs are missing. Use those details to guide the user on what to fix before retrying.

Parameters:

  • workflowObjectId and workflowDraftId: returned by create_workflow — they identify which draft to publish.

  • shouldActivate: whether to activate the workflow immediately after publish. Defaults to true — pass false to publish without activating.

Returns:

  • workflowObjectId: the workflow object ID (unchanged)

  • workflowLiveId: the new live version ID — this changes on every publish, so do not cache it

Note: if directing the user to the workflow in the UI, the correct URL path is custom_objects/, not workflows/ — e.g. {account}.monday.com/custom_objects/{workflowObjectId}.

configure_ai_columnA

Add AI to a column or set up an AI column on a monday.com board. Use this tool when the user wants to automatically categorize, summarize, translate, extract, generate text, improve writing, or assign people using AI on a column. This is the right tool for requests like "add AI to a column", "set up automatic extraction/categorization/summarization", "make a column use AI", "configure AI on a column", or "use AI to automatically fill a column".

The column must already exist on the board with a compatible type for the chosen block. To create a new AI column, first use create_column to create the column, then use this tool to add AI behavior.

BLOCK TYPES (only pass fields that apply to the chosen block_type):

  • categorize: { block_type, source_type, source_column_id?, additional_instructions? } — assigns labels from target column's existing status/dropdown options

  • summarize: { block_type, source_type, source_column_id?, additional_instructions? } — generates concise summaries

  • translate: { block_type, source_type, source_column_id?, target_language } — translates to target language

  • improve_text: { block_type, source_type, source_column_id?, tone?, improver_length?, refinement_type? } — rewrites/fixes text

  • extract: { block_type, source_type, source_column_id?, entity_type, custom_instructions?, additional_instructions? } — extracts structured info

  • open_block: { block_type, ai_query } — flexible custom prompt, reference columns via {pulse.column_id}

  • write_me: { block_type, ai_query, tone, output_length } — generates new text from prompt

  • person_assignment: { block_type, source_type, source_column_id?, groups } — assigns people based on context

SOURCE TYPES (required for all blocks except open_block and write_me):

  • item_name: uses the item's name as input

  • thread: uses the item's updates/comments as input

  • column: uses another column's value (requires source_column_id)

  • emails_and_activities: uses emails & activities (categorize only)

COLUMN REFERENCE SYNTAX (for open_block and write_me ai_query):

  • {pulse.column_id} — regular board column

  • {pulse.name} — the item name

  • {pulse.subitem.column_id} — subitem column

RELATED TOOLS:

  • create_column — create the target column first if it doesn't exist

  • get_board_schema — discover existing columns and their types/IDs

remove_ai_from_columnA

Remove AI from a column on a monday.com board. Use this tool when the user wants to disable AI on a column, turn off AI automation, stop AI from running on a column, or delete the AI behavior from a column. This deletes all AI automation recipes and the app feature extension associated with the column. The column itself is not deleted — only its AI behavior is removed.

Use get_board_schema to find column IDs before calling this tool.

get_monday_dev_sprints_boardsA

Discover monday-dev sprints boards and their associated tasks boards in your account.

Purpose:

Identifies and returns monday-dev sprints board IDs and tasks board IDs that you need to use with other monday-dev tools. This tool scans your recently used boards (up to 100) to find valid monday-dev sprint management boards.

What it Returns:

  • Pairs of sprints boards and their corresponding tasks boards

  • Board IDs, names, and workspace information for each pair

  • The bidirectional relationship between each sprints board and its tasks board

Note:

Searches recently used boards (up to 100). If none found, ask user to provide board IDs manually.

get_sprints_metadataA

Get comprehensive sprint metadata from a monday-dev sprints board including:

Data Retrieved:

A table of sprints with the following information:

  • Sprint ID

  • Sprint Name

  • Sprint timeline (planned from/to dates)

  • Sprint completion status (completed/in-progress/planned)

  • Sprint start date (actual)

  • Sprint end date (actual)

  • Sprint activation status

  • Sprint summary document object ID

Parameters:

  • limit: Number of sprints to retrieve (default: 25, max: 100)

Requires the Main Sprints board ID of the monday-dev containing your sprints.

get_sprint_summaryA

Get the complete summary and analysis of a sprint.

Purpose:

Unlock deep insights into completed sprint performance.

The sprint summary content including:

  • Scope Management: Analysis of planned vs. unplanned tasks, scope creep

  • Velocity & Performance: Individual velocity, task completion rates, workload distribution per team member

  • Task Distribution: Breakdown of completed tasks by type (Feature, Bug, Tech Debt, Infrastructure, etc.)

  • AI Recommendations: Action items, process improvements, retrospective focus areas

Requirements:

  • Sprint must be completed and must be created after 1/1/2025

Important Note:

When viewing the section "Completed by Assignee", you'll see user IDs in the format "@user-12345678". the 8 digits after the @is the user ID. To retrieve the actual owner names, use the list_users_and_teams tool with the user ID and set includeTeams=false for optimal performance.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mondaycom/mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server