# Monday MCP

monday.com is a work management platform for organizing projects, workflows, and customer processes in boards, docs, and dashboards. It helps teams plan work, track progress, and collaborate across functions.

- **Category:** productivity & project management
- **Auth:** DCR_OAUTH
- **Composio Managed App Available?** No
- **Tools:** 36
- **Triggers:** 0
- **Slug:** `MONDAY_MCP`
- **Version:** 20260206_00

## Tools

### All monday api

**Slug:** `MONDAY_MCP_ALL_MONDAY_API`

Execute any monday.com API operation by generating GraphQL queries and mutations dynamically. Make sure you ask only for the fields you need and nothing more. When providing the query/mutation - use get_graphql_schema and get_type_details tools first to understand the schema before crafting your query.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | Custom GraphQL query/mutation. you need to provide the full query / mutation |
| `variables` | string | Yes | JSON string containing the variables for the GraphQL operation |

### All widgets schema

**Slug:** `MONDAY_MCP_ALL_WIDGETS_SCHEMA`

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.

### Board insights

**Slug:** `MONDAY_MCP_BOARD_INSIGHTS`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | number | No | The limit of the results |
| `boardId` | number | Yes | The id of the board to get insights for |
| `filters` | array | No | The configuration of filters to apply on the items. Before sending the filters, use get_board_info tool to check "filteringGuidelines" key for filtering by the column. |
| `groupBy` | array | No | The columns to group by. All columns in the group by must be in the aggregations as well without a function. |
| `orderBy` | array | No | The columns to order by, will control the order of the items in the response |
| `aggregations` | array | No | The aggregations to get. Before sending the aggregations, use get_board_info tool to check "aggregationGuidelines" key for information. Transformative functions and plain columns (no function) must be in group by. [REQUIRED PRECONDITION]: Either send this field or the stringified version of it. |
| `filtersOperator` | string ("and" | "or") | No | The logical operator to use for the filters |
| `filtersStringified` | string | No | **ONLY FOR MICROSOFT COPILOT**: The filters to apply on the items. Send this as a stringified JSON array of "filters" field. Read "filters" field description for details how to use it. |
| `orderByStringified` | string | No | **ONLY FOR MICROSOFT COPILOT**: The order by to apply on the items. Send this as a stringified JSON array of "orderBy" field. Read "orderBy" field description for details how to use it. |
| `aggregationsStringified` | string | No | **ONLY FOR MICROSOFT COPILOT**: The aggregations to get. Send this as a stringified JSON array of "aggregations" field. Read "aggregations" field description for details how to use it. |

### Change item column values

**Slug:** `MONDAY_MCP_CHANGE_ITEM_COLUMN_VALUES`

Change the column values of an item in a monday.com board

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `itemId` | number | Yes | The ID of the item to be updated |
| `boardId` | number | Yes | The ID of the board that contains the item to be updated |
| `columnValues` | string | Yes | 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\":\"test@example.com\"}" |

### Create board

**Slug:** `MONDAY_MCP_CREATE_BOARD`

Create a monday.com board

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `boardKind` | string ("private" | "public" | "share") | No | The kind of board to create |
| `boardName` | string | Yes | The name of the board to create |
| `workspaceId` | string | No | The ID of the workspace to create the board in |
| `boardDescription` | string | No | The description of the board to create |

### Create column

**Slug:** `MONDAY_MCP_CREATE_COLUMN`

Create a new column in a monday.com board

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `boardId` | number | Yes | The id of the board to which the new column will be added |
| `columnType` | string ("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" | "phone" | "progress" | "rating" | "status" | "subtasks" | "tags" | "team" | "text" | "time_tracking" | "timeline" | "unsupported" | "vote" | "week" | "world_clock") | Yes | The type of the column to be created |
| `columnTitle` | string | Yes | The title of the column to be created |
| `columnSettings` | string | No | Column-specific configuration settings as a JSON string. Use the get_column_type_info tool to fetch the JSON schema for the given column type. |
| `columnDescription` | string | No | The description of the column to be created |

### Create dashboard

**Slug:** `MONDAY_MCP_CREATE_DASHBOARD`

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

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `kind` | string ("PRIVATE" | "PUBLIC") | No | Visibility level: PUBLIC or PRIVATE |
| `name` | string | Yes | Human-readable dashboard title (UTF-8 chars) |
| `board_ids` | array | Yes | List of board IDs as strings (min 1 element) |
| `workspace_id` | string | Yes | ID of the workspace that will own the dashboard |
| `board_folder_id` | string | No | Optional folder ID within workspace to place this dashboard (if not provided, dashboard will be placed in workspace root) |

### Create doc

**Slug:** `MONDAY_MCP_CREATE_DOC`

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)
- item: Creates a document attached to an item (requires item_id, optional column_id)

USAGE EXAMPLES:
- Workspace doc: { location: "workspace", workspace_id: 123, doc_kind: "private" , markdown: "..." }
- Workspace doc in folder: { location: "workspace", workspace_id: 123, folder_id: 17264196 , markdown: "..." }
- Item doc: { location: "item", item_id: 456, column_id: "doc_col_1" , markdown: "..." }

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | number | No | [REQUIRED - use only when location="item"] Item ID to attach the new document to |
| `doc_kind` | string ("private" | "public" | "share") | No | [OPTIONAL - use only when location="workspace"] Document kind (public/private/share). Defaults to public. |
| `doc_name` | string | Yes | Name for the new document. |
| `location` | string ("workspace" | "item") | Yes | Location where the document should be created - either in a workspace or attached to an item |
| `markdown` | string | Yes | Markdown content that will be imported into the newly created document as blocks. |
| `column_id` | string | No | [OPTIONAL - use only when location="item"] ID of an existing "doc" column on the board which contains the item. If not provided, the tool will create a new doc column automatically when creating a doc on an item. |
| `folder_id` | number | No | [OPTIONAL - use only when location="workspace"] Optional folder ID to place the document inside a specific folder |
| `workspace_id` | number | No | [REQUIRED - use only when location="workspace"] Workspace ID under which to create the new document |

### Create folder

**Slug:** `MONDAY_MCP_CREATE_FOLDER`

Create a new folder in a monday.com workspace

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the folder to be created |
| `color` | string ("AQUAMARINE" | "BRIGHT_BLUE" | "BRIGHT_GREEN" | "CHILI_BLUE" | "DARK_ORANGE" | "DARK_PURPLE" | "DARK_RED" | "DONE_GREEN" | "INDIGO" | "LIPSTICK" | "NULL" | "PURPLE" | "SOFIA_PINK" | "STUCK_RED" | "SUNSET" | "WORKING_ORANGE") | No | The color of the folder |
| `customIcon` | string ("FOLDER" | "MOREBELOW" | "MOREBELOWFILLED" | "NULL" | "WORK") | No | The custom icon of the folder |
| `fontWeight` | string ("FONT_WEIGHT_BOLD" | "FONT_WEIGHT_LIGHT" | "FONT_WEIGHT_NORMAL" | "FONT_WEIGHT_VERY_LIGHT" | "NULL") | No | The font weight of the folder |
| `workspaceId` | string | Yes | The ID of the workspace where the folder will be created |
| `parentFolderId` | string | No | The ID of the parent folder |

### Create form

**Slug:** `MONDAY_MCP_CREATE_FORM`

Create a monday.com form. This will create a new form as well as a new board for which the form’s responses will be stored. The returned board_id is the ID of the board that was created while the returned formToken can be used for all future queries and mutations to continue editing the form.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `board_kind` | string ("private" | "public" | "share") | No | The board kind to create for the board in which the form will create items in. |
| `board_owner_ids` | array | No | Array of user IDs who will have owner permissions on the board in which the form will create items in. |
| `destination_name` | string | No | The name of the board that will be created to store the form responses in. |
| `board_owner_team_ids` | array | No | Array of team IDs whose members will have owner permissions on the board in which the form will create items in. |
| `board_subscriber_ids` | array | No | Array of user IDs who will receive notifications about board activity for the board in which the form will create items in. |
| `destination_folder_id` | string | No | The folder in which the form will be created under. |
| `destination_folder_name` | string | No | The name of the folder in which the form will be created in. |
| `destination_workspace_id` | string | Yes | The workspace in which the form will be created in. |
| `board_subscriber_teams_ids` | array | No | Array of team IDs whose members will receive notifications about board activity for the board in which the form will create items in. |

### Create group

**Slug:** `MONDAY_MCP_CREATE_GROUP`

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

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `boardId` | string | Yes | The ID of the board to create the group in |
| `groupName` | string | Yes | The name of the new group (maximum 255 characters) |
| `groupColor` | string ("#037f4c" | "#00c875" | "#9cd326" | "#cab641" | "#ffcb00" | "#784bd1" | "#9d50dd" | "#007eb5" | "#579bfc" | "#66ccff" | "#bb3354" | "#df2f4a" | "#ff007f" | "#ff5ac4" | "#ff642e" | "#fdab3d" | "#7f5347" | "#c4c4c4" | "#757575") | No | The color for the group. Must be one of the predefined Monday.com group colors: #037f4c, #00c875, #9cd326, #cab641, #ffcb00, #784bd1, #9d50dd, #007eb5, #579bfc, #66ccff, #bb3354, #df2f4a, #ff007f, #ff5ac4, #ff642e, #fdab3d, #7f5347, #c4c4c4, #757575 |
| `relativeTo` | string | No | The ID of the group to position this new group relative to |
| `positionRelativeMethod` | string ("after_at" | "before_at") | No | Whether to position the new group before or after the relativeTo group |

### Create item

**Slug:** `MONDAY_MCP_CREATE_ITEM`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the new item to be created, must be relevant to the user's request |
| `boardId` | number | Yes | The id of the board to which the new item will be added |
| `groupId` | string | No | The id of the group id to which the new item will be added, if its not clearly specified, leave empty |
| `columnValues` | string | Yes | 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\":\"test@example.com\"}" |
| `parentItemId` | number | No | The id of the parent item under which the new subitem will be created |
| `duplicateFromItemId` | number | No | The id of existing item to duplicate and update with new values (only provide when duplicating) |

### Create update

**Slug:** `MONDAY_MCP_CREATE_UPDATE`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | Yes | The update text to be created. Do not use @ to mention users, use the mentionsList field instead. |
| `itemId` | number | Yes | The id of the item to which the update will be added |
| `mentionsList` | string | No | Optional JSON array of mentions in the format: [{"id": "123", "type": "User"}, {"id": "456", "type": "Team"}]. Valid types are: User, Team, Board, Project |

### Create widget

**Slug:** `MONDAY_MCP_CREATE_WIDGET`

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

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `settings` | object | No | Widget-specific settings as JSON object conforming to widget schema. Use all_widgets_schema tool to get the required schema for each widget type. |
| `widget_kind` | string ("BATTERY" | "CALENDAR" | "CHART" | "GANTT" | "NUMBER" | "TABLE") | Yes | Type of widget to create: i.e CHART, NUMBER, BATTERY |
| `widget_name` | string | Yes | Widget display name (1-255 UTF-8 chars) |
| `parent_container_id` | string | Yes | ID of the parent container (dashboard ID or board view ID) |
| `settingsStringified` | string | No | **ONLY FOR MICROSOFT COPILOT**: The settings object. Send this as a stringified JSON of "settings" field. Read "settings" field description for details how to use it. |
| `parent_container_type` | string ("BOARD_VIEW" | "DASHBOARD") | Yes | Type of parent container: DASHBOARD or BOARD_VIEW |

### Create workspace

**Slug:** `MONDAY_MCP_CREATE_WORKSPACE`

Create a new workspace in monday.com

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the new workspace to be created |
| `description` | string | No | The description of the new workspace |
| `workspaceKind` | string ("closed" | "open" | "template") | Yes | The kind of workspace to create |
| `accountProductId` | string | No | The account product ID associated with the workspace |

### Form questions editor

**Slug:** `MONDAY_MCP_FORM_QUESTIONS_EDITOR`

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

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `action` | string ("delete" | "update" | "create") | Yes | The type of operation to perform on the question. Can delete, update, or create. When updating or deleting a question, the questionId is required. When creating or updating a question, the question object is required. When updating, the question is a patch object, meaning that only the fields that are provided will be updated. |
| `question` | object | No | The question object containing all properties for creation or update. When creating a question, the title is required. |
| `formToken` | string | Yes | The unique identifier token for the form. Required for all form-specific operations. |
| `questionId` | string | No | The unique identifier for the question. Used to target specific questions within a form. |
| `questionStringified` | string | No | **ONLY FOR MICROSOFT COPILOT**: The question object. Send this as a stringified JSON of "question" field. Read "question" field description for details how to use it. |

### Get board activity

**Slug:** `MONDAY_MCP_GET_BOARD_ACTIVITY`

Get board activity logs for a specified time range (defaults to last 30 days)

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `toDate` | string | No | End date for activity range (ISO8601DateTime format). Defaults to now |
| `boardId` | number | Yes | The id of the board to get activity for |
| `fromDate` | string | No | Start date for activity range (ISO8601DateTime format). Defaults to 30 days ago |

### Get board info

**Slug:** `MONDAY_MCP_GET_BOARD_INFO`

Get comprehensive board information including metadata, structure, owners, and configuration

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `boardId` | number | Yes | The id of the board to get information for |

### Get board items page

**Slug:** `MONDAY_MCP_GET_BOARD_ITEMS_PAGE`

Get all items from a monday.com board with pagination support and optional column values. 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.[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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | number | No | The number of items to get |
| `cursor` | string | No | The cursor to get the next page of items, use the nextCursor from the previous response. If the nextCursor was null, it means there are no more items to get |
| `boardId` | number | Yes | The id of the board to get items from |
| `filters` | array | No | The configuration of filters to apply on the items. Before sending the filters, use get_board_info tool to check "filteringGuidelines" key for filtering by the column. |
| `itemIds` | array | No | The ids of the items to get. The count of items should be less than 100. |
| `orderBy` | array | No | The columns to order by, will control the order of the items in the response |
| `columnIds` | array | No | The ids of the item columns and subitem columns to get, can be used to reduce the response size when user asks for specific columns. Works only when includeColumns is true. If not provided, all columns will be returned |
| `searchTerm` | string | No |      The search term to use for the search.     - Use this when: the user provides a vague, incomplete, or approximate search term (e.g., “marketing campaign”, “John’s task”, “budget-related”), and there isn’t a clear exact compare value for a specific field.     - Do not use this when: the user specifies an exact value that maps directly to a column comparison (e.g., name contains "marketing campaign", status = "Done", priority = "High", owner = "Daniel"). In these cases, prefer structured compare filters.    |
| `subItemLimit` | number | No | The number of sub items to get per item. This is only used when includeSubItems is true. |
| `includeColumns` | boolean | No | Whether to include column values in the response. PERFORMANCE OPTIMIZATION: Only set this to true when you actually need the column data. Excluding columns significantly reduces token usage and improves response latency. If you only need to count items, get item IDs/names, or check if items exist, keep this false. |
| `filtersOperator` | string ("and" | "or") | No | The operator to use for the filters |
| `includeSubItems` | boolean | No | Whether to include sub items in the response. PERFORMANCE OPTIMIZATION: Only set this to true when you actually need the sub items data. |
| `filtersStringified` | string | No | **ONLY FOR MICROSOFT COPILOT**: The filters to apply on the items. Send this as a stringified JSON array of "filters" field. Read "filters" field description for details how to use it. |
| `orderByStringified` | string | No | **ONLY FOR MICROSOFT COPILOT**: The order by to apply on the items. Send this as a stringified JSON array of "orderBy" field. Read "orderBy" field description for details how to use it. |

### Get column type info

**Slug:** `MONDAY_MCP_GET_COLUMN_TYPE_INFO`

Retrieves comprehensive information about a specific column type, including JSON schema definition and other metadata. Use this before creating columns with the create_column tool to understand the structure, validation rules, and available properties for column settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `columnType` | string ("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" | "phone" | "progress" | "rating" | "status" | "subtasks" | "tags" | "team" | "text" | "time_tracking" | "timeline" | "unsupported" | "vote" | "week" | "world_clock") | Yes | The column type to retrieve information for (e.g., "text", "status", "date", "numbers") |

### Get form

**Slug:** `MONDAY_MCP_GET_FORM`

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 token is the alphanumeric string that appears right after /forms/ and before the ?. In the example, the token is abc123def456ghi789.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `formToken` | string | Yes | The unique identifier token for the form. Required for all form-specific operations. |

### Get graphql schema

**Slug:** `MONDAY_MCP_GET_GRAPHQL_SCHEMA`

Fetch the monday.com GraphQL schema structure including query and mutation definitions. This tool returns available query fields, mutation fields, and a list of GraphQL types in the schema. You can filter results by operation type (read/write) to focus on either queries or mutations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `operationType` | string ("read" | "write") | No | Type of operation: "read" for queries, "write" for mutations |
| `random_string` | string | No | Dummy parameter for no-parameter tools |

### Get monday dev sprints boards

**Slug:** `MONDAY_MCP_GET_MONDAY_DEV_SPRINTS_BOARDS`

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 metadata

**Slug:** `MONDAY_MCP_GET_SPRINTS_METADATA`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | number | No | The number of sprints to retrieve (default: 25, max: 100) |
| `sprintsBoardId` | number | Yes | The ID of the monday-dev board containing the sprints |

### Get sprint summary

**Slug:** `MONDAY_MCP_GET_SPRINT_SUMMARY`

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.



#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sprintId` | number | Yes | The ID of the sprint to get the summary for (e.g., "9123456789") |

### Get type details

**Slug:** `MONDAY_MCP_GET_TYPE_DETAILS`

Get detailed information about a specific GraphQL type from the monday.com API schema

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `typeName` | string | Yes | The name of the GraphQL type to get details for |

### Get user context

**Slug:** `MONDAY_MCP_GET_USER_CONTEXT`

Fetch current user information and their relevant items (boards, folders, workspaces, dashboards).
    
    Use this tool at the beginning of conversations to:
    - Get context about who the current user is (id, name, title)
    - Discover user's favorite boards, folders, workspaces, and dashboards
    - Get user's most relevant boards based on visit frequency and recency
    - Reduce the need for search requests by knowing user's commonly accessed items
    

### List users and teams

**Slug:** `MONDAY_MCP_LIST_USERS_AND_TEAMS`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Name-based USER search ONLY. STANDALONE parameter - cannot be combined with others. PREFERRED method for finding users when you know names. Performs fuzzy matching.       CRITICAL: This parameter searches for USERS ONLY, NOT teams. To search for teams, use teamIds parameter instead. |
| `getMe` | boolean | No | [TOP PRIORITY] Use ALWAYS when requesting current user information. Examples of when it should be used: ["get my user" or "get my teams"].       This parameter CONFLICTS with all others.  |
| `teamIds` | array | No | Specific team IDs to fetch.[IMPORTANT] ALWAYS use when you have team IDs in context, NEVER fetch all teams if specific IDs are available.       RETURNS: Team details with owners and optional member data. |
| `userIds` | array | No | Specific user IDs to fetch.[IMPORTANT] ALWAYS use when you have user IDs in context. PREFER over general search. RETURNS: user profiles including team memberships |
| `teamsOnly` | boolean | No | Fetch only teams, no users returned. Combine with includeTeamMembers for member details. |
| `includeTeams` | boolean | No | [AVOID] This fetches all teams in the account. To fetch a specific user's teams just fetch that user by id and you will get their team memberships. |
| `includeTeamMembers` | boolean | No | Set to true only when you need additional member details for teams other than names and ids. |

### List workspaces

**Slug:** `MONDAY_MCP_LIST_WORKSPACES`

List all workspaces available to the user. Returns up to 500 workspaces with their ID, name, and description.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | number | No | The page number to return. Default is 1. |
| `limit` | number | No | The number of workspaces to return. Default and maximum allowed is 100 |
| `searchTerm` | string | No | The search term to filter the workspaces by. If not provided, all workspaces will be returned. [IMPORANT] Only alphanumeric characters are supported. |

### Move object

**Slug:** `MONDAY_MCP_MOVE_OBJECT`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the object to move |
| `objectType` | string ("Board" | "Folder" | "Overview") | Yes | The type of object to move |
| `workspaceId` | string | No | The ID of the workspace containing the object. Required if moving to a different workspace. |
| `parentFolderId` | string | No | The ID of the new parent folder. Required if moving to a different folder. |
| `accountProductId` | string | No | The ID of the account product containing the object. Required if moving to a different account product. |
| `position_is_after` | boolean | No | Whether to position the object after the object |
| `position_object_id` | string | No | The ID of the object to position the object relative to. If this parameter is provided, position_object_type must be also provided. |
| `position_object_type` | string ("Board" | "Folder" | "Overview") | No | The type of object to position the object relative to. If this parameter is provided, position_object_id must be also provided. |

### Read docs

**Slug:** `MONDAY_MCP_READ_DOCS`

Get a collection of monday.com documents with their content as markdown. 

PAGINATION: 
- Default limit is 25 documents per page
- Use 'page' parameter to get additional pages (starts at 1)
- Check response for 'has_more_pages' to know if you should continue paginating
- If user asks for "all documents" and you get exactly 25 results, continue with page 2, 3, etc.

FILTERING: Provide a type value and array of ids:
- type: 'ids' for specific document IDs
- type: 'object_ids' for specific document object IDs  
- type: 'workspace_ids' for all docs in specific workspaces
- ids: array of ID strings (at least 1 required)

Examples:
- { type: 'ids', ids: ['123', '456'] }
- { type: 'object_ids', ids: ['123'] }
- { type: 'workspace_ids', ids: ['ws_101'] }

USAGE PATTERNS:
- For specific documents: use type 'ids' or 'object_ids' (A monday doc has two unique identifiers)
- For workspace exploration: use type 'workspace_ids' with pagination
- For large searches: start with page 1, then paginate if has_more_pages=true

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ids` | array | Yes | Array of ID values for this query type (at least 1 required) |
| `page` | number | No | The page number to return (starts at 1). Use this to paginate through large result sets. Check response for has_more_pages indicator. |
| `type` | string ("ids" | "object_ids" | "workspace_ids") | Yes | Query type of ids parameter that is used query by: ids, object_ids, or workspace_ids |
| `limit` | number | No | Number of docs per page (default: 25). Affects pagination - if you get exactly this many results, there may be more pages. |
| `order_by` | string ("created_at" | "used_at") | No | The order in which to retrieve your docs. The default shows created_at with the newest docs listed first. This argument will not be applied if you query docs by specific ids. |

### Search

**Slug:** `MONDAY_MCP_SEARCH`

Search within monday.com platform. Can search for boards, documents, forms, folders.
For users and teams, use list_users_and_teams tool.
For workspaces, use list_workspaces tool.
For items and groups, use get_board_items_page tool.
For groups, use get_board_info tool.
IMPORTANT: ids returned by this tool are prefixed with the type of the object (e.g doc-123, board-456, folder-789). When passing the ids to other tools, you need to remove the prefix and just pass the number.
    

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | number | No | The page number to get. The default value is 1. |
| `limit` | number | No | The number of items to get. The max and default value is 100. |
| `searchTerm` | string | No | The search term to use for the search. |
| `searchType` | string ("BOARD" | "DOCUMENTS" | "FOLDERS") | Yes | The type of search to perform. |
| `workspaceIds` | array | No | The ids of the workspaces to search in. [IMPORTANT] Only pass this param if user explicitly asked to search within specific workspaces. |

### Update folder

**Slug:** `MONDAY_MCP_UPDATE_FOLDER`

Update an existing folder in monday.com

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The new name of the folder |
| `color` | string ("AQUAMARINE" | "BRIGHT_BLUE" | "BRIGHT_GREEN" | "CHILI_BLUE" | "DARK_ORANGE" | "DARK_PURPLE" | "DARK_RED" | "DONE_GREEN" | "INDIGO" | "LIPSTICK" | "NULL" | "PURPLE" | "SOFIA_PINK" | "STUCK_RED" | "SUNSET" | "WORKING_ORANGE") | No | The new color of the folder |
| `folderId` | string | Yes | The ID of the folder to update |
| `customIcon` | string ("FOLDER" | "MOREBELOW" | "MOREBELOWFILLED" | "NULL" | "WORK") | No | The new custom icon of the folder |
| `fontWeight` | string ("FONT_WEIGHT_BOLD" | "FONT_WEIGHT_LIGHT" | "FONT_WEIGHT_NORMAL" | "FONT_WEIGHT_VERY_LIGHT" | "NULL") | No | The new font weight of the folder |
| `workspaceId` | string | No | The ID of the workspace containing the folder |
| `parentFolderId` | string | No | The ID of the new parent folder |
| `accountProductId` | string | No | The account product ID associated with the folder |
| `position_is_after` | boolean | No | Whether to position the folder after the object |
| `position_object_id` | string | No | The ID of the object to position the folder relative to. If this parameter is provided, position_object_type must be also provided. |
| `position_object_type` | string ("Board" | "Folder" | "Overview") | No | The type of object to position the folder relative to. If this parameter is provided, position_object_id must be also provided. |

### Update form

**Slug:** `MONDAY_MCP_UPDATE_FORM`

Update a monday.com form. Handles the following form update actions that can only be done one at a time using the correct "action" input: 
    - update form's feature settings with the action "updateFeatures",
    - update form's appearance settings with the action "updateAppearance",
    - update form's accessibility settings with the action "updateAccessibility",
    - update form's title with the action "updateFormHeader",
    - update form's description with the action "updateFormHeader",
    - update form's question order with the action "updateQuestionOrder",
    - create a new form tag with the action "createTag",
    - delete a form tag with the action "deleteTag",
    - update a form tag with the action "updateTag",
    - set or update the form's password with the action "setFormPassword"
    - shorten form's url with the action "shortenFormUrl"
    - deactivate form with the action "deactivateForm"
    - reactivate form with the action "activateForm"

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tag` | object | No | The tag data to create, update or delete. If deleting a tag, only provide the id of the tag to delete. If creating a tag, provide the name and value, the id and columnId are auto generated. If updating a tag, provide the id and new value, name and columnId are not changeable. |
| `form` | object | No | The form data to update. Required if updating the appearance, accessibility, features, question order, or form header. |
| `action` | string ("activate" | "deactivate" | "shortenFormUrl" | "setFormPassword" | "createTag" | "deleteTag" | "updateTag" | "updateAppearance" | "updateAccessibility" | "updateFeatures" | "updateQuestionOrder" | "updateFormHeader") | Yes | The type of update action to perform on the form. Can be one of the following: activate, deactivate, shortenFormUrl, setFormPassword, createTag, deleteTag, updateTag, updateForm, updateAppearance, updateAccessibility, updateFeatures, updateQuestionOrder, updateFormHeader. |
| `formToken` | string | Yes | The unique identifier token for the form. Required for all form-specific operations. |
| `formPassword` | string | No | Set a password on a form to restrict access. This will enable password protection for the form. Required for the action "setFormPassword" in the update form tool. |
| `tagStringified` | string | No | **ONLY FOR MICROSOFT COPILOT**: The tag data. Send this as a stringified JSON of "tag" field. Read "tag" field description for details how to use it. |
| `formStringified` | string | No | **ONLY FOR MICROSOFT COPILOT**: The form data. Send this as a stringified JSON of "form" field. Read "form" field description for details how to use it. |

### Update workspace

**Slug:** `MONDAY_MCP_UPDATE_WORKSPACE`

Update an existing workspace in monday.com

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the workspace to update |
| `attributeKind` | string ("closed" | "open" | "template") | No | The kind of the workspace to update (open / closed / template) |
| `attributeName` | string | No | The name of the workspace to update |
| `attributeDescription` | string | No | The description of the workspace to update |
| `attributeAccountProductId` | number | No | The target account product's ID to move the workspace to |

### Workspace info

**Slug:** `MONDAY_MCP_WORKSPACE_INFO`

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.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | number | Yes | The ID of the workspace to get information for |
