sponson mcp serves three MCP tools over stdio: sponson_plan, sponson_apply and sponson_receipt. Every tool
answers with the same JSON envelope as --json on the command line. SKILL.md tells the agent when
to write a plan line, when to stop and show a human the diff, and why it must never write a secret value or approve
production itself. Give an agent both: the MCP server to act, the skill to know when not to.
Each tool below gets two things: the MCP server configuration (copy it as it is) and a place for SKILL.md.
Before you start
- Node.js 22 or later on the
PATHthe tool starts servers with: every configuration runsnpx -y sponson mcp. To pin a version, writesponson@0.5.0instead ofsponsonin the arguments. - The server reads
release.plan.yaml, the git checkout and itsorigin(where receipts are pushed) from the directory it starts in, and provider tokens (VERCEL_TOKEN,NEON_API_KEY,CLERK_SECRET_KEY, everyenv://NAMEthe plan references) from its environment. Never write a token into one of these files: they are committed or shared. Each tool starts the server with the environment it was itself started with unless noted. - When a tool starts servers outside the project (a global configuration), the agent can pass
plan,branch,shaandprto every tool, or start the server from the project:"command": "sh", "args": ["-c", "cd /path/to/project && exec npx -y sponson mcp"].
Claude Code
Add the server for this project (stored in your user configuration, not committed):.mcp.json at the repository root. claude mcp add --scope project sponson -- npx -y sponson mcp writes exactly this:
.mcp.json servers once. claude mcp list shows whether the
server started.
The skill. SKILL.md is already in Claude Code’s skill format (a name and description frontmatter). Save it as
.claude/skills/sponson/SKILL.md in the repository (or ~/.claude/skills/sponson/SKILL.md for every project); Claude
loads it when a task touches what its description names.
Cursor
.cursor/mcp.json in the repository (or ~/.cursor/mcp.json for every project):
.cursor/rules/sponson.mdc, with
this frontmatter so the agent pulls it in when the description matches:
Codex CLI
~/.codex/config.toml (Codex’s configuration is per user):
codex mcp add sponson -- npx -y sponson mcp writes exactly this. Codex does not hand MCP servers your whole
environment: name the provider tokens to forward in env_vars, and, since the configuration is global, give the
project directory as cwd:
AGENTS.md at the repository root. Add SKILL.md’s text there under a ## Sponson
heading, or a line telling the agent to read SKILL.md before touching release.plan.yaml (with the file committed
next to it).
Windsurf
Windsurf’s MCP configuration is per user:~/.codeium/windsurf/mcp_config.json (Windsurf Settings → Cascade →
MCP servers → View raw config):
sh -c "cd … && exec npx -y sponson mcp", above) when Cascade’s tools cannot find the plan.
The skill. Save SKILL.md’s text (without its frontmatter) as a workspace rule, .windsurf/rules/sponson.md, and
set its activation to Model decision with SKILL.md’s description, so Cascade reads it when the task needs it.
VS Code (GitHub Copilot agent mode)
.vscode/mcp.json in the repository (note the top-level key is servers, not mcpServers):
.github/instructions/sponson.instructions.md with
this frontmatter, so Copilot adds it whenever the plan file is in play:
.github/copilot-instructions.md, which Copilot reads on every request.
How these configurations were checked
Every JSON and TOML block on this page parses, and each one’s server runssponson mcp (scenarios/docs/integrations.test.ts).
“Verified” means the tool’s own CLI wrote or read the configuration back; “from the documentation” means it is
written from the tool’s documentation and was not run:
If one of them has moved on, please open an issue or a pull request against this file.