navra + Claude Code
Prerequisites
- navra running (
navra serveor systemd service) - A bearer token (generated by
navra initornavra 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
- Start Claude Code and open a project.
- Type
/mcpto list connected servers. You should seenavra. - 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
- Check navra is running:
navra status - Verify the token:
navra token list-- confirm the hash matches - Check the URL matches the
tcpsetting inconfig.toml - 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