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
$ cirvix scan runtimes 1 found Claude Code ~/.claude/settings.json ungoverned · 3 MCP servers ▲ Claude Code (runtime-ungoverned) fix: cirvix gateway --servers ~/.claude/settings.jsonPoint 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.
$ cp ~/.claude/settings.json ~/.cirvix/upstream.jsonWhat 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.
{ "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.
