Security auditor for MCP servers. A command-line tool that grades AI tool servers 0–100 — "Snyk for MCP".
mcp-guard is a command-line security scanner — not an app, not a website (yet). You point it at an MCP server — the thing that gives an AI assistant its tools — and it audits every tool that server exposes, looking for the structural flaws behind real MCP vulnerabilities: shell execution, path traversal, argument injection, tool poisoning, SSRF, missing auth.
It then grades the server 0–100 with a letter grade, like a health-inspection score for AI tool servers. Run it in CI with --fail-on high and a vulnerable server fails the build.
The commercial wedge: hosted continuous scanning, a vulnerability database, and compliance reporting — that’s the “Snyk for MCP” play. Those are queued under Up next.
This is actual output from scanning the intentionally-vulnerable demo server (5 tools, 14 findings):
The clean demo server scores 100/100 (A) — if the vulnerable one ever scores well, the scanner has regressed.
| Check | Severity | What it catches |
|---|---|---|
AUTH-001 | critical | Network transport (SSE/HTTP) with no Authorization header |
EXEC-001 | critical | Tool capable of arbitrary shell/OS command execution |
FILE-001 | high | File write/delete via unconstrained path |
TRAV-001 | high | Path parameter with no pattern constraint (CVE-2025-68143 shape) |
INJ-001 | high | Unbounded string parameter, no maxLength/pattern/enum (CVE-2025-68144 shape) |
POISON-001 | high | Embedded instructions in tool descriptions (tool poisoning) |
POISON-002 | high | Zero-width / bidi control characters (steganography) |
SSRF-001 | high | Caller-supplied URL fetching with no allowlist |
EXFIL-001 | medium | Access to secrets / env vars / key material |
ANNOT-001 | info | Missing MCP safety annotations |
pip install "mcp<2"
python -m mcp_guard.cli --stdio "python server.py"
python -m mcp_guard.cli --sse https://example.com/mcp --header "Authorization: Bearer $TOKEN"
python -m mcp_guard.cli --stdio "python server.py" --json --fail-on high
Drop-in audit for any MCP server repo:
- uses: actions/checkout@v4
- uses: Martinezworldwide/ZiggyBook/projects/mcp-guard@v1
with:
stdio: "python server.py"
fail-on: high
Every run posts the score/grade to the job summary and uploads the full JSON report as an artifact.