epics-create
Create new epics in Shortcut project management by specifying name, owner, description, and team assignment for organizing large initiatives.
Instructions
Create a new Shortcut epic.
Input Schema
TableJSON 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 |
Implementation Reference
- src/tools/epics.ts:120-140 (handler)The main handler function for the 'epics-create' tool. It destructures the input parameters, calls this.client.createEpic to create the epic in Shortcut, and returns a success message with the new epic 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:79-89 (registration)Registration of the 'epics-create' tool using server.addToolWithWriteAccess, including the tool name, description, input schema with Zod validators, and the handler function that delegates to createEpic.server.addToolWithWriteAccess( "epics-create", "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:82-87 (schema)Input schema for the 'epics-create' tool, defining parameters with Zod: required name (string), optional owner, description, and teamId (all strings).{ 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"), },