mcpgauntlet
A strictly conformant MCP 2026-07-28 server, live, to test your client against. v0.3.2 · API docs · health
Zero false positives, provable in one request
curl {HOST}/audit/self
Runs all 11 probes against this instance over real HTTP and reports the result. Zero violations is criterion 3 — a checker that flags a correct server is worse than no checker, because the first false positive teaches its user to ignore every later report.
A fixed target for your MCP client
curl -X POST {HOST}/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-H 'mcp-protocol-version: 2026-07-28' \
-H 'mcp-method: tools/list' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
Try breaking the rules and watch it refuse correctly:
curl -X GET {HOST}/mcp # 405 — the GET stream is gone in 2026-07-28
curl -X POST {HOST}/mcp -d '{}' # header/body disagreement → -32020
The rules, each with its clause
curl {HOST}/spec/rules
8 MUST and 3 SHOULD rules. Every one cites the specification text it comes from — a probe that cannot cite a clause is an opinion.
There is deliberately no hosted auditor here
docs/NON-GOALS.md ruled out a hosted service before any code was
written, on the grounds that the value is a citable result in CI rather than a chart. Reversing
that once it became convenient would make the document worthless. An auditor accepting a URL
from an anonymous visitor is also a request-forgery gadget aimed at whatever a stranger types,
and read-only probes do not make sending them on someone else’s behalf acceptable.
Auditing arbitrary targets stays a CLI, where whoever runs it is accountable for where it
points.
Audit your own server
pipx install git+https://github.com/Raghu23-dev/mcpgauntlet mcpgauntlet audit http://localhost:8000/mcp