Skip to content

Connect Monday.com to ChatGPT: Manage Boards, Items & Workflows

A technical guide to generating a managed MCP server for Monday.com. Learn how to connect ChatGPT to automate board items, file assets, and project workflows.

Sidharth Verma Sidharth Verma · · 9 min read
Connect Monday.com to ChatGPT: Manage Boards, Items & Workflows

If you need to connect Monday.com to ChatGPT to automate project management workflows, manage board items, or orchestrate file assets, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between ChatGPT's JSON-RPC tool calls and Monday.com's underlying API.

If your team uses Claude, check out our guide on connecting Monday.com to Claude or explore our broader architectural overview on connecting Monday.com to AI Agents.

Giving a Large Language Model (LLM) read and write access to a highly flexible platform like Monday.com is an engineering challenge. You have to handle complex nested data structures, map dynamic column types to MCP tool definitions, and deal with unusual pagination formats. Every time a user adds a new custom column or board type, your custom server code must understand how to mutate it.

This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Monday.com, connect it natively to ChatGPT, and execute complex project workflows using natural language.

Stop writing boilerplate API integration code. Let Truto generate secure, managed MCP servers for your AI agents in seconds. :::

The Engineering Reality of the Monday.com API

A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, implementing it against Monday.com's highly specific API is exceptionally painful.

If you decide to build a custom MCP server for Monday.com, you own the entire API lifecycle. Here are the specific integration challenges that break standard REST assumptions when working with this platform:

The GraphQL Complexity and Column Values

Monday.com's API is built natively on GraphQL. When you request or update a board item, you are not sending a standard flat JSON body to a REST endpoint. You are constructing highly specific GraphQL mutations.

Updating column values is particularly tricky. The column_values parameter expects a stringified JSON object where keys are the specific column IDs (which look like status_1 or text45) and values are strictly typed objects depending on the column type. If an LLM attempts to send { "status": "Done" }, the mutation will fail. Your MCP server must translate standard REST-like tool calls into these complex GraphQL mutations, or the AI will hallucinate field names continuously.

The Hidden Subitems Architecture

In Monday.com, subitems are not just nested objects returned alongside a parent item. Subitems are actually top-level items that live on entirely separate, hidden boards. They are linked to their parent items via a specific subtasks column.

When an LLM asks to "list all subtasks for task X," a raw connection would force the LLM to query the parent item, locate the subtask column, extract the subitem IDs, and then query the main items endpoint again for those specific IDs. Truto's proxy APIs handle this mapping, providing clean abstraction layers so the LLM simply calls item retrieval tools.

Complexity-Based Rate Limits

Unlike standard rate limiting that counts raw HTTP requests (e.g., 100 requests per minute), Monday.com enforces a complexity-based rate limit. Each GraphQL query costs a certain amount of "complexity points" (up to 5,000,000 per minute on enterprise plans). Complex nested queries burn through this limit instantly.

Note on how Truto handles rate limits: Truto does not retry, throttle, or apply backoff on rate limit errors. When the upstream Monday.com API returns an HTTP 429, Truto passes that error directly to the caller. Truto normalizes the upstream rate limit data into standardized HTTP headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF specification. The caller (the AI agent or ChatGPT framework) is entirely responsible for reading these headers and executing retry/backoff logic.

Generating the Monday.com MCP Server

Truto derives MCP tools dynamically from the Monday.com integration's resource definitions and schema documentation. Rather than hardcoding tool definitions, Truto generates them on the fly based on the specific integrated account.

Each MCP server is scoped to a single connected tenant. The server URL contains a cryptographic token that securely encodes which account to use and what tools to expose.

You can generate this server via the Truto UI or programmatically via the API.

Method 1: Via the Truto UI

If you are configuring this manually for internal operations:

  1. Navigate to the Integrated Accounts page in your Truto dashboard and select your connected Monday.com account.
  2. Click the MCP Servers tab.
  3. Click Create MCP Server.
  4. Select your desired configuration (e.g., naming the server, filtering for read or write methods, setting an expiration date).
  5. Copy the generated MCP server URL (e.g., https://api.truto.one/mcp/a1b2c3d4...).

Method 2: Via the Truto API

For platforms building AI agents for end-users, you can dynamically provision MCP servers on the fly. The API validates that tools are available, stores the hashed token in Cloudflare KV, and returns the URL.

curl -X POST https://api.truto.one/integrated-account/{integrated_account_id}/mcp \
  -H "Authorization: Bearer YOUR_TRUTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Monday PM Agent",
    "config": {
      "methods": ["read", "write"],
      "tags": ["boards", "items"]
    }
  }'

The response returns the fully authenticated endpoint:

{
  "id": "abc-123",
  "name": "Monday PM Agent",
  "config": {
    "methods": ["read", "write"],
    "tags": ["boards", "items"]
  },
  "expires_at": null,
  "url": "https://api.truto.one/mcp/a1b2c3d4e5f6..."
}

Connecting the MCP Server to ChatGPT

Once you have the url from the previous step, connecting it to ChatGPT takes seconds. All JSON-RPC protocol handling is managed by the Truto router.

Method 1: Via the ChatGPT UI

If you are using ChatGPT Pro, Plus, Enterprise, or Team (with Developer mode enabled):

  1. In ChatGPT, navigate to Settings -> Apps -> Advanced settings.
  2. Ensure Developer mode is enabled.
  3. Under MCP servers / Custom connectors, click Add.
  4. Name the connection (e.g., "Monday.com Workflows").
  5. Paste the Truto MCP URL into the Server URL field and save.

ChatGPT will immediately send an initialize request, discover the Monday.com tools, and make them available in the chat interface.

Method 2: Via Manual Configuration File

If you are running a local desktop client or wrapping ChatGPT inside a custom framework using Server-Sent Events (SSE), you can connect to the remote Truto server using the @modelcontextprotocol/server-sse transport.

Create your configuration JSON:

{
  "mcpServers": {
    "monday-com-truto": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "https://api.truto.one/mcp/a1b2c3d4e5f6..."
      ]
    }
  }
}
sequenceDiagram
    participant ChatGPT as ChatGPT Client
    participant TrutoMCP as Truto MCP Router
    participant TrutoAPI as Truto Proxy API
    participant Monday as Monday.com API

    ChatGPT->>TrutoMCP: POST /mcp/:token (tools/call)
    Note over TrutoMCP: Validates token<br>Extracts schemas
    TrutoMCP->>TrutoAPI: Route to Proxy Handler
    TrutoAPI->>Monday: GraphQL Request
    Monday-->>TrutoAPI: GraphQL Response
    TrutoAPI-->>TrutoMCP: Normalized JSON
    TrutoMCP-->>ChatGPT: JSON-RPC 2.0 Response

Monday.com Hero Tools for AI Agents

Truto automatically generates descriptive, snake_case tool names based on the integration's schemas. Instead of wrestling with GraphQL complexity, your LLM calls these straightforward JSON-RPC tools. Here are the highest-leverage tools available for Monday.com.

list_all_monday_com_board_items

This tool retrieves items from a specific board using cursor-based pagination. It returns the item's state, column values, creators, and subscriber lists.

"Fetch the latest 50 items from the 'Q3 Marketing Pipeline' board and list their current status column values."

Usage Note: The LLM will automatically extract the board_id and handle the next_cursor logic if pagination is required to fetch all requested records.

get_single_monday_com_board_item_by_id

Fetches a comprehensive view of a single board item, including its subitems, group data, and attached assets.

"Retrieve the details for task ID 123456789. What is the current timeline, and are there any subtasks attached?"

Usage Note: Crucial for investigating specific tickets when a user asks about a project's blocking issues.

create_a_monday_com_board_item

Creates a new item on a target board. The tool accepts optional parameters to place the item in a specific group and pre-fill its column values.

"Create a new item called 'Finalize Q3 Budget' on the Finance board. Assign it to group 'High Priority' and set the status to 'Working on it'."

Usage Note: Because Monday.com column updates require stringified JSON matched to strict column IDs, an LLM will often need to call list_all_monday_com_columns first to build the correct payload for this tool.

list_all_monday_com_users

Retrieves the directory of all users in the Monday.com workspace, including their internal IDs, emails, titles, and team assignments.

"Who is currently an admin in our Monday workspace? Get me a list of their names and emails."

Usage Note: This tool is the necessary first step for any AI assignment workflow. To assign an item to a user, the LLM must first search this list to map a natural language name ("John") to a Monday.com User ID.

list_all_monday_com_updates

Fetches the feed of updates (comments/replies) on a specific item.

"Read the comment thread on the 'Database Migration' task. What was the last thing the lead engineer said about the downtime window?"

Usage Note: Updates act as the primary communication log in Monday.com. This tool allows the AI agent to catch up on project context without requiring a human to summarize it.

create_a_monday_com_asset

Uploads a file to a specific file column on a Monday.com item via multipart form data.

"Upload this generated PDF report to the 'Client Deliverables' column on task ID 987654321."

Usage Note: This is exceptionally powerful for workflows where the AI generates reports, charts, or translated documents and needs to store the final artifact directly in the project management system.

Explore the complete schema definitions and full tool inventory on the Monday.com integration page.

Workflows in Action

AI agents excel at orchestrating multi-step workflows. By providing ChatGPT with the Monday.com MCP server, you enable autonomous triage and reporting. Here are real-world examples of how the model sequences these tools.

Scenario 1: Project Manager Triage (Read & Assign)

Project managers waste hours assigning incoming requests to the right team members. An AI agent can monitor an intake board and route items automatically.

"Check the 'IT Intake' board for any items created today that are unassigned. If the request mentions 'network' or 'wifi', assign it to Sarah. Otherwise, assign it to the general queue."

Execution Steps:

  1. list_all_monday_com_board_items is called with the intake board_id to fetch the recent tickets and their column values.
  2. list_all_monday_com_users is called to find Sarah's internal Monday.com User ID.
  3. The LLM analyzes the text of the unassigned items to detect the keywords.
  4. list_all_monday_com_columns is called to identify the exact column ID for the "Assignee" field on that specific board.
  5. create_a_monday_com_board_item (or an update tool) is called to inject the mapped User ID into the assignee column payload.

The user receives confirmation that 4 tickets were routed to Sarah and 2 were left in the general queue.

Scenario 2: Automated Issue Reporting with Logs (Write & Upload)

When automated systems detect failures, you want a ticket created with all context attached, rather than scattering logs across Slack and email.

"We just had an authentication failure on the production API. Create a critical priority bug ticket on the 'Engineering Triage' board titled 'Prod Auth Failure'. Attach this log file to the ticket, and leave a comment pinging the security team."

Execution Steps:

  1. create_a_monday_com_board_item is executed with the title and priority status values.
  2. The LLM receives the new item's ID in the tool response.
  3. create_a_monday_com_asset is executed using the new item ID and the specific file column ID, uploading the raw log data as an attachment.
  4. create_a_monday_com_update (if available via proxy) or an equivalent mutation is called to append the comment pinging the security team to the item's feed.

The user gets a link back to a fully fleshed-out Monday.com ticket with the asset securely attached and the right team members alerted.

Security and Access Control

Exposing an enterprise instance of Monday.com to an LLM requires strict governance. Truto's MCP tokens provide configuration layers to restrict exactly what the agent can do.

  • Method Filtering (config.methods): Restrict the MCP server to read-only operations by passing ["read"] (which allows only get and list operations) or block specific operations entirely to prevent accidental deletions.
  • Tag Filtering (config.tags): Scope the server to specific functional domains. If you only want the AI to manage boards and hide user directories, tag filters enforce this at the tool generation level.
  • Dual Authentication (require_api_token_auth): Enable this flag to require the client to pass a valid Truto API token in the Authorization header, in addition to possessing the MCP server URL. This prevents unauthorized execution if the URL is leaked.
  • Automatic Expiration (expires_at): Set a Unix timestamp to automatically revoke the server token. This is perfect for generating temporary tools for automated ephemeral CI/CD agents or temporary contractor access.

The Strategic Advantage of Managed MCP

Building an MCP server for Monday.com from scratch requires writing a dynamic schema parser, handling raw GraphQL payloads, managing OAuth credential refreshes, and building pagination normalization.

With Truto, tool generation is documentation-driven and happens dynamically. You connect the Monday.com account, hit an endpoint, and immediately receive a secure, fully hosted JSON-RPC endpoint ready for Claude, ChatGPT, or custom LangChain agents.

By offloading the integration infrastructure, your engineering team can stop reading API documentation and start building autonomous workflows.

FAQ

How does Truto handle Monday.com rate limits?
Truto does not retry, throttle, or apply backoff on rate limit errors. When Monday.com returns a 429 Too Many Requests, Truto passes that error directly to the caller. Truto normalizes the upstream rate limit data into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF spec. The AI agent or calling framework is responsible for handling retries.
Does Truto support custom column updates in Monday.com?
Yes. The dynamically generated MCP tools expose the necessary schemas for query and body parameters. Because LLMs can call the list_all_monday_com_columns tool first, they can discover the exact column IDs required to mutate custom fields on board items.
Can I restrict the Monday.com MCP server to read-only access?
Yes. When generating the MCP token, you can pass method filters like config.methods: ["read"] or config.methods: ["get", "list"]. This guarantees the LLM cannot execute creation, update, or deletion tools.

More from our Blog