navra + Claude Code

Prerequisites

  • navra running (navra serve or systemd service)
  • A bearer token (generated by navra init or navra token create)
  • Claude Code installed (CLI or IDE extension)

Configure Claude Code

Add navra as an MCP server in your project or user settings.

Project-level (.claude/settings.json)

{
  "mcpServers": {
    "navra": {
      "url": "http://localhost:9315/mcp",
      "headers": {
        "Authorization": "Bearer mcd_your_token_here"
      }
    }
  }
}

User-level (~/.claude/settings.json)

Same format. User-level settings apply to all projects unless overridden.

Verify the connection

  1. Start Claude Code and open a project.
  2. Type /mcp to list connected servers. You should see navra.
  3. Ask Claude to list files -- it should use navra's tools.

Check the audit log:

navra audit --limit 5

You should see tool calls from the agent you configured.

Quick start with navra wrap

For a quick setup without editing config files:

navra wrap -- npx @modelcontextprotocol/server-filesystem /tmp

This starts navra with a filesystem MCP server proxied through it. Copy the printed token and endpoint into Claude Code's settings.

What navra adds

When Claude Code connects through navra instead of directly to MCP servers:

  • Authentication -- every request is verified with BLAKE3 tokens
  • Path ACLs -- restrict which files and directories Claude can access
  • Safety filters -- secrets and PII are redacted before reaching the model
  • Audit trail -- every tool call is logged with a tamper-evident hash chain
  • IFC labels -- data confidentiality propagates through tool chains

Troubleshooting

Claude Code does not see navra tools

  1. Check navra is running: navra status
  2. Verify the token: navra token list -- confirm the hash matches
  3. Check the URL matches the tcp setting in config.toml
  4. Review navra logs: journalctl --user -u navra -f

Tool calls are denied

Check the permission set bound to your agent:

navra audit --agent claude --limit 10 --detail

Denied calls show the ACL rule that blocked them. Adjust your [permissions] section or use navra policy suggest to generate allow rules from denial patterns.

Connection timeout

Claude Code expects MCP responses within a few seconds. If navra proxies to a slow upstream, increase the timeout:

[[upstream]]
name = "my-server"
request_timeout_secs = 120