# Shortcut

```json
{
  "name": "Shortcut",
  "slug": "shortcut",
  "url": "https://composio.dev/toolkits/shortcut",
  "markdown_url": "https://composio.dev/toolkits/shortcut.md",
  "logo_url": "https://logos.composio.dev/api/shortcut",
  "categories": [
    "productivity & project management"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-05-12T10:25:59.854Z"
}
```

![Shortcut logo](https://logos.composio.dev/api/shortcut)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Shortcut MCP or direct API to create stories, update tasks, fetch project status, and automate team workflows through natural language.

## Summary

Shortcut is a project management platform that aligns product development work with company objectives. It helps teams collaborate, track progress, and deliver on shared goals more efficiently.

## Categories

- productivity & project management

## Toolkit Details

- Tools: 136

## Images

- Logo: https://logos.composio.dev/api/shortcut

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for Shortcut.
  - Setup:
    - Configure Api Key credentials for Shortcut.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Create a new epic for Q3 goals
- Add a threaded comment to our launch epic
- Start a new iteration for next sprint
- Make a group for the mobile team

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `SHORTCUT_CREATE_CATEGORY` | Create category | Create Category allows you to create a new Category in Shortcut. |
| `SHORTCUT_CREATE_DOC` | 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. |
| `SHORTCUT_CREATE_ENTITY_TEMPLATE` | Create entity template | Create a new entity template for the Workspace. |
| `SHORTCUT_CREATE_EPIC` | Create epic | Create Epic allows you to create a new Epic in Shortcut. |
| `SHORTCUT_CREATE_EPIC_COMMENT` | Create epic comment | This endpoint allows you to create a threaded Comment on an Epic. |
| `SHORTCUT_CREATE_EPIC_COMMENT_COMMENT` | Create epic comment comment | This endpoint allows you to create a nested Comment reply to an existing Epic Comment. |
| `SHORTCUT_CREATE_EPIC_HEALTH` | 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. |
| `SHORTCUT_CREATE_GENERIC_INTEGRATION` | 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. |
| `SHORTCUT_CREATE_GROUP` | 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 customization options. Use this when you need to establish a new team, department, or any other collective within your Shortcut workspace. The created group can include members, associated workflows, and visual customizations like color and icon. This endpoint is particularly useful for organizing your Shortcut workspace structure, facilitating team collaboration, and streamlining workflow management. Note that while member and workflow associations can be set during creation, they can also be modified later using separate endpoints. |
| `SHORTCUT_CREATE_ITERATION` | 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 Agile methodologies, enabling them to plan and track progress over specific time periods. Use this endpoint when setting up sprint cycles, planning releases, or organizing work into manageable timeframes. The endpoint requires essential information such as the Iteration's name and date range, while also offering options to add followers, associate groups, and attach labels for better organization and tracking. It's important to note that while multiple groups can be added via the API, the current web UI only displays one Group association. This endpoint should not be used for modifying existing Iterations; instead, use the dedicated update endpoint for such changes. |
| `SHORTCUT_CREATE_LABEL` | Create label | Create Label allows you to create a new Label in Shortcut. |
| `SHORTCUT_CREATE_LINKED_FILE` | Create linked file | Create Linked File allows you to create a new Linked File in Shortcut. |
| `SHORTCUT_CREATE_MULTIPLE_STORIES` | 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). |
| `SHORTCUT_CREATE_OBJECTIVE` | Create objective | Create Objective allows you to create a new Objective in Shortcut. |
| `SHORTCUT_CREATE_PROJECT` | Create project | Create Project is used to create a new Shortcut Project. |
| `SHORTCUT_CREATE_STORY` | 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 neither are specified. The workflow_state_id has been marked as required and is the recommended field to specify because we are in the process of sunsetting Projects in Shortcut. |
| `SHORTCUT_CREATE_STORY_COMMENT` | Create story comment | Create Comment allows you to create a Comment on any Story. |
| `SHORTCUT_CREATE_STORY_FROM_TEMPLATE` | Create story from template | Create Story From Template is used to add a new story derived from a template to your Shortcut Workspace. |
| `SHORTCUT_CREATE_STORY_LINK` | 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. The subject story acts on the object Story; the object story is the direct object of the sentence. The subject story "blocks", "duplicates", or "relates to" the object story. Examples: - "story 5 blocks story 6” -- story 6 is now "blocked" until story 5 is moved to a Done workflow state. - "story 2 duplicates story 1” -- Story 2 represents the same body of work as Story 1 (and should probably be archived). - "story 7 relates to story 3” |
| `SHORTCUT_CREATE_STORY_REACTION` | Create story reaction | Create a reaction to a story comment. |
| `SHORTCUT_CREATE_TASK` | Create task | Create Task is used to create a new task in a Story. |
| `SHORTCUT_DELETE_CATEGORY` | Delete category | Delete Category can be used to delete any Category. |
| `SHORTCUT_DELETE_CUSTOM_FIELD` | 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 in your workflows or project structure. It's important to note that this operation is irreversible, and once a custom field is deleted, all data associated with it will be lost. Use this endpoint with caution, ensuring that the custom field is no longer needed and that its deletion won't negatively impact any existing processes or data integrity within your Shortcut instance. |
| `SHORTCUT_DELETE_DOC` | 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 this action when you need to remove a document completely from the system. Be cautious as this operation is irreversible. |
| `SHORTCUT_DELETE_ENTITY_TEMPLATE` | 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 that this operation cannot be undone, so it should be used with caution. The deletion is performed on a single template identified by its public ID, adhering to the best practice of controlling deletion on a per-resource basis. This endpoint is part of the API v3, which may include enhanced features or changes compared to previous versions. |
| `SHORTCUT_DELETE_EPIC` | Delete epic | Delete Epic can be used to delete the Epic. The only required parameter is Epic ID. |
| `SHORTCUT_DELETE_EPIC_COMMENT` | Delete epic comment | This endpoint allows you to delete a Comment from an Epic. |
| `SHORTCUT_DELETE_FILE` | Delete file | Delete File deletes a previously uploaded file. |
| `SHORTCUT_DELETE_GENERIC_INTEGRATION` | 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. |
| `SHORTCUT_DELETE_ITERATION` | 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 workflow. It's particularly useful for cleaning up completed or cancelled iterations that are no longer needed. Be cautious when using this endpoint, as the deletion is irreversible and will remove all data associated with the specified iteration. Ensure you have the correct iteration ID before proceeding with the deletion to avoid unintended data loss. |
| `SHORTCUT_DELETE_LABEL` | Delete label | Delete Label can be used to delete any Label. |
| `SHORTCUT_DELETE_LINKED_FILE` | Delete linked file | Delete Linked File can be used to delete any previously attached Linked-File. |
| `SHORTCUT_DELETE_MULTIPLE_STORIES` | Delete multiple stories | Delete Multiple Stories allows you to delete multiple archived stories at once. |
| `SHORTCUT_DELETE_OBJECTIVE` | Delete objective | Delete Objective can be used to delete any Objective. |
| `SHORTCUT_DELETE_PROJECT` | 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 response. |
| `SHORTCUT_DELETE_STORY` | Delete story | Delete Story can be used to delete any Story. |
| `SHORTCUT_DELETE_STORY_COMMENT` | Delete story comment | Delete a Comment from any story. |
| `SHORTCUT_DELETE_STORY_LINK` | Delete story link | Removes the relationship between the stories for the given Story Link. |
| `SHORTCUT_DELETE_STORY_REACTION` | Delete story reaction | Delete a reaction from any story comment. |
| `SHORTCUT_DELETE_TASK` | Delete task | Delete Task can be used to delete any previously created Task on a Story. |
| `SHORTCUT_DISABLE_ITERATIONS` | Disable iterations | Disables Iterations for the current workspace |
| `SHORTCUT_DISABLE_STORY_TEMPLATES` | Disable story templates | Disables the Story Template feature for the Workspace. |
| `SHORTCUT_ENABLE_ITERATIONS` | Enable iterations | Enables Iterations for the current workspace |
| `SHORTCUT_ENABLE_STORY_TEMPLATES` | Enable story templates | Enables the Story Template feature for the Workspace. |
| `SHORTCUT_GET_CATEGORY` | Get category | Get Category returns information about the selected Category. |
| `SHORTCUT_GET_CURRENT_MEMBER_INFO` | Get current member info | Returns information about the authenticated member. |
| `SHORTCUT_GET_CUSTOM_FIELD` | 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, which can include its name, type, possible values, and any other associated metadata. It's particularly useful when you need to inspect or validate a custom field's settings programmatically, or when integrating custom field data into external systems. The endpoint should be used when detailed information about a single custom field is required, rather than for bulk operations or listing all custom fields. Note that this endpoint only provides read access to custom field data and cannot be used to modify the custom field. |
| `SHORTCUT_GET_DOC` | 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. |
| `SHORTCUT_GET_ENTITY_TEMPLATE` | Get entity template | Get Entity Template returns information about a given entity template. |
| `SHORTCUT_GET_EPIC` | Get epic | Get Epic returns information about the selected Epic. |
| `SHORTCUT_GET_EPIC_COMMENT` | Get epic comment | This endpoint returns information about the selected Epic Comment. |
| `SHORTCUT_GET_EPIC_HEALTH` | Get epic health | Get the current health status for the specified Epic. Use when you need to check the health status of an Epic. |
| `SHORTCUT_GET_EPIC_WORKFLOW` | Get epic workflow | Returns the Epic Workflow for the Workspace. |
| `SHORTCUT_GET_EXTERNAL_LINK_STORIES` | Get external link stories | Get Stories which have a given External Link associated with them. |
| `SHORTCUT_GET_FILE` | Get file | Get File returns information about the selected UploadedFile. |
| `SHORTCUT_GET_GENERIC_INTEGRATION` | 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. |
| `SHORTCUT_GET_GROUP` | 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 its name, type, and associated metadata. It's particularly useful when you need to access or verify group details programmatically, such as during workflow automations or when building integrations that involve group management. The endpoint provides more granular control and information compared to what's available through the web application, making it valuable for advanced group-related operations and data analysis within your Shortcut projects. |
| `SHORTCUT_GET_ITERATION` | 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, status, start and end dates, associated stories, and progress metrics. It should be used when detailed information about a particular iteration is needed, such as during sprint planning, progress tracking, or retrospective analysis. The endpoint provides a snapshot of the iteration at the time of the request and does not include real-time updates. It's particularly useful for project managers, scrum masters, and team members who need to review or report on iteration-specific data. Note that this endpoint only retrieves information and does not allow for modification of the iteration details. |
| `SHORTCUT_GET_KEY_RESULT` | Get key result | Get Key Result returns information about a chosen Key Result. |
| `SHORTCUT_GET_LABEL` | Get label | Get Label returns information about the selected Label. |
| `SHORTCUT_GET_LINKED_FILE` | Get linked file | Get File returns information about the selected Linked File. |
| `SHORTCUT_GET_MEMBER` | Get member | Returns information about a Member. |
| `SHORTCUT_GET_OBJECTIVE` | Get objective | Get Objective returns information about a chosen Objective. |
| `SHORTCUT_GET_PROJECT` | Get project | Get Project returns information about the selected Project. |
| `SHORTCUT_GET_REPOSITORY` | Get repository | Get Repository returns information about the selected Repository. |
| `SHORTCUT_GET_STORY` | Get story | Get Story returns information about a chosen Story. |
| `SHORTCUT_GET_STORY_COMMENT` | Get story comment | Get Comment is used to get Comment information. |
| `SHORTCUT_GET_STORY_LINK` | Get story link | Returns the stories and their relationship for the given Story Link. |
| `SHORTCUT_GET_TASK` | Get task | Returns information about a chosen Task. |
| `SHORTCUT_GET_WORKFLOW` | Get workflow | Get Workflow returns information about a chosen Workflow. |
| `SHORTCUT_LINK_DOCUMENT_TO_EPIC` | 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. |
| `SHORTCUT_LIST_CATEGORIES` | List categories | List Categories returns a list of all Categories and their attributes. |
| `SHORTCUT_LIST_CATEGORY_MILESTONES` | List category milestones | List Category Milestones returns a list of all Milestones with the Category. |
| `SHORTCUT_LIST_CATEGORY_OBJECTIVES` | List category objectives | Returns a list of all Objectives with the Category. |
| `SHORTCUT_LIST_CUSTOM_FIELDS` | 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 standard fields in integrations. It's particularly useful when you need to understand the structure and types of custom data being used across the system. The endpoint returns details about each custom field, which may include their identifiers, names, types, and any associated metadata. Use this endpoint when you need to inventory existing custom fields, prepare for data migrations, or dynamically adjust your application's data model to accommodate custom fields. Note that this endpoint does not create, modify, or delete custom fields; it's purely for retrieval of existing custom field definitions. |
| `SHORTCUT_LIST_DOCS` | 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. |
| `SHORTCUT_LIST_DOCUMENT_EPICS` | 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. |
| `SHORTCUT_LIST_ENTITY_TEMPLATES` | List entity templates | List all the entity templates for the Workspace. |
| `SHORTCUT_LIST_EPIC_COMMENTS` | List epic comments | Get a list of all Comments on an Epic. |
| `SHORTCUT_LIST_EPIC_DOCUMENTS` | List epic documents | Get a list of all Documents related to this Epic. |
| `SHORTCUT_LIST_EPIC_HEALTHS` | 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. |
| `SHORTCUT_LIST_EPICS` | List epics | List Epics returns a list of all Epics and their attributes. |
| `SHORTCUT_LIST_EPICS_PAGINATED` | 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. |
| `SHORTCUT_LIST_EPIC_STORIES` | List epic stories | Get a list of all Stories in an Epic. |
| `SHORTCUT_LIST_FILES` | List files | List Files returns a list of all UploadedFiles in the workspace. |
| `SHORTCUT_LIST_GROUPS` | 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. |
| `SHORTCUT_LIST_GROUP_STORIES` | List group stories | List the Stories assigned to the Group. (By default, limited to 1,000). |
| `SHORTCUT_LIST_ITERATIONS` | 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 cycles. This endpoint provides comprehensive information about each iteration, including its name, start and end dates, status, and associated stories or tasks. Use this endpoint when you need an overview of all iterations for project planning, progress tracking, or reporting purposes. It's particularly useful for analyzing past performance, planning future sprints, or getting a high-level view of the project timeline. Note that the response may be paginated for projects with a large number of iterations, and you might need to make multiple requests to retrieve the full dataset. |
| `SHORTCUT_LIST_ITERATION_STORIES` | List iteration stories | Get a list of all Stories in an Iteration. |
| `SHORTCUT_LIST_LABEL_EPICS` | List label epics | List all of the Epics with the Label. |
| `SHORTCUT_LIST_LABELS` | List labels | List Labels returns a list of all Labels and their attributes. |
| `SHORTCUT_LIST_LABEL_STORIES` | List label stories | List all of the Stories with the Label. |
| `SHORTCUT_LIST_LINKED_FILES` | List linked files | List Linked Files returns a list of all Linked-Files and their attributes. |
| `SHORTCUT_LIST_MEMBERS` | List members | Returns information about members of the Workspace. |
| `SHORTCUT_LIST_MEMBERS_SLIM` | 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 in the response. |
| `SHORTCUT_LIST_OBJECTIVE_EPICS` | List objective epics | List all of the Epics within the Objective. |
| `SHORTCUT_LIST_OBJECTIVES` | List objectives | List Objectives returns a list of all Objectives and their attributes. |
| `SHORTCUT_LIST_PROJECTS` | List projects | List Projects returns a list of all Projects and their attributes. |
| `SHORTCUT_LIST_REPOSITORIES` | List repositories | List Repositories returns a list of all Repositories and their attributes. |
| `SHORTCUT_LIST_STORIES` | List stories | List Stories returns a list of all Stories in a selected Project and their attributes. |
| `SHORTCUT_LIST_STORY_COMMENT` | List story comment | Lists Comments associated with a Story |
| `SHORTCUT_LIST_STORY_SUB_TASKS` | 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. |
| `SHORTCUT_LIST_WORKFLOWS` | List workflows | Returns a list of all Workflows in the Workspace. |
| `SHORTCUT_SEARCH` | 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` value from the previous response can be used as the path and query string for the next page to ensure stable ordering. |
| `SHORTCUT_SEARCH_DOCUMENTS` | 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. |
| `SHORTCUT_SEARCH_EPICS` | 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 previous response can be used as the path and query string for the next page to ensure stable ordering. |
| `SHORTCUT_SEARCH_ITERATIONS` | 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 from the previous response can be used as the path and query string for the next page to ensure stable ordering. |
| `SHORTCUT_SEARCH_MILESTONES` | 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 from the previous response can be used as the path and query string for the next page to ensure stable ordering. |
| `SHORTCUT_SEARCH_OBJECTIVES` | 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 from the previous response can be used as the path and query string for the next page to ensure stable ordering. |
| `SHORTCUT_SEARCH_STORIES` | 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 previous response can be used as the path and query string for the next page to ensure stable ordering. |
| `SHORTCUT_SEARCH_STORIES_OLD` | Search stories old | Search Stories lets you search Stories based on desired parameters. |
| `SHORTCUT_STORY_HISTORY` | 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 over time, providing a comprehensive timeline of its evolution. It's particularly useful for project managers, team members, and stakeholders who need to understand how a story has changed, who made the changes, and when they occurred. The endpoint returns a chronological list of all events and modifications associated with the specified story, helping teams maintain transparency and accountability in their project workflows. Note that this endpoint focuses solely on the history of a single story and does not provide information about related stories or overall project status. |
| `SHORTCUT_UNLINK_COMMENT_THREAD_FROM_SLACK` | Unlink comment thread from slack | Unlinks a Comment from its linked Slack thread (Comment replies and Slack replies will no longer be synced) |
| `SHORTCUT_UNLINK_DOCUMENT_FROM_EPIC` | 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. |
| `SHORTCUT_UNLINK_PRODUCTBOARD_FROM_EPIC` | Unlink productboard from epic | This endpoint allows you to unlink a productboard epic. |
| `SHORTCUT_UPDATE_CATEGORY` | 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. |
| `SHORTCUT_UPDATE_CUSTOM_FIELD` | 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 value, simply omit it from the 'values' collection. New enum values may be created inline by including an object in the 'values' collection having a 'value' entry with no 'id' (eg. {'value': 'myNewValue', 'color_key': 'green'}). |
| `SHORTCUT_UPDATE_DOC` | 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 to refresh; if no users are connected, CKEditor cache is flushed. |
| `SHORTCUT_UPDATE_ENTITY_TEMPLATE` | Update entity template | Update an entity template's name or its contents. |
| `SHORTCUT_UPDATE_EPIC` | 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. |
| `SHORTCUT_UPDATE_EPIC_COMMENT` | Update epic comment | This endpoint allows you to update a threaded Comment on an Epic. |
| `SHORTCUT_UPDATE_FILE` | Update file | Update File updates the properties of an UploadedFile (but not its content). |
| `SHORTCUT_UPDATE_GROUP` | 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 this when you need to change group details, add or remove members, or update the group's visual representation. It's particularly useful for team reorganizations, project changes, or general maintenance of your Shortcut workspace structure. Note that while many fields are optional, you should include any fields you wish to modify; omitted fields will retain their current values. |
| `SHORTCUT_UPDATE_HEALTH` | Update health status | Update an existing health status by its ID. Use when you need to modify the health tracking status of an Epic or Objective. |
| `SHORTCUT_UPDATE_ITERATION` | 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, labels, and timeframe. Use this endpoint when you need to modify any details of an ongoing or upcoming iteration, such as adjusting dates, adding followers, or updating labels. The endpoint is particularly useful for project managers or team leads who need to refine iteration details as the project progresses. Note that while you can update multiple aspects of an iteration in a single call, only the fields you include in the request will be modified; omitted fields will retain their current values. |
| `SHORTCUT_UPDATE_KEY_RESULT` | Update key result | Update Key Result allows updating a Key Result's name or initial, observed, or target values. |
| `SHORTCUT_UPDATE_LABEL` | 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. |
| `SHORTCUT_UPDATE_LINKED_FILE` | Update linked file | Updated Linked File allows you to update properties of a previously attached Linked-File. |
| `SHORTCUT_UPDATE_MULTIPLE_STORIES` | Update multiple stories | Update Multiple Stories allows you to make changes to numerous stories at once. |
| `SHORTCUT_UPDATE_OBJECTIVE` | Update objective | Update Objective can be used to update Objective properties. |
| `SHORTCUT_UPDATE_PROJECT` | Update project | Update Project can be used to change properties of a Project. |
| `SHORTCUT_UPDATE_STORY` | Update story | Update Story can be used to update Story properties. |
| `SHORTCUT_UPDATE_STORY_COMMENT` | Update story comment | Update Comment replaces the text of the existing Comment. |
| `SHORTCUT_UPDATE_STORY_LINK` | Update story link | Updates the stories and/or the relationship for the given Story Link. |
| `SHORTCUT_UPDATE_TASK` | Update task | Update Task can be used to update Task properties. |
| `SHORTCUT_UPLOAD_FILES` | 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 UploadedFile's name comes from the Content-Disposition header "filename" directive for that field. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Shortcut Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Shortcut actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'Create a new epic for the upcoming sprint with description and due date.'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'Create a new epic for the upcoming sprint with description and due date.'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and Claude Agent SDK
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Create Tool Router Session

Initialize the Composio client and create a Tool Router session
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });

console.log("Creating Tool Router session...");
const { mcp } = await composio.create('your-user-id');
console.log(`Tool Router session created: ${mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Shortcut tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('Create a new epic for the Q3 launch')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText, stepCountIs } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: mcp.url,
    headers: { 'x-api-key': 'your-composio-api-key' }
  }
});

const tools = await client.tools();

const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{ role: 'user', content: 'Create a new epic for the Q3 launch' }],
  stopWhen: stepCountIs( 5 )
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Shortcut Integration

- Supports both Shortcut MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Shortcut data

### 2. Managed Auth

- Built-in API key handling with secure storage and scoping
- Central place to manage, scope, and revoke Shortcut access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Shortcut
- Scoped, least privilege access to Shortcut resources
- Full audit trail of agent actions to support review and compliance

## Use Shortcut with any AI Agent Framework

Choose a framework you want to connect Shortcut with:

- [ChatGPT](https://composio.dev/toolkits/shortcut/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/shortcut/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/shortcut/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/shortcut/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/shortcut/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/shortcut/framework/codex)
- [Cursor](https://composio.dev/toolkits/shortcut/framework/cursor)
- [VS Code](https://composio.dev/toolkits/shortcut/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/shortcut/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/shortcut/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/shortcut/framework/hermes-agent)
- [Google ADK](https://composio.dev/toolkits/shortcut/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/shortcut/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/shortcut/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/shortcut/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/shortcut/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/shortcut/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/shortcut/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/shortcut/framework/autogen)

## Related Toolkits

- [Google Sheets](https://composio.dev/toolkits/googlesheets) - Google Sheets is a cloud-based spreadsheet tool for real-time collaboration and data analysis. It lets teams work together from anywhere, updating information instantly.
- [Notion](https://composio.dev/toolkits/notion) - Notion is a collaborative workspace for notes, docs, wikis, and tasks. It streamlines team knowledge, project tracking, and workflow customization in one place.
- [Airtable](https://composio.dev/toolkits/airtable) - Airtable combines the flexibility of spreadsheets with the power of a database for easy project and data management. Teams use Airtable to organize, track, and collaborate with custom views and automations.
- [Asana](https://composio.dev/toolkits/asana) - Asana is a collaborative work management platform for teams to organize and track projects. It streamlines teamwork, boosts productivity, and keeps everyone aligned on goals.
- [Google Tasks](https://composio.dev/toolkits/googletasks) - Google Tasks is a to-do list and task management tool integrated into Gmail and Google Calendar. It helps you organize, track, and complete tasks across your Google ecosystem.
- [Linear](https://composio.dev/toolkits/linear) - Linear is a modern issue tracking and project planning tool for fast-moving teams. It helps streamline workflows, organize projects, and boost productivity.
- [Jira](https://composio.dev/toolkits/jira) - Jira is Atlassian’s platform for bug tracking, issue tracking, and agile project management. It helps teams organize work, prioritize tasks, and deliver projects efficiently.
- [Clickup](https://composio.dev/toolkits/clickup) - ClickUp is an all-in-one productivity platform for managing tasks, docs, goals, and team collaboration. It streamlines project workflows so teams can work smarter and stay organized in one place.
- [Monday](https://composio.dev/toolkits/monday) - Monday.com is a customizable work management platform for project planning and collaboration. It helps teams organize tasks, automate workflows, and track progress in real time.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Agiled](https://composio.dev/toolkits/agiled) - Agiled is an all-in-one business management platform for CRM, projects, and finance. It helps you streamline workflows, consolidate client data, and manage business processes in one place.
- [Ascora](https://composio.dev/toolkits/ascora) - Ascora is a cloud-based field service management platform for service businesses. It streamlines scheduling, invoicing, and customer operations in one place.
- [Basecamp](https://composio.dev/toolkits/basecamp) - Basecamp is a project management and team collaboration tool by 37signals. It helps teams organize tasks, share files, and communicate efficiently in one place.
- [Beeminder](https://composio.dev/toolkits/beeminder) - Beeminder is an online goal-tracking platform that uses monetary pledges to keep you motivated. Stay accountable and hit your targets with real financial incentives.
- [Boxhero](https://composio.dev/toolkits/boxhero) - Boxhero is a cloud-based inventory management platform for SMBs, offering real-time updates, barcode scanning, and team collaboration. It helps businesses streamline stock tracking and analytics for smarter inventory decisions.
- [Breathe HR](https://composio.dev/toolkits/breathehr) - Breathe HR is cloud-based HR software for SMEs to manage employee data, absences, and performance. It simplifies HR admin, making it easy to keep employee records accurate and up to date.
- [Breeze](https://composio.dev/toolkits/breeze) - Breeze is a project management platform designed to help teams plan, track, and collaborate on projects. It streamlines workflows and keeps everyone on the same page.
- [Bugherd](https://composio.dev/toolkits/bugherd) - Bugherd is a visual feedback and bug tracking tool for websites. It helps teams and clients report website issues directly on live sites for faster fixes.
- [Canny](https://composio.dev/toolkits/canny) - Canny is a platform for managing customer feedback and feature requests. It helps teams prioritize product decisions based on real user insights.
- [Chmeetings](https://composio.dev/toolkits/chmeetings) - Chmeetings is a church management platform for events, members, donations, and volunteers. It streamlines church operations and improves community engagement.

## Frequently Asked Questions

### Do I need my own developer credentials to use Shortcut with Composio?

Yes, Shortcut requires you to configure your own API key credentials. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
