# Shortcut — how to use (mcp.ai)

Connect your Shortcut account and use 142 tools for project management straight from your AI agent. Connect with your own API key. Shortcut aligns product development work with company objectives so teams can execute with a shared purpose.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_shortcut?ms=1787293500000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `shortcut_create_category`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/shortcut`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/shortcut/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/shortcut/create/category` — Create Category allows you to create a new Category in Shortcut.
  - body: { name: string, color?: string, external_id?: string }
- `POST https://api.mcp.ai/api/shortcut/create/doc` — Create Doc allows you to create a new document in Shortcut. Use when you need to create documentation, notes, or any written content. Supports markdown or HTML input.
  - body: { title: string, content: string, content_format?: string }
- `POST https://api.mcp.ai/api/shortcut/create/entity/template` — Create a new entity template for the Workspace.
  - body: { name: string, author_id?: string, story__contents__name?: string, story__contents__tasks?: object[], story__contents__labels?: object[], story__contents__deadline?: string, story__contents__epic__id?: integer, story__contents__estimate?: integer, story__contents__file__ids?: integer[], story__contents__group__id?: string, story__contents__owner__ids?: string[], story__contents__description?: string, story__contents__project__id?: integer, story__contents__story__type?: string, story__contents__follower__ids?: string[], story__contents__iteration__id?: integer, story__contents__custom__fields?: object[], story__contents__external__links?: string[], story__contents__linked__file__ids?: integer[], story__contents__workflow__state__id?: integer }
- `POST https://api.mcp.ai/api/shortcut/create/epic` — Create Epic allows you to create a new Epic in Shortcut.
  - body: { name: string, state?: string, labels?: object[], deadline?: string, group_id?: string, group_ids?: string[], owner_ids?: string[], created_at?: string, updated_at?: string, description?: string, external_id?: string, follower_ids?: string[], milestone_id?: integer, epic_state_id?: integer, objective_ids?: integer[], requested_by_id?: string, planned_start_date?: string, started_at_override?: string, completed_at_override?: string }
- `POST https://api.mcp.ai/api/shortcut/create/epic/comment` — This endpoint allows you to create a threaded Comment on an Epic.
  - body: { text: string, author_id?: string, created_at?: string, updated_at?: string, external_id?: string, epic__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/create/epic/comment/comment` — This endpoint allows you to create a nested Comment reply to an existing Epic Comment.
  - body: { text: string, author_id?: string, created_at?: string, updated_at?: string, external_id?: string, epic__public__id: integer, comment__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/create/epic/health` — Create a new health status for the specified Epic. Use when you need to set or update the health tracking status of an Epic.
  - body: { text?: string, status: string, epic__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/create/generic/integration` — Tool to create a generic webhook integration in Shortcut. Use when you need to set up a webhook endpoint to receive Shortcut events.
  - body: { secret?: string, webhook_url: string }
- `POST https://api.mcp.ai/api/shortcut/create/group` — Creates a new group in the Shortcut system with customizable properties. This endpoint allows you to set up a group with a unique mention name, display name, optional description, and various customiz
  - body: { name: string, color?: string, color_key?: string, member_ids?: string[], description?: string, mention_name: string, workflow_ids: integer[], display_icon_id?: string }
- `POST https://api.mcp.ai/api/shortcut/create/iteration` — The CreateIteration endpoint allows you to create a new Iteration in Shortcut, which represents a time-boxed period for completing a set of stories or tasks. This endpoint is crucial for teams using A
  - body: { name: string, labels?: object[], end_date: string, group_ids?: string[], start_date: string, description?: string, follower_ids?: string[] }
- `POST https://api.mcp.ai/api/shortcut/create/label` — Create Label allows you to create a new Label in Shortcut.
  - body: { name: string, color?: string, description?: string, external_id?: string }
- `POST https://api.mcp.ai/api/shortcut/create/linked/file` — Create Linked File allows you to create a new Linked File in Shortcut.
  - body: { url: string, name: string, size?: integer, type: string, story_id?: integer, description?: string, uploader_id?: string, content_type?: string, thumbnail_url?: string }
- `POST https://api.mcp.ai/api/shortcut/create/milestone` — (Deprecated: Use 'Create Objective') Create Milestone allows you to create a new Milestone in Shortcut.
  - body: { name: string, state?: string, categories?: object[], description?: string, started_at_override?: string, completed_at_override?: string }
- `POST https://api.mcp.ai/api/shortcut/create/multiple/stories` — Create Multiple Stories allows you to create multiple stories in a single request using the same syntax as [Create Story](https://developer.shortcut.com/api/rest/v3#create-story).
  - body: { stories: object[] }
- `POST https://api.mcp.ai/api/shortcut/create/objective` — Create Objective allows you to create a new Objective in Shortcut.
  - body: { name: string, state?: string, categories?: object[], description?: string, started_at_override?: string, completed_at_override?: string }
- `POST https://api.mcp.ai/api/shortcut/create/project` — Create Project is used to create a new Shortcut Project.
  - body: { name: string, color?: string, team_id: integer, created_at?: string, start_time?: string, updated_at?: string, description?: string, external_id?: string, abbreviation?: string, follower_ids?: string[], iteration_length?: integer }
- `POST https://api.mcp.ai/api/shortcut/create/story` — Create Story is used to add a new story to your Shortcut Workspace. This endpoint requires that either **workflow_state_id** or **project_id** be provided, but will reject the request if both or neith
  - body: { name: string, tasks?: object[], labels?: object[], epic_id?: integer, move_to?: string, archived?: boolean, comments?: object[], deadline?: string, estimate?: integer, file_ids?: integer[], group_id?: string, owner_ids?: string[], sub_tasks?: object[], created_at?: string, project_id?: integer, story_type?: string, updated_at?: string, description?: string, external_id?: string, story_links?: object[], follower_ids?: string[], iteration_id?: integer, custom_fields?: object[], external_links?: string[], source_task_id?: integer, linked_file_ids?: integer[], requested_by_id?: string, story_template_id?: string, workflow_state_id?: integer, started_at_override?: string, completed_at_override?: string }
- `POST https://api.mcp.ai/api/shortcut/create/story/comment` — Create Comment allows you to create a Comment on any Story.
  - body: { text: string, author_id?: string, parent_id?: integer, created_at?: string, updated_at?: string, external_id?: string, story__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/create/story/from/template` — Create Story From Template is used to add a new story derived from a template to your Shortcut Workspace.
  - body: { name?: string, tasks?: object[], labels?: object[], epic_id?: integer, move_to?: string, archived?: boolean, comments?: object[], deadline?: string, estimate?: integer, file_ids?: integer[], group_id?: string, owner_ids?: string[], sub_tasks?: object[], created_at?: string, labels_add?: object[], project_id?: integer, story_type?: string, updated_at?: string, description?: string, external_id?: string, story_links?: object[], file_ids_add?: integer[], follower_ids?: string[], iteration_id?: integer, custom_fields?: object[], labels_remove?: object[], owner_ids_add?: string[], external_links?: string[], source_task_id?: integer, file_ids_remove?: integer[], linked_file_ids?: integer[], requested_by_id?: string, follower_ids_add?: string[], owner_ids_remove?: string[], custom_fields_add?: object[], story_template_id: string, workflow_state_id?: integer, external_links_add?: string[], follower_ids_remove?: string[], linked_file_ids_add?: integer[], started_at_override?: string, custom_fields_remove?: object[], completed_at_override?: string, external_links_remove?: string[], linked_file_ids_remove?: integer[] }
- `POST https://api.mcp.ai/api/shortcut/create/story/link` — Story Links (called Story Relationships in the UI) allow you create semantic relationships between two stories. The parameters read like an active voice grammatical sentence: subject -> verb -> object
  - body: { verb: string, object_id: integer, subject_id: integer }
- `POST https://api.mcp.ai/api/shortcut/create/story/reaction` — Create a reaction to a story comment.
  - body: { emoji: string, story__public__id: integer, comment__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/create/task` — Create Task is used to create a new task in a Story.
  - body: { complete?: boolean, owner_ids?: string[], created_at?: string, updated_at?: string, description: string, external_id?: string, story__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/category` — Delete Category can be used to delete any Category.
  - body: { category__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/custom/field` — Deletes a specific custom field from the Shortcut system using its unique public identifier. This endpoint should be used when you need to permanently remove a custom field that is no longer required 
  - body: { custom__field__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/delete/doc` — Permanently deletes a Doc and its associated data from Shortcut. Requires admin access to the document. When a document is deleted, connected clients will be notified via Server-Sent Events (SSE). Use
  - body: { doc__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/delete/entity/template` — Deletes a specific entity template from the Shortcut API. This endpoint should be used when you need to permanently remove a template that is no longer needed or is obsolete. It's important to note th
  - body: { entity__template__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/delete/epic` — Delete Epic can be used to delete the Epic. The only required parameter is Epic ID.
  - body: { epic__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/epic/comment` — This endpoint allows you to delete a Comment from an Epic.
  - body: { epic__public__id: integer, comment__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/file` — Delete File deletes a previously uploaded file.
  - body: { file__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/generic/integration` — Tool to delete a generic webhook integration from Shortcut. Use when you need to permanently remove a webhook integration that is no longer needed.
  - body: { integration__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/iteration` — Deletes a specific iteration from the Shortcut project management system. This endpoint should be used when you need to permanently remove an iteration and all its associated data from your project wo
  - body: { iteration__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/label` — Delete Label can be used to delete any Label.
  - body: { label__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/linked/file` — Delete Linked File can be used to delete any previously attached Linked-File.
  - body: { linked__file__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/milestone` — (Deprecated: Use 'Delete Objective') Delete Milestone can be used to delete any Milestone.
  - body: { milestone__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/multiple/stories` — Delete Multiple Stories allows you to delete multiple archived stories at once.
  - body: { story_ids: integer[] }
- `POST https://api.mcp.ai/api/shortcut/delete/objective` — Delete Objective can be used to delete any Objective.
  - body: { objective__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/project` — Delete Project can be used to delete a Project. Projects can only be deleted if all associated Stories are moved or deleted. In the case that the Project cannot be deleted, you will receive a 422 resp
  - body: { project__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/story` — Delete Story can be used to delete any Story.
  - body: { story__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/story/comment` — Delete a Comment from any story.
  - body: { story__public__id: integer, comment__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/story/link` — Removes the relationship between the stories for the given Story Link.
  - body: { story__link__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/story/reaction` — Delete a reaction from any story comment.
  - body: { emoji: string, story__public__id: integer, comment__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/delete/task` — Delete Task can be used to delete any previously created Task on a Story.
  - body: { task__public__id: integer, story__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/disable/iterations` — Disables Iterations for the current workspace
- `POST https://api.mcp.ai/api/shortcut/disable/story/templates` — Disables the Story Template feature for the Workspace.
- `POST https://api.mcp.ai/api/shortcut/enable/iterations` — Enables Iterations for the current workspace
- `POST https://api.mcp.ai/api/shortcut/enable/story/templates` — Enables the Story Template feature for the Workspace.
- `POST https://api.mcp.ai/api/shortcut/get/category` — Get Category returns information about the selected Category.
  - body: { category__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/current/member/info` — Returns information about the authenticated member.
- `POST https://api.mcp.ai/api/shortcut/get/custom/field` — Retrieves detailed information about a specific custom field in Shortcut using its unique public identifier. This endpoint allows developers to fetch the properties and configuration of a custom field
  - body: { custom__field__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/get/doc` — Get Doc returns information about a chosen Doc by its public ID. Use content_format=html to include HTML content in the response.
  - body: { content__format?: string, doc__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/get/entity/template` — Get Entity Template returns information about a given entity template.
  - body: { entity__template__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/get/epic` — Get Epic returns information about the selected Epic.
  - body: { epic__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/epic/comment` — This endpoint returns information about the selected Epic Comment.
  - body: { epic__public__id: integer, comment__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/epic/health` — Get the current health status for the specified Epic. Use when you need to check the health status of an Epic.
  - body: { epic__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/epic/workflow` — Returns the Epic Workflow for the Workspace.
- `POST https://api.mcp.ai/api/shortcut/get/external/link/stories` — Get Stories which have a given External Link associated with them.
  - body: { external_link: string }
- `POST https://api.mcp.ai/api/shortcut/get/file` — Get File returns information about the selected UploadedFile.
  - body: { file__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/generic/integration` — Get Generic Integration returns information about a webhook integration by its ID. Use when you need to retrieve details about a specific webhook integration.
  - body: { integration__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/group` — Retrieves detailed information about a specific group in the Shortcut workspace using its unique public identifier. This endpoint allows developers to fetch comprehensive data about a group, including
  - body: { group__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/get/iteration` — Retrieves detailed information about a specific iteration in the Shortcut project management system. This endpoint allows users to fetch comprehensive data about a single iteration, including its name
  - body: { iteration__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/key/result` — Get Key Result returns information about a chosen Key Result.
  - body: { key__result__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/get/label` — Get Label returns information about the selected Label.
  - body: { label__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/linked/file` — Get File returns information about the selected Linked File.
  - body: { linked__file__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/member` — Returns information about a Member.
  - body: { org__public__id?: string, member__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/get/milestone` — (Deprecated: Use 'Get Objective') Get Milestone returns information about a chosen Milestone.
  - body: { milestone__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/objective` — Get Objective returns information about a chosen Objective.
  - body: { objective__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/project` — Get Project returns information about the selected Project.
  - body: { project__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/repository` — Get Repository returns information about the selected Repository.
  - body: { repo__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/story` — Get Story returns information about a chosen Story.
  - body: { story__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/story/comment` — Get Comment is used to get Comment information.
  - body: { story__public__id: integer, comment__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/story/link` — Returns the stories and their relationship for the given Story Link.
  - body: { story__link__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/task` — Returns information about a chosen Task.
  - body: { task__public__id: integer, story__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/get/workflow` — Get Workflow returns information about a chosen Workflow.
  - body: { workflow__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/link/document/to/epic` — Tool to create a relationship between a Document and an Epic. Use when you need to link or associate documentation with an epic.
  - body: { doc__public__id: string, epic__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/list/categories` — List Categories returns a list of all Categories and their attributes.
- `POST https://api.mcp.ai/api/shortcut/list/category/milestones` — List Category Milestones returns a list of all Milestones with the Category.
  - body: { category__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/list/category/objectives` — Returns a list of all Objectives with the Category.
  - body: { category__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/list/custom/fields` — Retrieves a list of all custom fields defined in the Shortcut API. This endpoint allows developers to fetch information about user-defined fields that have been added to extend the functionality of st
- `POST https://api.mcp.ai/api/shortcut/list/docs` — Tool to list Docs that the current user can read. Use when you need to retrieve all accessible documentation in the Shortcut workspace.
- `POST https://api.mcp.ai/api/shortcut/list/document/epics` — Tool to retrieve all Epics related to a specific Document. Use when you need to understand which Epics are associated with a given document in Shortcut.
  - body: { doc__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/list/entity/templates` — List all the entity templates for the Workspace.
- `POST https://api.mcp.ai/api/shortcut/list/epic/comments` — Get a list of all Comments on an Epic.
  - body: { epic__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/list/epic/documents` — Get a list of all Documents related to this Epic.
  - body: { epic__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/list/epic/healths` — List the history of health statuses for the specified Epic, most recent first. Use when you need to track health status changes over time.
  - body: { epic__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/list/epic/stories` — Get a list of all Stories in an Epic.
  - body: { epic__public__id: integer, includes_description?: boolean }
- `POST https://api.mcp.ai/api/shortcut/list/epics` — List Epics returns a list of all Epics and their attributes.
  - body: { includes_description?: boolean }
- `POST https://api.mcp.ai/api/shortcut/list/epics/paginated` — List Epics with pagination returns a paginated list of Epics and their attributes. Use when you need to retrieve Epics in manageable pages rather than all at once.
  - body: { page?: integer, page_size?: integer, includes_description?: boolean }
- `POST https://api.mcp.ai/api/shortcut/list/files` — List Files returns a list of all UploadedFiles in the workspace.
- `POST https://api.mcp.ai/api/shortcut/list/group/stories` — List the Stories assigned to the Group. (By default, limited to 1,000).
  - body: { limit?: integer, offset?: integer, group__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/list/groups` — A group in our API maps to a "Team" within the Shortcut Product. A Team is a collection of Users that can be associated to Stories, Epics, and Iterations within Shortcut.
- `POST https://api.mcp.ai/api/shortcut/list/iteration/stories` — Get a list of all Stories in an Iteration.
  - body: { includes_description?: boolean, iteration__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/list/iterations` — Retrieves a list of all iterations in the Shortcut project management system. Iterations represent specific time periods for planning and tracking work, allowing teams to organize their development cy
- `POST https://api.mcp.ai/api/shortcut/list/label/epics` — List all of the Epics with the Label.
  - body: { label__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/list/label/stories` — List all of the Stories with the Label.
  - body: { label__public__id: integer, includes_description?: boolean }
- `POST https://api.mcp.ai/api/shortcut/list/labels` — List Labels returns a list of all Labels and their attributes.
  - body: { slim?: boolean }
- `POST https://api.mcp.ai/api/shortcut/list/linked/files` — List Linked Files returns a list of all Linked-Files and their attributes.
- `POST https://api.mcp.ai/api/shortcut/list/members` — Returns information about members of the Workspace.
  - body: { org__public__id?: string }
- `POST https://api.mcp.ai/api/shortcut/list/members/slim` — Returns minimal member data optimized for Korey integration. Use this when you need basic member information without full profile details. Returns all workspace members with disabled status indicated 
- `POST https://api.mcp.ai/api/shortcut/list/milestone/epics` — (Deprecated: Use 'List Objective Epics') List all of the Epics within the Milestone.
  - body: { milestone__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/list/milestones` — (Deprecated: Use 'List Objectives') List Milestones returns a list of all Milestones and their attributes.
- `POST https://api.mcp.ai/api/shortcut/list/objective/epics` — List all of the Epics within the Objective.
  - body: { objective__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/list/objectives` — List Objectives returns a list of all Objectives and their attributes.
- `POST https://api.mcp.ai/api/shortcut/list/projects` — List Projects returns a list of all Projects and their attributes.
- `POST https://api.mcp.ai/api/shortcut/list/repositories` — List Repositories returns a list of all Repositories and their attributes.
- `POST https://api.mcp.ai/api/shortcut/list/stories` — List Stories returns a list of all Stories in a selected Project and their attributes.
  - body: { project__public__id: integer, includes_description?: boolean }
- `POST https://api.mcp.ai/api/shortcut/list/story/comment` — Lists Comments associated with a Story
  - body: { story__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/list/story/sub/tasks` — Tool to list all Sub-task Stories for a given parent Story. Use when you need to retrieve all sub-tasks associated with a specific story.
  - body: { story__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/list/workflows` — Returns a list of all Workflows in the Workspace.
- `POST https://api.mcp.ai/api/shortcut/search` — Search lets you search Epics and Stories based on desired parameters. Since ordering of the results can change over time (due to search ranking decay, new Epics and Stories being created), the `next` 
  - body: { next?: string, query: string, detail?: string, page_size?: integer, entity_types?: string[] }
- `POST https://api.mcp.ai/api/shortcut/search/documents` — Tool to search Documents based on title and filters. Use when you need to find specific documents by fuzzy title matching or filter by archived/created_by_me/followed_by_me status.
  - body: { next?: string, title: string, archived?: boolean, page_size?: integer, created_by_me?: boolean, followed_by_me?: boolean }
- `POST https://api.mcp.ai/api/shortcut/search/epics` — Search Epics lets you search Epics based on desired parameters. Since ordering of stories can change over time (due to search ranking decay, new Epics being created), the `next` value from the previou
  - body: { next?: string, query: string, detail?: string, page_size?: integer, entity_types?: string[] }
- `POST https://api.mcp.ai/api/shortcut/search/iterations` — Search Iterations lets you search Iterations based on desired parameters. Since ordering of results can change over time (due to search ranking decay, new Iterations being created), the `next` value f
  - body: { next?: string, query: string, detail?: string, page_size?: integer, entity_types?: string[] }
- `POST https://api.mcp.ai/api/shortcut/search/milestones` — Search Milestones lets you search Milestones based on desired parameters. Since ordering of results can change over time (due to search ranking decay, new Milestones being created), the `next` value f
  - body: { next?: string, query: string, detail?: string, page_size?: integer, entity_types?: string[] }
- `POST https://api.mcp.ai/api/shortcut/search/objectives` — Search Objectives lets you search Objectives based on desired parameters. Since ordering of results can change over time (due to search ranking decay, new Objectives being created), the `next` value f
  - body: { next?: string, query: string, detail?: string, page_size?: integer, entity_types?: string[] }
- `POST https://api.mcp.ai/api/shortcut/search/stories` — Search Stories lets you search Stories based on desired parameters. Since ordering of stories can change over time (due to search ranking decay, new stories being created), the `next` value from the p
  - body: { next?: string, query: string, detail?: string, page_size?: integer, entity_types?: string[] }
- `POST https://api.mcp.ai/api/shortcut/search/stories/old` — Search Stories lets you search Stories based on desired parameters.
  - body: { epic_id?: integer, archived?: boolean, epic_ids?: integer[], estimate?: integer, group_id?: string, owner_id?: string, group_ids?: string[], label_ids?: integer[], owner_ids?: string[], label_name?: string, project_id?: integer, story_type?: string, external_id?: string, project_ids?: integer[], deadline_end?: string, iteration_id?: integer, iteration_ids?: integer[], created_at_end?: string, deadline_start?: string, updated_at_end?: string, requested_by_id?: string, completed_at_end?: string, created_at_start?: string, updated_at_start?: string, workflow_state_id?: integer, completed_at_start?: string, includes_description?: boolean, workflow_state_types?: string[] }
- `POST https://api.mcp.ai/api/shortcut/story/history` — Retrieves the complete history of changes for a specific story in the Shortcut project management system. This endpoint allows users to track all modifications, updates, and revisions made to a story 
  - body: { story__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/unlink/comment/thread/from/slack` — Unlinks a Comment from its linked Slack thread (Comment replies and Slack replies will no longer be synced)
  - body: { story__public__id: integer, comment__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/unlink/document/from/epic` — Tool to remove the relationship between a Document and an Epic. Use when you need to unlink a previously associated document from an epic.
  - body: { doc__public__id: string, epic__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/unlink/productboard/from/epic` — This endpoint allows you to unlink a productboard epic.
  - body: { epic__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/update/category` — Update Category allows you to replace a Category name with another name. If you try to name a Category something that already exists, you will receive a 422 response.
  - body: { name?: string, color?: string, archived?: boolean, category__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/update/custom/field` — Update Custom Field can be used to update the definition of a Custom Field. The order of items in the 'values' collection is interpreted to be their ascending sort order.To delete an existing enum val
  - body: { name?: string, values?: object[], enabled?: boolean, after_id?: string, before_id?: string, description?: string, icon_set_identifier?: string, custom__field__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/update/doc` — Tool to update an existing Doc's title and/or content. Use when you need to modify document properties. Supports markdown or HTML input via content_format parameter. SSE events notify connected users 
  - body: { title?: string, content?: string, content_format?: string, doc__public__id: string }
- `POST https://api.mcp.ai/api/shortcut/update/entity/template` — Update an entity template's name or its contents.
  - body: { name?: string, story__contents__name?: string, story__contents__tasks?: object[], story__contents__labels?: object[], story__contents__deadline?: string, story__contents__epic__id?: integer, story__contents__estimate?: integer, story__contents__file__ids?: integer[], story__contents__group__id?: string, story__contents__owner__ids?: string[], entity__template__public__id: string, story__contents__description?: string, story__contents__project__id?: integer, story__contents__story__type?: string, story__contents__follower__ids?: string[], story__contents__iteration__id?: integer, story__contents__custom__fields?: object[], story__contents__external__links?: string[], story__contents__linked__file__ids?: integer[], story__contents__workflow__state__id?: integer }
- `POST https://api.mcp.ai/api/shortcut/update/epic` — Update Epic can be used to update numerous fields in the Epic. The only required parameter is Epic ID, which can be found in the Shortcut UI.
  - body: { name?: string, state?: string, labels?: object[], after_id?: integer, archived?: boolean, deadline?: string, group_id?: string, before_id?: integer, group_ids?: string[], owner_ids?: string[], description?: string, external_id?: string, follower_ids?: string[], milestone_id?: integer, epic_state_id?: integer, objective_ids?: integer[], requested_by_id?: string, epic__public__id: integer, planned_start_date?: string, started_at_override?: string, completed_at_override?: string }
- `POST https://api.mcp.ai/api/shortcut/update/epic/comment` — This endpoint allows you to update a threaded Comment on an Epic.
  - body: { text: string, epic__public__id: integer, comment__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/update/file` — Update File updates the properties of an UploadedFile (but not its content).
  - body: { name?: string, created_at?: string, updated_at?: string, description?: string, external_id?: string, uploader_id?: string, file__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/update/group` — Updates an existing group in the Shortcut workspace. This endpoint allows you to modify various properties of a group, including its name, description, color, members, and associated workflows. Use th
  - body: { name?: string, color?: string, archived?: boolean, color_key?: string, member_ids?: string[], description?: string, mention_name?: string, workflow_ids?: integer[], display_icon_id?: string, group__public__id: string, default_workflow_id?: integer }
- `POST https://api.mcp.ai/api/shortcut/update/health` — Update an existing health status by its ID. Use when you need to modify the health tracking status of an Epic or Objective.
  - body: { text?: string, status?: string, health_public_id: string }
- `POST https://api.mcp.ai/api/shortcut/update/iteration` — This endpoint allows you to update an existing iteration in Shortcut. It provides comprehensive control over various aspects of an iteration, including its metadata, associated members and groups, lab
  - body: { name?: string, labels?: object[], end_date?: string, group_ids?: string[], start_date?: string, description?: string, follower_ids?: string[], iteration__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/update/key/result` — Update Key Result allows updating a Key Result's name or initial, observed, or target values.
  - body: { name?: string, key__result__public__id: string, target__value__boolean__value?: boolean, target__value__numeric__value?: string, observed__value__boolean__value?: boolean, observed__value__numeric__value?: string, initial__observed__value__boolean__value?: boolean, initial__observed__value__numeric__value?: string }
- `POST https://api.mcp.ai/api/shortcut/update/label` — Update Label allows you to replace a Label name with another name. If you try to name a Label something that already exists, you will receive a 422 response.
  - body: { name?: string, color?: string, archived?: boolean, description?: string, label__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/update/linked/file` — Updated Linked File allows you to update properties of a previously attached Linked-File.
  - body: { url?: string, name?: string, size?: integer, type?: string, story_id?: integer, description?: string, uploader_id?: string, thumbnail_url?: string, linked__file__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/update/milestone` — (Deprecated: Use 'Update Objective') Update Milestone can be used to update Milestone properties.
  - body: { name?: string, state?: string, after_id?: integer, archived?: boolean, before_id?: integer, categories?: object[], description?: string, started_at_override?: string, completed_at_override?: string, milestone__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/update/multiple/stories` — Update Multiple Stories allows you to make changes to numerous stories at once.
  - body: { epic_id?: integer, move_to?: string, after_id?: integer, archived?: boolean, deadline?: string, estimate?: integer, group_id?: string, before_id?: integer, story_ids: integer[], labels_add?: object[], project_id?: integer, story_type?: string, iteration_id?: integer, labels_remove?: object[], owner_ids_add?: string[], external_links?: string[], requested_by_id?: string, follower_ids_add?: string[], owner_ids_remove?: string[], custom_fields_add?: object[], workflow_state_id?: integer, follower_ids_remove?: string[], custom_fields_remove?: object[] }
- `POST https://api.mcp.ai/api/shortcut/update/objective` — Update Objective can be used to update Objective properties.
  - body: { name?: string, state?: string, after_id?: integer, archived?: boolean, before_id?: integer, categories?: object[], description?: string, started_at_override?: string, completed_at_override?: string, objective__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/update/project` — Update Project can be used to change properties of a Project.
  - body: { name?: string, color?: string, team_id?: integer, archived?: boolean, description?: string, abbreviation?: string, follower_ids?: string[], show_thermometer?: boolean, days_to_thermometer?: integer, project__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/update/story` — Update Story can be used to update Story properties.
  - body: { name?: string, labels?: object[], epic_id?: integer, move_to?: string, after_id?: integer, archived?: boolean, deadline?: string, estimate?: integer, file_ids?: integer[], group_id?: string, before_id?: integer, owner_ids?: string[], branch_ids?: integer[], commit_ids?: integer[], project_id?: integer, story_type?: string, description?: string, follower_ids?: string[], iteration_id?: integer, custom_fields?: object[], external_links?: string[], linked_file_ids?: integer[], requested_by_id?: string, pull_request_ids?: integer[], story__public__id: integer, workflow_state_id?: integer, started_at_override?: string, completed_at_override?: string }
- `POST https://api.mcp.ai/api/shortcut/update/story/comment` — Update Comment replaces the text of the existing Comment.
  - body: { text: string, story__public__id: integer, comment__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/update/story/link` — Updates the stories and/or the relationship for the given Story Link.
  - body: { verb?: string, object_id?: integer, subject_id?: integer, story__link__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/update/task` — Update Task can be used to update Task properties.
  - body: { after_id?: integer, complete?: boolean, before_id?: integer, owner_ids?: string[], description?: string, task__public__id: integer, story__public__id: integer }
- `POST https://api.mcp.ai/api/shortcut/upload/files` — Upload Files uploads one or many files and optionally associates them with a story. Use the multipart/form-data content-type to upload. Each `file` key should contain a separate file. Each UploadedFil
  - body: { file0?: object, file1?: object, file2?: object, file3?: object, story_id?: integer }

## Example prompts
- "What can I do in Shortcut?"
- "Show me a summary of my Shortcut account"

## More
- Page: https://mcp.ai/shortcut
- Agent spec (llms.txt): https://mcp.ai/shortcut/llms.txt
- Postman collection: https://mcp.ai/shortcut/postman.json
