/ Directory / Playground / monday.com
● Official mondaycom 🔑 Needs your key

monday.com

by mondaycom · mondaycom/mcp

Manage monday.com boards, items, updates, and groups in natural language — create tasks, move status, and roll up reports without clicking 30 times.

monday.com's official MCP maps the monday GraphQL API to tools. Create/update items, change column values, post updates, move across groups, and query boards with filters. Works with personal tokens or OAuth; scope tightly — write access can rewrite your whole board.

Why use it

Key features

Live Demo

What it looks like in practice

monday.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "monday": {
      "command": "npx",
      "args": [
        "-y",
        "@mondaydotcomorg/monday-api-mcp"
      ]
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "monday": {
      "command": "npx",
      "args": [
        "-y",
        "@mondaydotcomorg/monday-api-mcp"
      ]
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "monday": {
      "command": "npx",
      "args": [
        "-y",
        "@mondaydotcomorg/monday-api-mcp"
      ]
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "monday": {
      "command": "npx",
      "args": [
        "-y",
        "@mondaydotcomorg/monday-api-mcp"
      ]
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "monday",
      "command": "npx",
      "args": [
        "-y",
        "@mondaydotcomorg/monday-api-mcp"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "monday": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@mondaydotcomorg/monday-api-mcp"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add monday -- npx -y @mondaydotcomorg/monday-api-mcp

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use monday.com

Auto-generate a daily standup digest from a project board

👤 Team leads running standups on monday.com ⏱ ~15 min beginner

When to use: You want 'what moved yesterday, what's blocked, what's due today' without hand-scrolling the board.

Prerequisites
  • monday API token — monday.com → avatar → Developers → My Access Tokens
  • Board ID — URL contains /boards/<board_id>
Flow
  1. Pull items updated in last 24h
    List items on board <id> where updated_at > yesterday. Show name, status, owner, due date.✓ Copied
    → Recent-activity list
  2. Segment by status
    Group these by status column value: Done / Working / Stuck / To Do. Show counts and who owns each Stuck item.✓ Copied
    → Clear 4-bucket summary
  3. Format the standup
    Format a 10-line standup: moved-to-Done (count), started-Working (count), Stuck items with owner @-mentions, items due today.✓ Copied
    → Copy-pasteable digest

Outcome: A standup digest you can paste into Slack or LINE in 30 seconds.

Pitfalls
  • Filtering by updated_at includes column-value changes AND subitem updates — noisy — Add an activity_logs query filtered to status or owner changes only
Combine with: line-bot · ms-teams

Bulk-import 500 items into a board from a CSV

👤 PMs kicking off a new project with pre-listed tasks ⏱ ~25 min intermediate

When to use: You have a Google Sheet / CSV of tasks and want them on a monday board with the right columns filled in.

Prerequisites
  • CSV with columns matching the board — Header names should roughly match the board columns: name, status, owner_email, date
Flow
  1. Inspect target board schema
    Describe board <id>: every column with its id, title, type, and allowed values.✓ Copied
    → Column catalog
  2. Map CSV to column_values
    Given my CSV headers [paste], produce a mapping to monday column ids. Flag any CSV rows with statuses not in the allowed set.✓ Copied
    → Mapping + validation report
  3. Create items in batches
    Create these items in batches of 25 with create_item + the mapped column_values. Stop if 3 consecutive calls fail.✓ Copied
    → All itemIds; any failures listed with row numbers

Outcome: All 500 items on the board with owner, status, and due date pre-filled.

Pitfalls
  • Column-value JSON shape differs per column type — easy to send invalid payload — Always fetch the column type first; status uses {label:'...'}, date uses {date:'YYYY-MM-DD'}, people uses {personsAndTeams:[{id,kind}]}
  • Rate limits kick in at ~60 items/min — Sleep between batches; monday returns 429 that the MCP surfaces — add a 2s pause
Combine with: filesystem

Post an AI-written status update on every active item

👤 Ops/PMO wanting written context on every in-flight item ⏱ ~30 min intermediate

When to use: End of week — you want every 'Working on it' item to get a 2-line status update automatically.

Flow
  1. Find active items
    List items on board <id> where status = 'Working on it'. Include name, owner, last update text.✓ Copied
    → In-flight items
  2. Draft a 2-line update per item
    For each item, draft a 2-sentence status update based on the last_update + recent column changes. Use a neutral tone.✓ Copied
    → Drafts ready for review
  3. Post after approval
    Show me drafts 3 at a time. On my 'ok', post as an update on the item.✓ Copied
    → Updates posted; itemIds confirmed

Outcome: Every active item now has a fresh end-of-week note, no busy-work for the team.

Pitfalls
  • Auto-posting without review can embarrass you (wrong context) — Always gate posts behind human 'ok' for at least the first week
Combine with: github

Generate an exec portfolio rollup across 10 project boards

👤 Program managers / chiefs of staff ⏱ ~30 min advanced

When to use: Weekly leadership review: one slide summarizing health of every project.

Flow
  1. Enumerate portfolio
    List boards in folder 'Engineering / Projects'. For each, count items by status.✓ Copied
    → Per-board status distribution
  2. Compute a health score
    For each board: health = 100 - 5*(stuck items) - 2*(overdue items). Flag < 70 as red.✓ Copied
    → Board → health + color
  3. Produce a markdown report
    Generate a one-screen markdown table: Board | Health | Stuck | Overdue | Top risk. Order by health ascending.✓ Copied
    → Leadership-ready table

Outcome: An at-a-glance portfolio dashboard, repeatable weekly.

Pitfalls
  • 'Stuck' and 'overdue' meanings vary across boards — Standardize status columns or keep per-board overrides in a config file
Combine with: notion

Find and archive stale items across a board

👤 Board owners tired of cruft ⏱ ~25 min intermediate

When to use: Board has grown to 1000+ items with many untouched for months.

Flow
  1. Find untouched items
    Items on board <id> not updated in 90+ days and status != Done. List name, owner, last update date.✓ Copied
    → Stale list
  2. Decide per-item
    Show the list 10 at a time. For each: keep / archive / reassign. I'll say one letter per item.✓ Copied
    → Triage decisions
  3. Execute archive/move
    Apply: archive the 'a' items with archive_item, reassign 'r' items to owner <me>, keep 'k'.✓ Copied
    → Board cleaned; change log saved

Outcome: A board that reflects reality, with an audit log of what was archived and why.

Pitfalls
  • Archived items are invisible; hard to restore if you regret it later — Duplicate the board first as a snapshot, OR use labels instead of archive for a trial run

Create an incident item with linked artifacts after a Sentry page

👤 On-call engineers ⏱ ~15 min intermediate

When to use: Incident just closed; you want a monday item capturing scope, timeline, and owners.

Flow
  1. Collect the artifacts
    From Sentry, get issue <id>: title, first seen, users affected, resolving release. From GitHub, the PR that fixed it.✓ Copied
    → Artifact bundle
  2. Create the monday item
    On board 'Incidents', create_item with name='<Sentry title>', status='Resolved', owner=me, date=today, description=auto-written postmortem including artifact links.✓ Copied
    → itemId returned
  3. Post the timeline as an update
    Post a timeline update on that item: detection time, deploy reverted at, root cause, followups.✓ Copied
    → Update posted

Outcome: A postmortem item created within 5 minutes of incident close, with everything linked.

Pitfalls
  • Over-long description breaks monday formatting — Keep description to headlines; put details in a threaded update
Combine with: sentry · github

Combinations

Pair with other MCPs for X10 leverage

monday + sentry

Auto-create a monday incident item when a critical Sentry issue fires

When Sentry issue WEB-3a91 reaches 100+ events, create an item on board 'Incidents' with name=issue title and severity column set to P1.✓ Copied
monday + github

Link a PR merge to a monday item status change

When PR #342 merges, find monday item matching its title and set status to 'Done'.✓ Copied
monday + notion

Weekly exec portfolio rollup posted to Notion

Run the portfolio health rollup and create a Notion page with the result as a table.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
list_boards workspace_id?, limit? Discover boards GraphQL complexity units
get_board board_id Inspect schema before writes complexity
list_items board_id, limit?, cursor?, columns_filter? Paged item fetch complexity
create_item board_id, group_id?, name, column_values? Add a new task complexity
change_column_value board_id, item_id, column_id, value Update status, owner, date, etc. complexity
create_update item_id, body Post a comment on an item complexity
archive_item item_id Remove without deleting complexity
create_webhook board_id, url, event Push changes to an external system complexity

Cost & Limits

What this costs to run

API quota
Complexity-budget limits: 10M complexity/minute on Pro; 5M on Standard. Heavy queries cost more.
Tokens per call
Item reads: 500–2000 tokens. Board schema: 500–1500 tokens.
Monetary
API is free at your plan level. monday plans start at ~$9/user/mo.
Tip
Use columns filter in list_items to return only the fields you need — avoids hitting complexity cap on wide boards.

Security

Permissions, secrets, blast radius

Minimum scopes: me:read boards:read
Credential storage: MONDAY_API_TOKEN (personal token) in env
Data egress: All calls to api.monday.com
Never grant: account:admin for an MCP that only reads specific boards

Troubleshooting

Common errors and fixes

401 Not Authenticated

MONDAY_API_TOKEN missing/expired. Regenerate at monday.com → Developers → My Access Tokens.

Verify: curl -H 'Authorization: $MONDAY_API_TOKEN' https://api.monday.com/v2 -d '{"query":"{ me { name } }"}'
ComplexityException — Max complexity reached

Query too heavy. Reduce limit or fetch fewer columns/subitems per item.

ColumnValueException — invalid column value

Column-value JSON shape wrong for the column type. Fetch the column first and inspect the type, then build the JSON accordingly (status: {label}, date: {date:'YYYY-MM-DD'}).

Rate limit exceeded (429)

Back off to ~1 write/sec. monday enforces per-minute throttles on mutations.

Alternatives

monday.com vs others

AlternativeWhen to use it insteadTradeoff
Linear MCPEngineering-focused teams want keyboard-first issue trackingLess flexible than monday; no arbitrary column types
Asana MCPTeam is on AsanaDifferent column/field model
Notion MCPYou want docs + light tracking in one surfaceWeaker at dense project management; not a real PM tool

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills