LabscoMCP early access ↗
packetchaosMCP SERVER

Navi MCP Server

Query your Tenable Vulnerability Management data through the navi CLI — read-only until you deliberately open the write gate.

by packetchaos ↗Vulnerability Scanning & Application SecurityCommunity

LABSCO SUMMARY

Tenable data in chat, with the destructive half locked behind three switches.

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.

What it is

A Python MCP server that shells out to the Tenable navi binary and reads the local navi.db, exposing tools plus navi:// resources. It does not manage API keys — you set those out of band with navi config keys first.

What you get

  • 20 registered tools by the README's count; 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

Requirements

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.

Setup effort

One command plus a key — pip install navi-mcp, then supply credentials