unassign-current-user-as-owner
Remove yourself as owner from a Shortcut story to reassign responsibility or clear ownership when no longer needed.
Instructions
Unassign the current user as the owner of a story
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| storyPublicId | Yes | The public ID of the story |
Implementation Reference
- src/tools/stories.ts:345-363 (handler)The handler function that implements the core logic: fetches the story and current user, verifies the user is an owner, filters them out of owner_ids, updates the story via client.updateStory, and returns a success message.async unassignCurrentUserAsOwner(storyPublicId: number) { const story = await this.client.getStory(storyPublicId); if (!story) throw new Error(`Failed to retrieve Shortcut story with public ID: ${storyPublicId}`); const currentUser = await this.client.getCurrentUser(); if (!currentUser) throw new Error("Failed to retrieve current user"); if (!story.owner_ids.includes(currentUser.id)) return this.toResult(`Current user is not an owner of story sc-${storyPublicId}`); await this.client.updateStory(storyPublicId, { owner_ids: story.owner_ids.filter((ownerId) => ownerId !== currentUser.id), }); return this.toResult(`Unassigned current user as owner of story sc-${storyPublicId}`); }
- src/tools/stories.ts:214-221 (registration)Registers the MCP tool 'unassign-current-user-as-owner' with input schema for storyPublicId and handler reference to unassignCurrentUserAsOwner method.server.tool( "unassign-current-user-as-owner", "Unassign the current user as the owner of a story", { storyPublicId: z.number().positive().describe("The public ID of the story"), }, async ({ storyPublicId }) => await tools.unassignCurrentUserAsOwner(storyPublicId), );
- src/tools/stories.ts:217-219 (schema)Zod schema defining the input parameter: storyPublicId as positive number.{ storyPublicId: z.number().positive().describe("The public ID of the story"), },