MCP Scan — Live Protocol Probing & Fuzzing | 42Crunch
AI Security — Live Analysis
Does your server actually behave the way the contract says it should?
MCP Scan connects to your live MCP server and runs the checks that genuinely need a live connection: protocol probing and input-format fuzzing. No agent session, no API key required for a baseline pass — point it at a URL and get results in under 60 seconds.
Scope note: content-threat analysis (prompt injection, tool poisoning, semantic reasoning) now lives in MCP Audit, since it needs no live connection. MCP Scan is narrower and live-only: protocol probing plus fuzzing. This mirrors how API Audit (static) and API Scan (live) already split on the API side.
Protocol probing — 8 checks
Drawn directly from the OWASP MCP Security Cheat Sheet
| Check | OWASP threat | Severity |
|---|---|---|
| MCPS-001 — HTTP transport (no TLS) | Unencrypted channel | HIGH |
| MCPS-002 — Unauthenticated access | Missing authentication | HIGH |
| MCPS-003 — No message signing | Tampered tool results | HIGH |
| MCPS-004 — Replay accepted | Replay attacks | MEDIUM |
| MCPS-005 — No tool integrity hashes | Rug-pull attacks | MEDIUM |
| MCPS-007 — Spoofed agent identity | Confused deputy / privilege escalation | HIGH |
| MCPS-008 — Fail-open on bad input | Input validation bypass | MEDIUM |
| MCPS-009 — No rate limiting | Resource exhaustion / DoS | MEDIUM |
Input-format fuzzing
Does your server silently accept malformed input?
Adversarial test cases run against every discovered tool's parameters — missing params, wrong types, size sweeps, and boundary cases. A tool that accepts malformed input without validation is flagged as a finding, not just a console warning.
Live protocol probing + fuzzing
$ mcp-scanner -addr https://your-server/mcp -active
Push the report to the platform
$ mcp-scanner -addr https://your-server/mcp -active \
-report scan.json -api-id <uuid> -api-key <key>
One-shot: contract + active scan + push
$ mcp-scanner -addr https://your-server/mcp -discover \
-api-id <uuid> -api-key <key>