The read surface is large enough to be genuinely useful on day one — assets, vulns, exports, tag queries — and it is the whole surface until you open a gate on purpose, so it is safe to point at production while you learn what it can do. The maintainer is explicit that the checks are argv-level and the server has not been exercised against a live tenant, so make your first call a single live read and check navi://workdir before you trust the numbers.
A Python MCP server that shells out to the Tenable `navi` binary and reads the local navi.db, exposing 20 tools plus navi:// resources. It does not manage API keys — you set those out of band with `navi config keys` first.
- 20 registered tools; with no environment variables set beyond the workdir and binary path, everything exposed is a read
- Three independent gates in front of anything that changes your tenant: the master switch `NAVI_MCP_ALLOW_WRITES`, then a capability gate, then `confirm=True` on the individual call
- Separate opt-ins for the two dangerous capabilities — `NAVI_EMAIL` for sending mail as you, `NAVI_REMOTE_CODE_EXECUTION` for running shell commands on remote hosts
- `navi://workdir` — the resolved workdir, whether navi.db is present and how fresh it is, all three gate states, and the call budget
- `navi://schema/{table}` for live column definitions, and `navi://skill/{name}` to load one of the 17 bundled skills
- A call budget near 220s: an export that would outlive it fails with the exact CLI command to run instead, scoped the same way
`pip install navi-mcp`, or `pipx install "navi-mcp[navi]"` for an install that other packages in the interpreter cannot disturb. The mcp SDK must be at least 1.9 and below 2 — 2.x renamed the module and fails at import before any tool registers, which the client reports only as "Server disconnected". Set `NAVI_WORKDIR` to the folder that actually holds navi.db: it defaults to ~/.navi-mcp, and pointing at the wrong folder makes every read come back empty.
One command plus a key — pip install navi-mcp, then supply credentials
