Atlas / MCP servers / useshortcut / @shortcut/mcp

@shortcut/mcpSAFE

mcp/useshortcut/mcp-server-shortcut

The MCP server for Shortcut

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
4 4r · 0w · 0d
Transport
stdio · streamable-http
License
MIT
Stars
96
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

:warning: :warning: :warning:

All future development on the Shortcut MCP server will be done on the remote server at https://mcp.shortcut.com/mcp.

This repo remains here for historical reference purposes only.

:warning: :warning: :warning:

[](https://twitter.com/intent/follow?screen_name=shortcut)

MCP Server for Shortcut users.

Usage

Usage instructions can be found at https://mcp.shortcut.com/mcp

Issues and Troubleshooting

Ask for help in our Community Slack

Read from source at commit c5131fdc26c2OBSERVED · 2026-10-12
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add mcp --env AUTH_SERVER=${AUTH_SERVER} --env OAUTH_ALLOWED_REDIRECT_URIS=${OAUTH_ALLOWED_REDIRECT_URIS} --env SHORTCUT_API_TOKEN=${SHORTCUT_API_TOKEN} --env SHORTCUT_OAUTH_CLIENT_ID=${SHORTCUT_OAUTH_CLIENT_ID} -- npx -y @shortcut/[email protected]
claude-desktop
{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@shortcut/[email protected]"
      ],
      "env": {
        "AUTH_SERVER": "${AUTH_SERVER}",
        "OAUTH_ALLOWED_REDIRECT_URIS": "${OAUTH_ALLOWED_REDIRECT_URIS}",
        "SHORTCUT_API_TOKEN": "${SHORTCUT_API_TOKEN}",
        "SHORTCUT_OAUTH_CLIENT_ID": "${SHORTCUT_OAUTH_CLIENT_ID}"
      }
    }
  }
}
03

Exposed tools (4)

4 read · 0 write · 0 destructive.

ToolRiskDescription
archived-teamreadAn archived team
described-labelreadA label with description
team-onereadDescription for Team 1
team-tworeadDescription for Team 2
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
none-observed
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (7)

MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
tools/oauth-flow-tester.ts:461
console.log(`\nUsing expected ID token signing algorithm: ${resolvedIdTokenAlg}`);
LOWInventory / provenance · inv.hidden_file · CWE-1104
.mcpbignore
.mcpbignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/mcp/CustomMcpServer.ts:12
import { name, version } from "../../package.json";
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, @shortcut/client, dotenv, express, jose, oauth4webapi, pino, pino-http
Why it matters. 12 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
docs/oauth-proxy-implementation.md:40
MCP->>Auth: POST token endpoint (code + client_secret)
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
docs/oauth-proxy-implementation.md:123
- `POST /token` (token endpoint)
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
docs/oauth-proxy-implementation.md:76
Factory function that returns an `OAuthProviderWithCallback` implementing the MCP SDK's `OAuthServerProvider` interface. All configuration is read lazily from environment variables (so tests can set e
Why it matters. asks the agent to read credentials

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha c5131fdc26c2full audit observations/trust-audit/mcp-server/useshortcut__mcp-server-shortcut.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12c5131fdc26c2SAFEB89first audit
06

Questions

What is the @shortcut/mcp MCP server?

The MCP server for Shortcut

What tools does @shortcut/mcp expose?

4 in total: 4 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is @shortcut/mcp safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does @shortcut/mcp need?

It reads AUTH_SERVER, OAUTH_ALLOWED_REDIRECT_URIS, SHORTCUT_API_TOKEN, SHORTCUT_OAUTH_CLIENT_ID, SHORTCUT_OAUTH_CLIENT_SECRET and TEST_AUTH_CODE from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does @shortcut/mcp run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @shortcut/mcp at 0.25.0.

How current is this page?

The grade is for one exact copy of the source (c5131fdc26c2), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement