Skip to main content
Glama

Shortcut MCP Server

by ampcome-mcps
server.ts1.71 kB
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { ShortcutClient } from "@shortcut/client"; import { ShortcutClientWrapper } from "@/client/shortcut"; import { name, version } from "../package.json"; import { DocumentTools } from "./tools/documents"; import { EpicTools } from "./tools/epics"; import { IterationTools } from "./tools/iterations"; import { ObjectiveTools } from "./tools/objectives"; import { StoryTools } from "./tools/stories"; import { TeamTools } from "./tools/teams"; import { UserTools } from "./tools/user"; import { WorkflowTools } from "./tools/workflows"; let apiToken = process.env.SHORTCUT_API_TOKEN; // If a SHORTCUT_API_TOKEN is provided as an argument, use it instead of the environment variable. if (process.argv.length === 3) { const [name, token] = String(process.argv[2]).split("="); if (name === "SHORTCUT_API_TOKEN") apiToken = token; } if (!apiToken) { console.error("SHORTCUT_API_TOKEN is required"); process.exit(1); } const server = new McpServer({ name, version }); const client = new ShortcutClientWrapper(new ShortcutClient(apiToken)); UserTools.create(client, server); StoryTools.create(client, server); IterationTools.create(client, server); EpicTools.create(client, server); ObjectiveTools.create(client, server); TeamTools.create(client, server); WorkflowTools.create(client, server); DocumentTools.create(client, server); async function startServer() { try { const transport = new StdioServerTransport(); await server.connect(transport); } catch (error) { console.error("Fatal:", error); process.exit(1); } } startServer();

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ampcome-mcps/shortcut-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server