create-epic
Create a new Shortcut epic to organize and track large work initiatives, assign ownership, and coordinate team projects within your workflow management system.
Instructions
Create a new Shortcut epic.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the epic | |
| owner | No | The user ID of the owner of the epic | |
| description | No | A description of the epic | |
| teamId | No | The ID of a team to assign the epic to |
Input Schema (JSON Schema)
{
"properties": {
"description": {
"description": "A description of the epic",
"type": "string"
},
"name": {
"description": "The name of the epic",
"type": "string"
},
"owner": {
"description": "The user ID of the owner of the epic",
"type": "string"
},
"teamId": {
"description": "The ID of a team to assign the epic to",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
Implementation Reference
- src/tools/epics.ts:104-123 (handler)The handler function for the 'create-epic' tool. It calls this.client.createEpic with the provided parameters (mapping teamId to group_id and handling owner as array) and returns a success message with the new epic's ID.async createEpic({ name, owner, teamId: group_id, description, }: { name: string; owner?: string; teamId?: string; description?: string; }): Promise<CallToolResult> { const epic = await this.client.createEpic({ name, group_id, owner_ids: owner ? [owner] : undefined, description, }); return this.toResult(`Epic created with ID: ${epic.id}.`); }
- src/tools/epics.ts:64-74 (registration)Registration of the 'create-epic' tool on the MCP server, including name, description, input schema, and reference to the handler method.server.tool( "create-epic", "Create a new Shortcut epic.", { name: z.string().describe("The name of the epic"), owner: z.string().optional().describe("The user ID of the owner of the epic"), description: z.string().optional().describe("A description of the epic"), teamId: z.string().optional().describe("The ID of a team to assign the epic to"), }, async (params) => await tools.createEpic(params), );
- src/tools/epics.ts:67-72 (schema)Input schema for the 'create-epic' tool using Zod: name (string, required), owner (string, optional), description (string, optional), teamId (string, optional).{ name: z.string().describe("The name of the epic"), owner: z.string().optional().describe("The user ID of the owner of the epic"), description: z.string().optional().describe("A description of the epic"), teamId: z.string().optional().describe("The ID of a team to assign the epic to"), },