Can an AI agent use monday.com?
As of 2 Oct 2026, an AI agent gets into monday.com on its own and does 67% of the core work.
- Find: Some docs for agents: llms.txt and an MCP server.
- Access: Sign-up in a browser.
- Use: 67% of the work.
- Pay: Reaches the checkout: Stopped at the card form.
- Leave: Nothing to cancel: Can't delete its account.
To reach L4 · Runs on its own: do 80% of the core work (now 67%).
What the levels meanDriven 2 Oct 2026New level in the latest driveRules of 15 Oct 2026Claim this page
Written and checked by our agents from this drive's record. How we write.
Who gets in
- Agents on a serverGet in on their own.
- Signed agentsThe sign-up page opens.
- Agents in a person's browserNot measured yet.
Sign-up page checked 12 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from
What an agent can do in monday.com.
On its own
- Sign up for an account and get API access, using a web browser
- Create boards, tasks, and custom fields, and update them
- Build automated workflows that react to changes
5 more
- Build dashboards with charts, timelines and calendars
- Create and submit online forms that add new tasks
- Write documents, search for items, and notify teammates
- Set up and launch a simple AI agent, and generate an app from a prompt
- Clean up by deleting everything it created
What it can't, and why
- Sign up without ever opening a browserThe automatic sign-up service was down, and the plain sign-up requires solving a visual puzzle
- Build certain automations while on a trialMonday blocks trial accounts from using its AI automation feature with this type of key
- Switch a board to Kanban, Timeline or Calendar layoutThat option only exists in the visual interface, not through code
3 more
- Talk to monday's Sidekick assistantIt has no code interface, and the agent could not open its chat box in a browser
- Pay for a paid planNo automated payment option exists; only a manual checkout form, and no card was available
- Delete the accountNot found in this trial account's settings; an earlier drive requested deletion in the web app
Can an AI agent sign up for monday.com on its own?
Yes, in a browser, without a human. The documented agent sign-up API (HATCHA reverse-CAPTCHA) passed challenge and verify, but /agent-signup/account/v1 returned 503 'technical issues' on 3 calls over ~25 min while status.monday.com showed green. The standard web sign-up raised a visible reCAPTCHA v2 checkbox for our agent's browser. The agent browser flow (sign_up_new?custom_flow=agent_bot, linked from monday.com/agents-signup) let us through without a visible challenge.
Does monday.com have an MCP server, and can an agent connect to it?
Yes. monday.com has an official MCP server. The server lists 98 tools and signs an agent in with OAuth.
A new agent can get in on its own: in the drive of 2 Oct 2026, our agent signed up, verified and got its key without a person. Through the MCP server, 13 of our agent's 21 attempts worked.
What the drive found
API–OpenAPIMCP · official–CLISDKllms.txtWebhooks–SandboxHow does an AI agent get a monday.com API key?
In the drive of 2 Oct 2026, our agent got its monday.com API key in a browser, without a person. Personal API token copied from Developer Center > API token (or shown on the agent welcome panel). A headless route exists on paper (the token in the agent sign-up API response), but that endpoint was down.
Can an AI agent delete its monday.com account?
Not on its own: blocked. No account-deletion API or MCP tool. In the admin UI we found no delete control (General > Account ends at 'Export account data'; the Billing section would not open on this trial account; /admin/billing returned not found). The help-centre article returned a Cloudflare challenge to our agent. Every object we created was deleted through the API; the empty trial account is still there.
Can an AI agent pay for monday.com?
Reaches the checkout: stopped at the card form.
No card needed to start.
What would let agents pay on their own
- Accept x402 or MPP on your API. Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card.Step-by-step guide
- List your plans on Stripe Projects. Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev).Step-by-step guide
No 402, x402, MPP, L402 or UCP anywhere; no listing in the x402 Bazaar or on mpp.dev; no billing mutation in GraphQL and no billing tool in MCP. Upgrading happens in the in-app checkout ('Add payment details & complete your purchase', card or PayPal), which an agent with a card could fill in. Not completed because we have no card, so 3DS was not tested. The Basic cart came with an 'AI add-on 1000 credits' line already added.
From the drive of 2 Oct 2026.
For the team behind monday.com.
Where agents stop in monday.com today, and the fixes that get them further, highest impact first.
The fixes, highest impact first
- Keep the agent sign-up API upStep-by-step guide
- Let trial tokens use create_automationStep-by-step guide
- Add Kanban, Timeline, Calendar view kinds
7 more fixes
- Add an account deletion endpoint
- Expose Sidekick as an MCP tool
- Never return errors after a successful write
- Make email confirmation links work headless
- Add a billing API for plan upgrades Step-by-step guide
- Make MCP argument types consistent
- Return real errors from invite_users
- Claim it free and reply next to the result.
- A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
- Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
Details
Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.
Already claimed it? Open it in your dashboard.
Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.
Embed the badge on your site
Behind the level.
The part scores and the measures behind them.
Part scores and the measures · level history
Part scores
Agent-ready setup
- llms.txt: found
- OpenAPI: not found
- MCP server: found
- CLI: not found
Not measured in this drive: Holds up, Docs match (part of an Audit).
The measures
- Work done67
- Reliability83
- Crash test–
Level history
- 1 Oct 20262 drivesL4Runs on its own
- 2 Oct 2026new driveL3Does the work
For agents and builders.
The drive as data, every checkpoint and all 36 attempts.
How an agent connects · 9 tips
/api/tools/monday.json/tools/monday.mdMCP get_tool {"slug":"monday"}
- Read monday.com/llms.txt first: it links the agent sign-up skill, the API skill and the MCP card.
- If the sign-up API is down, use https://auth.monday.com/users/sign_up_new?custom_flow=agent_bot. For us it raised no visible CAPTCHA, while the plain sign-up URL did.
- The hosted MCP (https://mcp.monday.com/mcp) accepts the personal API token as 'Authorization: Bearer <token>'. GraphQL takes the same token without 'Bearer'.
- Check each tool's inputSchema: ID types differ between tools (string vs number).
- Status filters in create_view need numeric label indices, not label text.
- On a trial, create_automation is blocked for personal tokens. Build the automation as a workflow instead: create_workflow, then invoke_workflow_expert (pass workflowDraftId), validate_workflow, publish_workflow.
- Dashboards live at /overviews/<id>; delete them with delete_dashboard (returns Boolean), not delete_board.
- Public form URLs need the region suffix (?r=euc1 for EU accounts), otherwise you get a 404.
- After any 5xx from a create tool, list the objects before retrying; the write may have happened.
Every checkpoint, in detail · 9 checkpoints
- DocsHeadlessllms.txt, agent skills (signup + API), MCP server card at /.well-known/mcp.json, OAuth metadata with dynamic client registration, public versioned GraphQL schema at /v2/get_schema.
- Sign upIn a browserThe documented agent sign-up API (HATCHA reverse-CAPTCHA) passed challenge and verify, but /agent-signup/account/v1 returned 503 'technical issues' on 3 calls over ~25 min while status.monday.com showed green. The standard web sign-up raised a visible reCAPTCHA v2 checkbox for our agent's browser. The agent browser flow (sign_up_new?custom_flow=agent_bot, linked from monday.com/agents-signup) let us through without a visible challenge.
- VerifyIn a browserConfirmation mail arrived within about a minute. Following the link headless ended on a login page (406). The link worked inside the logged-in browser, and the API then reported is_verified=true.
- KeyIn a browserPersonal API token copied from Developer Center > API token (or shown on the agent welcome panel). A headless route exists on paper (the token in the agent sign-up API response), but that endpoint was down.
- First callHeadlessGraphQL `me`/account query returned 200. The hosted MCP at mcp.monday.com/mcp accepts the same token as Bearer: initialize, then tools/list with 98 tools.
- First actionHeadlesscreate_board via the hosted MCP made a private board, which a GraphQL read-back confirmed.
- PayIn a browserNo 402, x402, MPP, L402 or UCP anywhere; no listing in the x402 Bazaar or on mpp.dev; no billing mutation in GraphQL and no billing tool in MCP. Upgrading happens in the in-app checkout ('Add payment details & complete your purchase', card or PayPal), which an agent with a card could fill in. Not completed because we have no card, so 3DS was not tested. The Basic cart came with an 'AI add-on 1000 credits' line already added.
- CancelNot neededNothing to cancel: our agent started no paid plan.
- DeleteBlockedNo account-deletion API or MCP tool. In the admin UI we found no delete control (General > Account ends at 'Export account data'; the Billing section would not open on this trial account; /admin/billing returned not found). The help-centre article returned a Cloudflare challenge to our agent. Every object we created was deleted through the API; the empty trial account is still there.
The attempt log · 36 attempts
| Capability | Route | Result | Evidence |
|---|---|---|---|
| find docs: Find docs, llms.txt, MCP/OAuth discovery | api | done ✓ | monday.com/llms.txt 200 text/plain; api.monday.com/v2 401 JSON NOT_AUTHENTICATED; mcp.monday.com/mcp 401 with WWW-Authenticate Bearer resource_metadata; auth.monday.com/.well-known/oauth-authorization-server 200 JSON with registration_endpoint (DCR) |
| sign up: Sign up in browser with the agent's inbox | browser | blocked | After Continue, URL became /users/sign_up_new?should_show_recaptcha=true and a visible reCAPTCHA v2 'I'm not a robot' checkbox appeared; Continue disabled (shot 002.png) |
| sign up: Agent signup API (documented in llms.txt -> signup-for-agents SKILL.md): challenge, verify, create account | api | failed | POST /agent-captcha/challenge/v1 200 (binary type); POST /agent-captcha/verify/v1 200 success:true; POST /agent-signup/account/v1 503 text/html 'We are having technical issues. Visit our Status Page' |
| sign up: Retry agent signup API once (~3 min later) | api | failed | challenge 200 (count), verify 200 success:true, account/v1 503 text/html technical issues page again |
| sign up: Browser signup via agent flow https://auth.monday.com/users/sign_up_new?custom_flow=agent_bot (linked from monday.com/agents-signup) | browser | done ✓ | Email step passed with no visible reCAPTCHA (unlike the plain sign-up URL); form: full name, password, account name, use-for=Work, phone optional (left empty); company size 1-19; landed on [redacted]/ 'Welcome to Monday for agents' |
| verify email: Confirm email from inbox | browser | done ✓ | Mail '[Confirm your email]' from no_reply@euc1.monday.com arrived within ~1 min. opened in browser session -> home; API me.is_verified=true |
| get API token: Get personal API token | browser | done ✓ | Developer Center > API token page (/apps/manage/tokens), Show -> token copied to secrets.env |
| first API call: query me/account/boards | api | done ✓ | POST api.monday.com/v2 200: me.id 118392955 is_verified true, account slug agentdrives-company tier pro, 1 board 'My first project' |
| Create a board: create_board via hosted MCP with numeric workspaceId | mcp | failed | isError: Invalid input: expected string, received number (workspaceId) |
| Create a board: create_board via hosted MCP (workspaceId as string) | mcp | done ✓ | MCP: Board 'AD Test Sprint' created (ID 5105358810); GraphQL boards(ids) returns it private in workspace 7859388 |
| Create and update items: create_item without columnValues | mcp | failed | isError: columnValues Required |
| Create and update items: create 2 items, update one via change_item_column_values | mcp | done ✓ | items 3258551663, 3258549516 created; status->Done, points->8; GraphQL items(ids) returns Status=Done, Due=2026-10-09, Owner=AgentDrives Test, Points=8 |
| Column types: add status/date/people/numbers columns and set values | mcp | done ✓ | create_column x4 -> color_mm7rvqc7, date_mm7re7n5, multiple_person_mm7reh8d, numeric_mm7rmd9y; GraphQL columns list shows types status/date/people/numbers; values read back |
| Multiple views (Timeline, Gantt, Calendar, Kanban): create a filtered view; Kanban/Timeline/Calendar requested | mcp | partial ✓ | create_view TABLE 'Open work' (ID 58457839) with status filter created; boards.views lists it. First try with label 'Done' failed: 'Status column values must be numeric indices'. MCP create_view and GraphQL ViewKind enum only allow TABLE/DASHBOARD/FORM/APP - no Kanban, Timeline, Gantt or Calendar via any documented headless route |
| No-code automations: create_automation 'when Status changes to Done set Points to 0' via MCP with personal API token | mcp | failed | isError: lite-builder HTTP 403 code trial_account_restricted: 'Personal API tokens cannot be used to access the external AI gateway while your account is on a trial plan.' |
| Custom multi-step workflows: create_workflow -> invoke_workflow_expert (trigger: item created on board; action: change status) -> validate_workflow -> publish_workflow, then create an item to fire it | mcp | done ✓ | workflowObjectId 5105358877 draft 5252993 published live; new item 3258563331 created with empty status read back via GraphQL with Status='Working on it' ~15s later |
| No-code automations: board automation 'when item created set Status' via the workflows tools (create_automation was blocked on trial) | mcp | done ✓ | Same workflow 5105358877: trigger on board 5105358810 fired and set Status on item 3258563331 (GraphQL read-back 'Working on it') |
| Dashboards with widgets: create_dashboard on AD Test Sprint + NUMBER (sum Points), GANTT and CALENDAR widgets via MCP | mcp | done ✓ | dashboard 13267746, widgets 182043367/369/371 created; browser at /overviews/13267746 shows 'Total points 8 Sum', Timeline with 'Write drive report Oct 9', Calendar with the item on the 9th (shot 018.png) |
| Multiple views (Timeline, Gantt, Calendar, Kanban): Timeline/Gantt and Calendar layouts as widgets (GANTT, CALENDAR widget kinds) | mcp | partial ✓ | GANTT and CALENDAR widgets on dashboard 13267746 render the board item (shot 018.png). Kanban: no view type or widget kind for it (ViewKind = TABLE/DASHBOARD/FORM/APP; widget kinds APP_FEATURE/BATTERY/CALENDAR/CHART/NUMBER/LISTVIEW/GANTT) |
| Forms that create items: create_form + add ShortText question, submit, read item on backing board | mcp | done ✓ | form token 37f6...; board 5105359135; form_questions_editor created short_textsormc9lx; create_form_submission (needs form_timezone_offset, not in docs) -> submission ecff20ed...; GraphQL items_page shows item 'AgentDrives Test' with 'AgentDrives test submission'; public URL forms.monday.com/forms/<token>?r=euc1 returns 200 unauthenticated (without ?r=euc1: 404) |
| Sidekick AI assistant: Ask Sidekick how many items are on AD Test Sprint and the Points total | browser | failed | /sidekick page loads with greeting and 'Message Sidekick...' box (shots 020-022) but 3 tries could not focus the composer (locator timeout / no contenteditable or textarea found in any frame); no answer appeared |
| Autonomous AI agents: manage_agent create_blank 'AD Triage Agent', activate, run with a counting prompt | mcp | partial ✓ | agent 107520 created INACTIVE, activate -> success, get -> state ACTIVE; run -> 'Agent run enqueued' trigger 80858fca...; run output not read back (no tool returns an agent run result) |
| Docs linked to board data: create_doc from markdown in workspace | mcp | done ✓ | doc 10401526 (object 5105359442) created; GraphQL docs(ids) returns title block 'Drive notes' and bullet with item id |
| Search: search ITEMS 'drive report' in workspace | mcp | done ✓ | returned 'Write drive report' (3258551663) first, plus two other items on the same board |
| Assign and notify: assign item to self (people column) and send a notification | mcp | done ✓ | Owner column read back 'AgentDrives Test'; create_notification returned id -1 but GraphQL notifications lists id 1388338688 'AgentDrives test notification' unread |
| monday MCP server: Connect to hosted MCP https://mcp.monday.com/mcp with the API token as Bearer, initialize, tools/list, call tools | mcp | done ✓ | initialize 200 protocol 2025-06-18; tools/list 98 tools; tool calls created board/items/dashboard verified via GraphQL |
| GraphQL API: read and write via api.monday.com/v2 | api | done ✓ | me/boards/items/docs/notifications queries 200; schema public at /v2/get_schema (SDL, versioned) |
| Board from template: create board from a template | mcp | failed | MCP create_board useMlsTemplate:true -> 'Fetcher response returned NON-OK status=500'; GraphQL create_board(template_id: <our board>) -> CreateBoardException 'The template ID given is not an account template'; no API query lists template-center IDs |
| Invite guests: invite our own second inbox the agent's inbox as GUEST | api | failed | invite_users(user_role:GUEST, product:work_management) -> invited_users [], errors [{message:'Unknown error', code:'ERROR'}] |
| pay step: Probe agent payment rails and the self-serve checkout without paying | browser | partial ✓ | No 402/x402/MPP/L402 on api.monday.com/v2 (401 JSON), mcp.monday.com (401 Bearer), x402./mpp./agents.monday.com (302 to account sign-in, wildcard account subdomains); /.well-known/ucp 404 HTML; no monday listing in x402 Bazaar or mpp.dev; llms.txt and skills mention no machine payments; no billing mutation in GraphQL 2026-04 and no billing tool in 98 MCP tools. In app: 'See plans' -> /pricing_page/p1 -> Continue -> in-app 'Add payment details & complete your purchase' form (credit card or PayPal), Basic 5 seats yearly 642.60 EUR incl. a pre-added 'AI add-on 1000 credits' line. Stopped there, nothing entered. |
| Vibe app builder: vibe_create a small page listing board items with status | mcp | done ✓ | vibe_create -> app 10153703 status CREATED; vibe_get ~1 min later -> name 'Status Timeline', status READY, is_busy false (not published) |
| Develop and publish custom apps: create an app in the apps framework via GraphQL | api | partial ✓ | create_app without slug -> 'App slug is required' (schema marks slug optional); with slug -> app 12297557 (api_app_id 2397841); app(id) query returns it |
| delete created data: delete item, agent, vibe app, doc, workflow, form board, test board, dashboard | api | done ✓ | delete_item -> items(ids) state 'deleted'; manage_agent delete -> DELETED; vibe_delete success; delete_doc success; delete_board on workflow 5105358877, 5105359135, 5105358810 -> deleted; dashboard via delete_dashboard (delete_board on dashboard id -> InvalidBoardIdException) |
| Board from template: re-check after MCP 500: did create_board useMlsTemplate create anything? | mcp | partial ✓ | boards list shows 'AD Template Board' 5105359487 (People, Subitems columns, 'Item 1') created despite the 500 error; creationPrompt (tasks/owners/status/due dates) not reflected |
| cancel/downgrade: Check whether anything recurring needs cancelling | browser | done ✓ | Account is on a 14-day Pro trial started without any card; pricing modal offers 'Downgrade to our Free plan' link; no payment method on file, so nothing will be charged |
| first real action: create a board via hosted MCP | mcp | done ✓ | create_board -> ID 5105358810; GraphQL boards(ids) returns it |
Also in Project management.
BasecampL4Gets in on its ownmonday.com vs Basecamp
PlaneL4Gets in on its ownmonday.com vs Plane
GitHubL4Gets in on its ownmonday.com vs GitHub
ShortcutL4Gets in on its ownmonday.com vs Shortcut