Static binary, no dependencies, no account. Brew, direct download, or build from source. Same engine as the SaaS, same scoring, same findings — pipe it into CI or just run it ad-hoc.
Hosted on GitHub. Signed releases. Reproducible builds. The same binary that runs in our SaaS — no special sauce.
$ brew install mcpscanner/tap/mcpscanner > scoop install mcpscanner scoop bucket add mcpscanner …)$ curl -fsSL https://install.mcpscanner.dev/install.sh | sh VERSION=1.0.1$ git clone https://github.com/mcpscanner/cli go install github.com/mcpscanner/cli@latestJSON / SARIF output, configurable severity thresholds, exit codes for build gates. Use it however your pipeline wants.
Clean-room Go port of the scanner engine. Identical findings, identical scoring.
--format text for humans, json for CI, html for a standalone dark-themed report.
SSRF guard, redirect block, 10 MB response cap, 500-tool cap. Refuses internal IPs unless you opt in.
Three formats, eight flags. Full reference in the README — the basics live here.
| Format | Flag | What it's for |
|---|---|---|
| Text | --format text | Human-readable terminal output (default) |
| JSON | --format json | Structured payload for CI / SIEM ingestion |
| HTML | --format html | Standalone dark-themed report you can email |
| Flag | Short | Default | Description |
|---|---|---|---|
--format | -f | text | Output format |
--config | -c | — | Scan a Claude Desktop / Cursor config file |
--output | -o | stdout | Write report to a file |
--timeout | -t | 60 | HTTP timeout in seconds |
--token | — | — | Auth token, sent as Bearer |
--interactive | -i | false | Prompt-driven scan flow |
--no-progress | — | false | Disable live progress display |
--allow-internal | — | false | Allow scanning private / loopback IPs |