Quick Start
Get Navil running in under 60 seconds.
1Install Navil
# Core package
pip install navil
# With cloud dashboard
pip install navil[cloud]
# With LLM-powered analysis
pip install navil[llm]
# Everything
pip install navil[all]2Scan your MCP config
# Analyze your MCP config for vulnerabilities
navil scan config.json{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
"env": { "API_KEY": "your-api-key" }
}
}
}3Start the security proxy
# Proxy all MCP traffic through Navil
navil proxy --target http://localhost:3000
# With auth enforcement
navil proxy --target http://localhost:3000 --require-authThat's it. Every tool call now passes through Navil's inspection engine. All traffic is logged to the dashboard for monitoring.
4Define access policies (optional)
policies:
- agent: "data-agent"
rules:
- tool: "database_query"
action: "allow"
conditions:
max_rate: 100
data_sensitivity: "low"
- tool: "*"
action: "deny"
- agent: "file-agent"
rules:
- tool: "read_file"
action: "allow"
conditions:
max_rate: 50
- tool: "write_file"
action: "rate_limit"
conditions:
max_rate: 10
time_window: 60
- tool: "delete_file"
action: "deny"CLI Commands
The Navil CLI manages your proxy, configuration, and cloud connection.
navil scan <config.json>Analyze MCP configuration for security vulnerabilities (hardcoded credentials, insecure protocols, malicious patterns)
navil proxyStart the security proxy — intercepts and inspects MCP traffic in real-time with JSON-RPC inspection
--target <url> --port <port> --verbose --require-auth
navil cloud serveLaunch the Navil cloud dashboard for visual security monitoring
--host <addr> --port <port> --no-demo
navil proxy --target http://localhost:3000 --port 9090 --require-auth
# All MCP traffic is now intercepted, inspected, and logged
# Access the dashboard at http://localhost:8484navil cloud serve --host 0.0.0.0 --port 8484
# Dashboard available at http://localhost:8484
# Real-time monitoring of agents, alerts, and policy decisionsAPI Reference
Base URL: https://api.navil.dev — All endpoints return JSON. Auth via JWT or API Key header.
Authentication
Register an organization or authenticate to receive a JWT token.
/v1/auth/registerPublicCreate org + admin user, returns JWT
/v1/auth/loginPublicAuthenticate with email & password
POST /v1/auth/register
{
"email": "admin@acme.io",
"password": "secure_password",
"organization_name": "Acme Corp"
}{
"access_token": "eyJhbGci...",
"token_type": "bearer"
}Telemetry & Threat Intel
Submit security events from agents and fetch the global threat intelligence feed.
/v1/telemetryAPI KeySubmit security events (always 202)
/v1/threat-intelAPI KeyFetch global IP blocklist
POST /v1/telemetry
Authorization: Bearer navil_live_abc123...
{
"agent_id": "worker-3",
"events": [{
"type": "prompt_injection",
"data": {
"action": "blocked",
"payload": "ignore previous..."
}
}]
}{ "status": "accepted" }API Key Management
Create, list, and revoke API keys for your organization.
/v1/org/keysJWTCreate API key (shown once)
/v1/org/keys/:idJWTRevoke an API key
/v1/org/agentsJWTList all API keys for org
Key format: navil_live_{base62} — stored as SHA-256 hash. Plaintext shown once at creation.
POST /v1/org/keys
Authorization: Bearer eyJhbGci...
{ "label": "production-agent" }{
"id": "key_abc123",
"key": "navil_live_x7k9m2...",
"label": "production-agent",
"created_at": "2026-03-12T..."
}Agent Nodes
Register agent nodes and maintain heartbeat connections.
/v1/nodes/registerAPI KeyRegister or update an agent node
/v1/nodes/:id/heartbeatAPI KeySend heartbeat (15min active window)
Nodes inactive for 15+ minutes are freed. Limits: Community 3, Pro 10, Team 50, Enterprise 500.
POST /v1/nodes/register
Authorization: Bearer navil_live_abc123...
{
"node_id": "agent-prod-01",
"hostname": "worker.acme.io",
"version": "1.2.0"
}Organization & Dashboard
Manage your organization profile, webhook URLs, and view dashboard stats.
/v1/org/meJWTGet org profile, key count, webhook URLs
/v1/org/meJWTUpdate name, webhook URLs
/v1/org/statsJWTActive agents, events 24h, top anomalies
PATCH /v1/org/me
Authorization: Bearer eyJhbGci...
{
"slack_webhook_url": "https://hooks.slack.com/...",
"discord_webhook_url": "https://discord.com/api/..."
}GET /v1/org/stats
{
"active_agents": 7,
"events_24h": 1482,
"top_anomalies": [
"prompt_injection",
"rate_limit_exceeded"
]
}Team Members
List members, send invitations, and manage team access.
/v1/org/membersJWTList all org members
/v1/org/invitesJWT AdminInvite user with role (admin only)
/v1/org/members/:idJWT AdminRemove member (admin only)
POST /v1/org/invites
Authorization: Bearer eyJhbGci...
{
"email": "dev@acme.io",
"role": "member"
}Analytics
Query time-series event data and top threat breakdowns.
/v1/org/analytics/timeseriesJWTEvent counts per day (1-30 days)
/v1/org/analytics/top-threatsJWTTop 10 threat types by count
GET /v1/org/analytics/timeseries?days=7
{
"data": [
{ "date": "2026-03-06", "count": 234 },
{ "date": "2026-03-07", "count": 189 },
{ "date": "2026-03-08", "count": 412 }
]
}