The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Shortcut MCP listing page.
A lightweight Shortcut MCP deployed on Cloudflare Workers. One tool, eight actions.
Live URL: https://streamshortcut.staycek.workers.dev/mcp
The official @shortcut/mcp uses ~11,652 tokens for tool definitions (52 tools).
StreamShortcut uses ~500 tokens — a ~96% reduction.
| Action | Purpose |
|---|---|
search | Find stories (default: your active stories); text query or structured filters |
get | Story details by ID or URL |
update | Change state, estimate, owner, type, name, or description |
comment | Add comment to story |
create | Create story with type, estimate, state, epic, owner, description |
epic | Epic details with its stories |
api | Raw REST API access for everything else |
help | Documentation |
You must provide your own Shortcut API token. Get one at: https://app.shortcut.com/settings/account/api-tokens
claude mcp add (recommended)One command, no file editing. Replace YOUR_TOKEN with your real token:
Use -s user to make it available in every project instead of just the current one.
Add this to your Claude Desktop / Claude Code config:
Put the literal token in the config. A
"${SHORTCUT_API_TOKEN}"reference only resolves if the variable is present in the environment the app was launched from. On macOS, apps started from the Dock or Finder do not read~/.zshrc, so the variable will be undefined and the server will fail to authenticate. Environment references work reliably only when you launch from a terminal.
Either way, restart Claude afterwards so the new server is picked up.
The server is stateless and stores nothing — every request carries your own token, and it is never persisted. Send it either way:
X-Shortcut-Token takes precedence if both are present. There is no OAuth flow;
an unauthenticated request returns 401 with a WWW-Authenticate header.
Check the service is up (no token needed):
Confirm your token is valid, straight against Shortcut:
200 means the token is good; 401 means it's wrong or expired.
Then test the full path — this returns your active stories:
Once configured in Claude, just ask: "show me my Shortcut stories."
| Symptom | Cause |
|---|---|
401 Missing Shortcut API token | No token sent — use either X-Shortcut-Token or Authorization: Bearer |
Error: API error (401): Unauthorized | Token reached the server but Shortcut rejected it — expired or wrong token, or an unexpanded ${SHORTCUT_API_TOKEN} placeholder sent literally |
403 Forbidden from the worker | Cloudflare bot protection. Some default HTTP clients (e.g. Python's urllib) are blocked by user agent — set a normal User-Agent header |
| Server missing after config edit | Claude needs a restart; it only reads MCP config at startup |
If you prefer to self-host:
Clone and install:
Deploy:
No server-side secrets needed — users always provide their own token.
MIT