Skip to content

Connectors · Work & projects

Shortcut MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Shortcut and the rest of your systems. It gives your agent 142 Shortcut actions (71 reads, 50 writes and 21 that wait for a confirmation) and holds the Shortcut credential itself, so the agent never does. It paces Shortcut's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "shortcut.members.list_members",  intent: "check which Shortcut account is connected"}# List members · read · 1 upstream call
  • 142actionsin one signed file
  • 71readlook, never change
  • 50writecreate and update
  • 21wait for a yesdestructive, confirmed first

Set up

Connect Shortcut in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect Shortcut.

    API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.

    • api_tokenShortcut API token
    account { op: "connections.requirements", service: "shortcut" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "shortcut.members.list_members" }# list members · read · 1 upstream callcheck { action: "shortcut.stories.create_story", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Shortcut at a glance

Sign-in
API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
You provide
api_token
Limits we pace to
200 calls a minute, per connection
API covered
Shortcut API v3api.app.shortcut.com
Built from
Shortcut's documentation, read 19 September 2026developer.shortcut.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
71 of 71 reads, for up to an hour; a write clears what it affects
Ready-made plans
8 in the store
Shared entities
4, so ask can line Shortcut up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Shortcut.

142 actions in 34 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 71readlook, never change
  • 50writecreate and update
  • 21destructivewait for a confirmation
  1. Epics

    8

    5 read · 2 write · 1 destructive

    List epic stories · Get epic · Create epic · List epics

  2. Iterations

    8

    3 read · 4 write · 1 destructive

    List iterations · Create iteration · Get iteration · Disable iterations

  3. Categories

    7

    4 read · 2 write · 1 destructive

    List category milestones · List category objectives · List categories · Create category

  4. Entity templates

    7

    2 read · 4 write · 1 destructive

    List entity templates · Create entity template · Get entity template · Disable story templates

  5. Labels

    7

    4 read · 2 write · 1 destructive

    List label stories · List label epics · List labels · Create label

  6. Search

    7

    7 read · 0 write · 0 destructive

    Search stories · Search epics · Search documents · Search iterations

  7. Epic comments

    6

    2 read · 3 write · 1 destructive

    Create epic comment · Create epic comment comment · List epic comments · Get epic comment

  8. Milestones

    6

    3 read · 2 write · 1 destructive

    List milestone epics · Create milestone · List milestones · Update milestone

26 more areas · 86 actions
  • Objectives 6
  • Projects 6
  • Stories 6
  • Story comments 6
  • Documents 5
  • Groups 5
  • Linked files 5
  • Custom fields 4
  • Files 4
  • Story links 4
  • Story tasks 4
  • Document epics 3
  • Epic health 3
  • Integrations 3
  • Members 3
  • Objective health 3
  • Stories bulk 3
  • Key results 2
  • Repositories 2
  • Story comment reactions 2
  • Workflows 2
  • Epic workflow 1
  • External links 1
  • Health 1
  • Story history 1
  • Story sub tasks 1

Top actions

The Shortcut API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 108 of Shortcut's 114 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
shortcut.stories.get_storyGet storyGet Storyreadwork.task.get124 connectors
shortcut.stories.create_storyCreate storyCreate Storywritework.task.create127 connectors
shortcut.story_comments.get_story_commentGet story commentGet Story Commentreadwork.task_comment.get18 connectors
shortcut.groups.get_groupGet groupGet Groupreadidentity.group.get212 connectors
shortcut.story_comments.create_story_commentCreate story commentCreate Story Commentwritework.task_comment.create28 connectors
shortcut.members.get_memberGet memberGet Memberreadwork.workspace_member.get11 connectors
shortcut.stories.delete_storyDelete storyDelete Storydestructivework.task.delete107 connectors
shortcut.members.list_membersList membersList Membersreadwork.workspace_member.list26 connectors
shortcut.groups.list_groupsList groupsList Groupsreadidentity.group.list262 connectors
shortcut.projects.list_projectsList projectsList Projectsreadwork.project.list109 connectors
shortcut.projects.create_projectCreate projectCreate Projectwritework.project.create102 connectors
shortcut.epics.get_epicGet epicGet Epicreadwork.epic.get2 connectors

Try it

Prompts to paste into Claude.

Each one names the Shortcut actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which Shortcut tasks are overdue, and who owns each one?

    callsshortcut.stories.get_story

  2. Planwrite

    Report progress on an objective and record its health in Shortcut.

    callsshortcut.objectives.get_objectiveshortcut.objectives.list_objective_epicsshortcut.epics.list_epic_storiesshortcut.objective_health.create_objective_healthshortcut.objective_health.list_objective_healths

  3. Planwrite

    Archive a finished epic after sign-off in Shortcut. Ask me before anything is sent or changed.

    callsshortcut.epics.get_epicshortcut.epics.list_epic_storiesshortcut.epic_health.create_epic_healthshortcut.epics.update_epic

  4. Writewrite

    Create story in Shortcut. Show me exactly what you will send before you save it.

    callsshortcut.stories.create_story

The plan store

Ready-made plans for Shortcut.

8 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.

  1. Roll up health for every epic on a milestone

    Use it when Someone asks how the epics under a milestone are tracking before a delivery review.

    Effect
    read
    Steps
    3 · loops
    Needs
    milestone public id
    Install
    shortcut-epic-health-rollup
  2. Triage unowned bugs into an epic

    Use it when The bug queue has gone stale and someone wants each open bug nudged for an owner.

    Effect
    write
    Steps
    3 · loops
    Install
    shortcut-triage-unowned-bugs
  3. Open an iteration and seed its kickoff doc

    Use it when A new iteration is starting and it needs a record, a kickoff doc and an epic note.

    Effect
    write
    Steps
    4
    Needs
    name, start date, end date and epic public id
    Install
    shortcut-iteration-kickoff
  4. Create a story from a template and add its checklist

    Use it when A repeatable piece of work needs raising from a template together with its standard checklist.

    Effect
    write
    Steps
    4 · loops
    Needs
    story template id and tasks
    Install
    shortcut-story-from-template-with-tasks
  5. Archive a finished epic after sign-off

    Use it when An epic looks finished and someone wants it archived with a sign-off trail.

    A person decidesArchive epic name, which still lists number of items stories.

    Effect
    write
    Steps
    5
    Needs
    epic public id
    Install
    shortcut-archive-completed-epic
  6. Move a label's stories onto an epic after approval

    Use it when A batch of labelled stories belongs under one epic and needs moving in one go.

    A person decidesMove number of items stories labelled name onto epic name.

    Effect
    write
    Steps
    5
    Needs
    label public id and epic public id
    Install
    shortcut-bulk-move-stories-to-epic
  7. Report progress on an objective and record its health

    Use it when A quarterly objective needs a written progress check backed by its epic detail.

    Effect
    write
    Steps
    5 · loops
    Needs
    objective public id and status
    Install
    shortcut-objective-progress-report
  8. Delete a label once nothing uses it

    Use it when A label looks obsolete and someone wants it removed safely rather than left to rot.

    A person decidesDelete label name, still on number of items stories and number of items epics.

    Effect
    destructive
    Steps
    5
    Needs
    label public id
    Install
    shortcut-retire-unused-label
install a plan
account { op: "plans.install", slug: "shortcut-epic-health-rollup" }
# then ask for it by name; a schedule can run it on a timetable

Governance for Shortcut

Destructive actions wait for a yes.

21 Shortcut actions are destructive. These are all of them:

  • Delete storyshortcut.stories.delete_story
  • Delete multiple storiesshortcut.stories_bulk.delete_multiple_stories
  • Delete story commentshortcut.story_comments.delete_story_comment
  • Delete projectshortcut.projects.delete_project
  • Delete epicshortcut.epics.delete_epic
  • Delete labelshortcut.labels.delete_label
  • Delete milestoneshortcut.milestones.delete_milestone
  • Delete fileshortcut.files.delete_file
  • Delete docshortcut.documents.delete_doc
  • Delete story linkshortcut.story_links.delete_story_link
  • Unlink document from epicshortcut.document_epics.unlink_document_from_epic
  • Delete objectiveshortcut.objectives.delete_objective
  • Delete iterationshortcut.iterations.delete_iteration
  • Delete story reactionshortcut.story_comment_reactions.delete_story_reaction
  • Delete entity templateshortcut.entity_templates.delete_entity_template
  • Delete linked fileshortcut.linked_files.delete_linked_file
  • Delete epic commentshortcut.epic_comments.delete_epic_comment
  • Delete generic integrationshortcut.integrations.delete_generic_integration
  • Delete taskshortcut.story_tasks.delete_task
  • Delete custom fieldshortcut.custom_fields.delete_custom_field
  • Delete categoryshortcut.categories.delete_category

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

doshortcut.stories.delete_storyconfirm_policy: human

Delete story?

intent: the user asked me to delete story

run suspended · waiting for a named person · key shortcut-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "shortcut-agent",  allowed_actions: ["shortcut.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "shortcut.stories.delete_story", approver: "[email protected]" },    { match: "shortcut.stories_bulk.delete_multiple_stories", approver: "[email protected]" },    { match: "shortcut.story_comments.delete_story_comment", approver: "[email protected]" }  ]}
Illustrative. Scoped to Shortcut only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Shortcut costs on actionlake.

Every Shortcut action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Shortcut refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 142 Shortcut actions
  • 142actions pageeach page of a long list is one call
  • 71reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Shortcut action.

142 actions by area: the id your agent calls, what it does, and its effect.

Epics8
  • shortcut.epics.create_epicCreate epicwrite
  • shortcut.epics.delete_epicDelete epicdestructive
  • shortcut.epics.get_epicGet epicread
  • shortcut.epics.list_epic_documentsList epic documentsread
  • shortcut.epics.list_epic_storiesList epic storiesread
  • shortcut.epics.list_epicsList epicsread
  • shortcut.epics.list_epics_paginatedList epics paginatedread
  • shortcut.epics.update_epicUpdate epicwrite
Iterations8
  • shortcut.iterations.create_iterationCreate iterationwrite
  • shortcut.iterations.delete_iterationDelete iterationdestructive
  • shortcut.iterations.disable_iterationsDisable iterationswrite
  • shortcut.iterations.enable_iterationsEnable iterationswrite
  • shortcut.iterations.get_iterationGet iterationread
  • shortcut.iterations.list_iteration_storiesList iteration storiesread
  • shortcut.iterations.list_iterationsList iterationsread
  • shortcut.iterations.update_iterationUpdate iterationwrite
Categories7
  • shortcut.categories.create_categoryCreate categorywrite
  • shortcut.categories.delete_categoryDelete categorydestructive
  • shortcut.categories.get_categoryGet categoryread
  • shortcut.categories.list_categoriesList categoriesread
  • shortcut.categories.list_category_milestonesList category milestonesread
  • shortcut.categories.list_category_objectivesList category objectivesread
  • shortcut.categories.update_categoryUpdate categorywrite
Entity templates7
  • shortcut.entity_templates.create_entity_templateCreate entity templatewrite
  • shortcut.entity_templates.delete_entity_templateDelete entity templatedestructive
  • shortcut.entity_templates.disable_story_templatesDisable story templateswrite
  • shortcut.entity_templates.enable_story_templatesEnable story templateswrite
  • shortcut.entity_templates.get_entity_templateGet entity templateread
  • shortcut.entity_templates.list_entity_templatesList entity templatesread
  • shortcut.entity_templates.update_entity_templateUpdate entity templatewrite
Labels7
  • shortcut.labels.create_labelCreate labelwrite
  • shortcut.labels.delete_labelDelete labeldestructive
  • shortcut.labels.get_labelGet labelread
  • shortcut.labels.list_label_epicsList label epicsread
  • shortcut.labels.list_label_storiesList label storiesread
  • shortcut.labels.list_labelsList labelsread
  • shortcut.labels.update_labelUpdate labelwrite
Search7
  • shortcut.search.searchSearchread
  • shortcut.search.search_documentsSearch documentsread
  • shortcut.search.search_epicsSearch epicsread
  • shortcut.search.search_iterationsSearch iterationsread
  • shortcut.search.search_milestonesSearch milestonesread
  • shortcut.search.search_objectivesSearch objectivesread
  • shortcut.search.search_storiesSearch storiesread
Epic comments6
  • shortcut.epic_comments.create_epic_commentCreate epic commentwrite
  • shortcut.epic_comments.create_epic_comment_commentCreate epic comment commentwrite
  • shortcut.epic_comments.delete_epic_commentDelete epic commentdestructive
  • shortcut.epic_comments.get_epic_commentGet epic commentread
  • shortcut.epic_comments.list_epic_commentsList epic commentsread
  • shortcut.epic_comments.update_epic_commentUpdate epic commentwrite
Milestones6
  • shortcut.milestones.create_milestoneCreate milestonewrite
  • shortcut.milestones.delete_milestoneDelete milestonedestructive
  • shortcut.milestones.get_milestoneGet milestoneread
  • shortcut.milestones.list_milestone_epicsList milestone epicsread
  • shortcut.milestones.list_milestonesList milestonesread
  • shortcut.milestones.update_milestoneUpdate milestonewrite
Objectives6
  • shortcut.objectives.create_objectiveCreate objectivewrite
  • shortcut.objectives.delete_objectiveDelete objectivedestructive
  • shortcut.objectives.get_objectiveGet objectiveread
  • shortcut.objectives.list_objective_epicsList objective epicsread
  • shortcut.objectives.list_objectivesList objectivesread
  • shortcut.objectives.update_objectiveUpdate objectivewrite
Projects6
  • shortcut.projects.create_projectCreate projectwrite
  • shortcut.projects.delete_projectDelete projectdestructive
  • shortcut.projects.get_projectGet projectread
  • shortcut.projects.list_projectsList projectsread
  • shortcut.projects.list_storiesList storiesread
  • shortcut.projects.update_projectUpdate projectwrite
Stories6
  • shortcut.stories.create_storyCreate storywrite
  • shortcut.stories.create_story_from_templateCreate story from templatewrite
  • shortcut.stories.delete_storyDelete storydestructive
  • shortcut.stories.get_storyGet storyread
  • shortcut.stories.query_storiesQuery storiesread
  • shortcut.stories.update_storyUpdate storywrite
Story comments6
  • shortcut.story_comments.create_story_commentCreate story commentwrite
  • shortcut.story_comments.delete_story_commentDelete story commentdestructive
  • shortcut.story_comments.get_story_commentGet story commentread
  • shortcut.story_comments.list_story_commentList story commentread
  • shortcut.story_comments.unlink_comment_thread_from_slackUnlink comment thread from slackwrite
  • shortcut.story_comments.update_story_commentUpdate story commentwrite
Documents5
  • shortcut.documents.create_docCreate docwrite
  • shortcut.documents.delete_docDelete docdestructive
  • shortcut.documents.get_docGet docread
  • shortcut.documents.list_docsList docsread
  • shortcut.documents.update_docUpdate docwrite
Groups5
  • shortcut.groups.create_groupCreate groupwrite
  • shortcut.groups.get_groupGet groupread
  • shortcut.groups.list_group_storiesList group storiesread
  • shortcut.groups.list_groupsList groupsread
  • shortcut.groups.update_groupUpdate groupwrite
Linked files5
  • shortcut.linked_files.create_linked_fileCreate linked filewrite
  • shortcut.linked_files.delete_linked_fileDelete linked filedestructive
  • shortcut.linked_files.get_linked_fileGet linked fileread
  • shortcut.linked_files.list_linked_filesList linked filesread
  • shortcut.linked_files.update_linked_fileUpdate linked filewrite
Custom fields4
  • shortcut.custom_fields.delete_custom_fieldDelete custom fielddestructive
  • shortcut.custom_fields.get_custom_fieldGet custom fieldread
  • shortcut.custom_fields.list_custom_fieldsList custom fieldsread
  • shortcut.custom_fields.update_custom_fieldUpdate custom fieldwrite
Files4
  • shortcut.files.delete_fileDelete filedestructive
  • shortcut.files.get_fileGet fileread
  • shortcut.files.list_filesList filesread
  • shortcut.files.update_fileUpdate filewrite
Story links4
  • shortcut.story_links.create_story_linkCreate story linkwrite
  • shortcut.story_links.delete_story_linkDelete story linkdestructive
  • shortcut.story_links.get_story_linkGet story linkread
  • shortcut.story_links.update_story_linkUpdate story linkwrite
Story tasks4
  • shortcut.story_tasks.create_taskCreate taskwrite
  • shortcut.story_tasks.delete_taskDelete taskdestructive
  • shortcut.story_tasks.get_taskGet taskread
  • shortcut.story_tasks.update_taskUpdate taskwrite
Document epics3
  • shortcut.document_epics.link_document_to_epicLink document to epicwrite
  • shortcut.document_epics.list_document_epicsList document epicsread
  • shortcut.document_epics.unlink_document_from_epicUnlink document from epicdestructive
Epic health3
  • shortcut.epic_health.create_epic_healthCreate epic healthwrite
  • shortcut.epic_health.get_epic_healthGet epic healthread
  • shortcut.epic_health.list_epic_healthsList epic healthsread
Integrations3
  • shortcut.integrations.create_generic_integrationCreate generic integrationwrite
  • shortcut.integrations.delete_generic_integrationDelete generic integrationdestructive
  • shortcut.integrations.get_generic_integrationGet generic integrationread
Members3
  • shortcut.members.get_current_member_infoGet current member inforead
  • shortcut.members.get_memberGet memberread
  • shortcut.members.list_membersList membersread
Objective health3
  • shortcut.objective_health.create_objective_healthCreate objective healthwrite
  • shortcut.objective_health.get_objective_healthGet objective healthread
  • shortcut.objective_health.list_objective_healthsList objective healthsread
Stories bulk3
  • shortcut.stories_bulk.create_multiple_storiesCreate multiple storieswrite
  • shortcut.stories_bulk.delete_multiple_storiesDelete multiple storiesdestructive
  • shortcut.stories_bulk.update_multiple_storiesUpdate multiple storieswrite
Key results2
  • shortcut.key_results.get_key_resultGet key resultread
  • shortcut.key_results.update_key_resultUpdate key resultwrite
Repositories2
  • shortcut.repositories.get_repositoryGet repositoryread
  • shortcut.repositories.list_repositoriesList repositoriesread
Story comment reactions2
  • shortcut.story_comment_reactions.create_story_reactionCreate story reactionwrite
  • shortcut.story_comment_reactions.delete_story_reactionDelete story reactiondestructive
Workflows2
  • shortcut.workflows.get_workflowGet workflowread
  • shortcut.workflows.list_workflowsList workflowsread
Epic workflow1
  • shortcut.epic_workflow.get_epic_workflowGet epic workflowread
External links1
  • shortcut.external_links.get_external_link_storiesGet external link storiesread
Health1
  • shortcut.health.update_healthUpdate healthwrite
Story history1
  • shortcut.story_history.story_historyStory historyread
Story sub tasks1
  • shortcut.story_sub_tasks.list_story_sub_tasksList story sub tasksread

Questions

The Shortcut MCP server, answered.

Is there a Shortcut MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 142 Shortcut actions across epics, iterations, categories and entity templates, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Shortcut.

What do I need to connect Shortcut?

Shortcut API token. The free call account { op: "connections.requirements", service: "shortcut" } lists exactly what to paste.

Can an AI agent delete or change things in Shortcut?

Only if its key allows it, and only with an explicit confirmation. 21 Shortcut actions are destructive, including delete story, delete multiple stories and delete story comment. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my Shortcut API limit?

actionlake paces every call to the limits in the Shortcut service file: 200 calls a minute per connection. Repeated reads are answered from cache (71 Shortcut actions can be), which never reaches Shortcut.

What does a Shortcut action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (142 Shortcut actions page). Cache hits, searches, dry runs and calls Shortcut refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which Shortcut API does it cover?

The Shortcut API v3 at api.app.shortcut.com. It is built from Shortcut's documentation as read on 19 September 2026. 142 actions in 34 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my Shortcut data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Shortcut credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent Shortcut today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.