Can an AI agent use Shortcut?

As of 2 Oct 2026, an AI agent gets into Shortcut on its own and does 88% of the core work.

Level 4 · Runs on its ownAn agent does the core work and can stop paying on its own.
  • Find: Docs for agents: llms.txt, an OpenAPI and an MCP server.
  • Access: Sign-up in a browser.
  • Use: 88% of the work.
  • Pay: Card checkout.
  • Leave: Nothing to cancel: Can't delete its account.

To reach L5 · Autonomous: pay without a person.

What the levels mean

Driven 2 Oct 2026Same level in 2 drives in a rowRules 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 Shortcut.

On its own

  • Create and organize tasks, epics, and sprints
  • Link tasks together and tag them with labels and custom info
  • Write project docs and connect them to epics after a one-time setup click
2 more
  • Connect an AI assistant directly through an official integration
  • Clean up everything it created afterward

What it can't, and why

  • Sign up and get an access key without a browserSign-up is a web form and keys are only issued from a settings page or a consent click
  • Turn on the Docs feature for a new accountOnly a one-time click in the settings page turns it on; no API for it
  • Place a project on the visual roadmapThat action only exists in the web interface
2 more
  • Pay for or upgrade the planNo automatic payment option exists; only a card form in the browser
  • Delete its accountThe delete button fails silently due to a server error
On its own, in a browser

Can an AI agent sign up for Shortcut on its own?

Yes, in a browser, without a human. Web form only: work email, 4-digit code, workspace name, name/password/profession. Invisible reCAPTCHA script on the page let our signed agent through. 14-day trial, no card.

Official server · its calls worked

Does Shortcut have an MCP server, and can an agent connect to it?

Yes. Shortcut has an official MCP server.

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, 1 of our agent's 1 attempt worked. An agent with only the MCP server, like a chat assistant with a connector, did 50% of the core work.

What the drive found

APIOpenAPIMCP · official–CLI–SDKllms.txtWebhooks–Sandbox
On its own, in a browser

How does an AI agent get a Shortcut API key?

In the drive of 2 Oct 2026, our agent got its Shortcut API key in a browser, without a person. API token from Settings > API Tokens (shown once). OAuth: dynamic client registration works headless, but the consent click is in the browser.

Blocked

Can an AI agent delete its Shortcut account?

Not on its own: blocked. Delete Account in the browser silently fails: the app's call returns 422 'User is sole owner of one or more organizations.' and the UI shows nothing. Disabling the organization goes through a retention survey that did not disable anything. No API. Account and an emptied workspace remain.

Not tested in this drive: paying. Every checkpoint, in detail

For the team behind Shortcut.

Where agents stop in Shortcut today, and the fixes that get them further, highest impact first.

Wall at delete

The fixes, highest impact first

  1. Make Delete Account work for sole owners
  2. Allow sign-up and token issue without browserStep-by-step guide
  3. Let the API enable workspace features
4 more fixes
  1. Add a billing API or agent payment rail Step-by-step guide
  2. Expose roadmap and webhook settings in API
  3. Bring v3-only document features to v4
  4. Apply entity templates server-side on create
  • 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).
See the example report
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

Driven · L4 · Runs on its own badge

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: found
  • MCP server: found
  • CLI: not found

Not measured in this drive: Holds up, Docs match (part of an Audit).

The measures

  1. Work done88
  2. Reliability86
  3. Crash test–

By kind of agent

  1. MCP only50

Level history

  1. 1 Oct 2026L4Runs on its own
  2. 2 Oct 2026L4Runs on its own

For agents and builders.

The drive as data, every checkpoint and all 48 attempts.

How an agent connects · 9 tips
  • Sign up and create a 'Full access' API token in the browser once; everything after that works over REST v4 with Authorization: Bearer.
  • Or use the official MCP server: register a client at /oauth-client-registration-flow/register, PKCE, one consent click; tokens last 30 minutes with a refresh token.
  • Workspace slug is in whoami; all v4 paths are /api/v4/{slug}/...
  • POST /stories needs workflow_state_id; get ids from /workflows/{id}/states.
  • Use label_ids_add / custom_field_values_add / set_position on PATCH; v3-style 'labels' is rejected.
  • Turn on Docs in Settings > Features before POST /documents (403 otherwise); link docs to epics and delete docs through the v3 API (Shortcut-Token header).
  • Templates are not applied server-side: GET the template and copy story_contents yourself.
  • Archive stories and epics before DELETE (422 otherwise).
  • Turn off 'allow teammates with your email domain to join' at sign-up if your inbox domain is shared.
Every checkpoint, in detail · 9 checkpoints
  1. DocsHeadlessllms.txt on www.shortcut.com, OpenAPI 3.0.3 v4 at www.shortcut.com/openapi.json (247 operations), v3 OpenAPI on developer.shortcut.com, MCP server with OAuth discovery metadata.
  2. Sign upIn a browserWeb form only: work email, 4-digit code, workspace name, name/password/profession. Invisible reCAPTCHA script on the page let our signed agent through. 14-day trial, no card.
  3. VerifyIn a browser4-digit code mailed within about a minute and entered in the browser (the mail also has a magic link).
  4. KeyIn a browserAPI token from Settings > API Tokens (shown once). OAuth: dynamic client registration works headless, but the consent click is in the browser.
  5. First callHeadlessGET /api/v4/whoami 200 with Bearer token.
  6. First actionHeadlessPOST /api/v4/[redacted]/stories 201, read back with GET.
  7. PayNot triedNo 402/x402/MPP/UCP/L402, no billing API, no MCP billing tools, no registry listings. Upgrading is plan selection in Settings > Billing with a Stripe.js card form inside the web app, which a browser agent with a card could likely complete; we have no card, entered nothing and did not reach the card fields, so the step itself is unproven (status blocked: no card).
  8. CancelNot neededNothing to cancel: our agent started no paid plan.
  9. DeleteBlockedDelete Account in the browser silently fails: the app's call returns 422 'User is sole owner of one or more organizations.' and the UI shows nothing. Disabling the organization goes through a retention survey that did not disable anything. No API. Account and an emptied workspace remain.
The attempt log · 48 attempts
Attempt log
CapabilityRouteResultEvidence
Find docs: Find API docs, OpenAPI, llms.txt, MCPapidone ✓llms.txt at www.shortcut.com/llms.txt; OpenAPI v4 at www.shortcut.com/openapi.json (247 ops, Bearer); v3 OpenAPI at developer.shortcut.com (143 ops); MCP mcp.shortcut.com/mcp with oauth-protected-resource metadata
Sign up: Create account via www.shortcut.com/signup with work emailbrowserdone ✓Form: work email -> 4-digit code -> workspace name -> name/password/profession/terms; landed on app.shortcut.com/[redacted]/stories
Verify email: Enter 4-digit code from emailbrowserdone ✓Mail 'Shortcut Verification Code: 3074' from noreply@shortcut.com arrived within ~1 minute; code accepted
Get API credentials: Create API token in Settings > API Tokensbrowserdone ✓Token 'Full access' created in UI; shown once; format sct_rwa_<slug>_...; also OAuth 2.1 with dynamic client registration advertised at api.app.shortcut.com/.well-known/oauth-authorization-server (needs browser consent)
First API call: GET /api/v4/whoamiapidone ✓200, member AgentDrives Test role admin, scopes read/admin/write, default workflow Standard
First real action: POST /stories creating a storyapidone ✓201 story id 26, GET returns it
Create and manage a Story: Create story, update description/estimate, read backapidone ✓POST /api/v4/[redacted]/stories 201 id 26; PATCH 200; GET shows description 'Updated by agent', estimate 3
Move a Story through workflow: PATCH workflow_state_id To Do -> In Progressapidone ✓GET story 26 workflow_state.name = In Progress, started=True
Group Stories into an Epic: Create epic, attach story via epic_id, read backapidone ✓POST /epics 201 id 28; PATCH story epic_id; GET /epics/28/stories -> [26]; /stats num_stories_total=1
Connect work to an Objective: Create objective, create epic with objective_ids, read objective epicsapidone ✓POST /objectives 201 id 27; GET /objectives/27/epics -> [28]
Plan a Sprint/Iteration: Create iteration 2026-10-05..16, assign storyapidone ✓POST /iterations 201 id 29; PATCH story iteration_id; GET /iterations/29/stories -> [26], dates 2026-10-05/2026-10-16
Write a collaborative Doc: POST /documents with markdown PRDapifailed403 {feature_tag:docs, message:'The docs feature is not enabled for this workspace.'}
Write a collaborative Doc: After enabling Docs (one UI toggle in Settings > Features), POST /documents markdown and link to epicapidone ✓POST /api/v4/.../documents 201 id [id]; v3 GET /documents/[id] returns content_markdown; PUT v3 /documents/[id]/epics/28 200; GET v3 /documents/[id]/epics lists epic 28; epic stats num_related_documents=1
Comment on Story/Epic: Post comment on story and epic, list backapidone ✓POST /stories/26/comments 201; GET comments -> 'Agent comment: looks good'; POST /epics/28/comments 201
Add checklist to Story: Add checklist item, mark completed, read backapidone ✓POST checklist-items 201; PATCH completed:true 200; GET -> ('Write tests', completed True)
Link related Stories: Story 30 blocks story 26apidone ✓POST /story-links 201 id 500000018; GET /stories/26/story-links shows verb 'blocks' object 26
Attach a Linked File: Create URL linked file, attach to storyapidone ✓POST /linked-files 201 id 35; PATCH story linked_file_ids; GET /stories/26/linked-files -> [35]
Tag work with Labels: Create label, add to storyapidone ✓POST /labels 201 id 36; PATCH label_ids_add 200; GET /stories/26/labels -> ['agentdrives']
Custom Fields: Set Priority=High on storyapidone ✓GET /custom-fields lists Priority/Product Area/Severity; PATCH custom_field_values_add 200; GET /stories/26/custom-field-values -> Priority value High
Story from Entity Template: Create template; create story with story_template_id (v3)apipartial ✓POST /entity-templates 201 id [id]; v3 POST /stories with story_template_id 201 (story 37) but GET shows story_type=feature, empty description, no labels: template contents are NOT applied server-side
Story from Entity Template: Read template via GET /entity-templates/{id} and create story with its story_contentsapidone ✓Story 38: story_type=bug, description '## Steps..## Expected', label agentdrives - matches template [id]
Curate Backlog / prioritize: Move story 31 to top of Backlog state with set_position first; list backlogapidone ✓PATCH set_position first 200; GET /workflow-states/500000006/stories order before [38,37,30,31] after [31,38,37,30]; positions {31: 12147418112, 38: 12147680256, 37: 12147614720, 30: 12147483648}
Bulk update: PATCH /stories/bulk setting estimates on 2 stories in one requestapidone ✓200 with 2 entities; GET stories 30,31 estimates {30: 1, 31: 2}
Query and mutate via REST API: GET /api/v4/whoami + CRUDapidone ✓whoami 200 with member + workspace slug [redacted]; many create/update calls above
Organize members into Teams: Create team with myself as memberapidone ✓POST /teams 201 id [id]; GET /teams/[id]/members -> ['AgentDrives Test']
Connect AI agent via Shortcut MCP: OAuth DCR + PKCE, one browser consent click, then MCP initialize/tools/list/tools/call stories-createmcpdone ✓DCR POST /oauth-client-registration-flow/register 201 (headless); consent 'Allow Access' in browser; token 200 (Bearer, 1800s, scopes read write story-write comment-write openid); MCP @shortcut/mcp 0.24.0, 57 tools; stories-create -> 'Created story: sc-45'; REST GET /stories/45 200 name 'Story via MCP' type chore
Visualize Epics on Roadmap: Put epic on roadmapapipartialPATCH epic team_ids 200 but Roadmap still showed 'Add Epics' for the team: roadmap membership/order has no API or MCP tool
Visualize Epics on Roadmap: Add epic to team roadmap via UI 'Add Epics'browserdone ✓After reload, Roadmap row under 'AgentDrives Squad': AgentDrives test epic, in progress, 0%, target Oct 30, 2026 (shot 029/030)
Epic and Iteration progress reports: Open epic 28 report in UI; epic stats via APIbrowserdone ✓Epic page renders burndown 'Actual/Ideal Stories Remaining' Oct 05..Oct 30, velocity and cycle-time charts (shot 030); API GET /epics/28/stats gives num_stories_total/points numbers
Metrics dashboard: Open Reports pagebrowserpartial ✓Reports page renders burndown, Cycle Time/Lead Time and Time Spent in Workflow State charts, but all zero (fresh workspace, nothing completed) (shot 031)
Pay / upgrade: Probe 402/x402/MPP/UCP/well-knowns/registries; inspect in-app upgradebrowserdoneUnauth API -> 401 JSON (no 402, no PAYMENT-REQUIRED, no WWW-Authenticate Payment/L402); x402./mpp./agents.shortcut.com do not resolve; /.well-known/ucp none; auth.md/SKILL.md 404; no x-payment-info in OpenAPI; not found in x402 Bazaar or mpp.dev/services; no billing endpoints in OpenAPI or MCP tools. Billing page: Settings > Billing > Plan, Free/Team/Business 'Select' buttons, Stripe.js v2 loaded in-page (card form inside the app)
Manage billing and subscription plan: View billing/plan pagebrowserdone ✓Settings > Billing shows trial ends Oct 16 2026, billing email the agent's inbox, plan table Free/Team/Business (shot 033/034)
Assign Story to AI coding agent and get PRnoneblockedRequires connecting GitHub repo and a third-party coding agent (e.g. Devin, Cursor, Copilot) to the workspace; we have neither account here
Sync Story state with VCS: List branches/pull-requestsapiblockedGET /branches 200 total_items=0; GET /pull-requests did not answer within 30s (client timeout); auto state change needs a connected GitHub/GitLab/Bitbucket repo, which we do not have
Outgoing Webhooks: Find a webhook APIapifailedNo webhook endpoints in v4 OpenAPI (247 ops) or v3 OpenAPI; outgoing webhooks are configured in the UI under Integrations; we had no receiver of our own to test delivery
WIP limitsnoneskippedNot attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)
Extended custom date-range reportsnoneskippedNot attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)
AutomationsnoneskippedNot attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)
Korey AInoneskippedNot attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)
Doc Suggestion ModenoneskippedNot attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)
Import from Jira/Trello/CSVnoneskippedNot attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)
Third-party integrationsnoneskippedNot attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)
Additional workspacesnoneskippedNot attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)
SSO/SCIMnoneskippedNot attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)
Observer seatsnoneskippedNot attempted in the 45-minute budget; UI-only per capability map (no API or MCP tool for it in v4 OpenAPI or MCP tools/list)
Delete created data: Archive+delete stories/epic; delete iteration, objective, label, linked file, template, doc (v3), extra tokensapidone ✓All DELETEs 204 after archiving (unarchived story/epic DELETE gives clear 422 'Cannot delete a non-archived Story.'); GET /epics/28 -> 404; story search shows only the 6 onboarding sample stories
Cancel/downgrade: Nothing recurring: trial needs no card and lapses on its own; looked at Organization Dashboard > Disable OrganizationbrowserdoneBilling shows 'Your trial will end on Oct 16, 2026', no card on file; Disable Organization opens a required retention survey ('We're sorry to see you go': reason, description, tool moving to) whose 'Cancel Account' button closed the form without any backend call; whoami still 200 afterwards
Delete account and data: Settings > Delete Account > 'Delete Me' > type username > Delete AccountbrowserblockedUI shows nothing after confirm; the app's delete request returns 422 {"message":"User is sole owner of one or more organizations."} although the page says sole-owner org data will be deleted. Org disable form (retention survey) did not disable anything. Account and empty workspace remain.

Also in Project management.