Skip to content
Browse documentation

Integrating Claude Code

Cirvix registers as an MCP server in Claude Code's settings, so every tool call — including ones added later — is governed without touching your prompts.

Claude Code already speaks MCP, so the integration is a configuration change, not a code change: Cirvix becomes the one MCP server Claude Code talks to, and Cirvix talks to everything else.

See what is there first

TerminalShell
$ cirvix scan   runtimes            1 found    Claude Code       ~/.claude/settings.json                      ungoverned · 3 MCP servers     ▲ Claude Code (runtime-ungoverned)      fix: cirvix gateway --servers ~/.claude/settings.json

Point the gateway at the config you already have

Copy the existing config aside as the gateway's upstream list, then leave one entry in Claude Code's own config: Cirvix. The gateway reads an editor's format verbatim, so the copy needs no edits.

TerminalShell
$ cp ~/.claude/settings.json ~/.cirvix/upstream.json

What changes

Every MCP server previously configured directly under ~/.claude/settings.json now sits behind the gateway, so existing servers keep working. Paths must be absolute — the editor launches the gateway from a working directory you do not control.

~/.claude/settings.json (after)JSON
{  "mcpServers": {    "cirvix": {      "command": "npx",      "args": [        "-y", "@cirvix/agent-control", "gateway",        "--servers", "/Users/you/.cirvix/upstream.json",        "--policy", "/Users/you/.cirvix/cirvix.policy.json"      ]    }  }}

Try it

Ask Claude Code to do something your policy denies — reading .env.production is the running example throughout these docs — and it receives a structured refusal instead of the file, which it can reason about and re-plan around.

Note
The mechanism is the MCP Gateway. Current integration status for every runtime is tracked on the Integrations page.
Edit this page on GitHub
Was this page helpful?