SRI — MCP Server Inspector
Read what an MCP server does before you connect to it.
Connecting an MCP server hands it a channel into your agent's context and its
tool calls. SRI reads the server's published source and reports what it found —
every observation anchored to a file:line with the code quoted verbatim.
It does not tell you whether a server is safe. It tells you what the code
does, and shows you the line it read. You decide.
- Endpoint:
https://sri-test.biz/mcp (Streamable HTTP)
- Corpus: 2,238 MCP servers from the official registry
- Price: free right now — settlement runs on Bitcoin signet, so invoices
cannot be paid with real funds
- Findings across the corpus: sri-test.biz/research
Add it to your client
Remote MCP server, no install, no API key.
Claude Code
Anything that speaks Streamable HTTP
Point it at https://sri-test.biz/mcp. There is one tool and no auth.
GET on that URL returns 405 — this server does not offer a server-initiated
SSE stream, which the spec permits. Send JSON-RPC over POST.
The tool
check_mcp_server
Returns a risk_level, a summary, and a list of findings. Each finding carries
location (file:line), evidence (the code, quoted), and why.
If the server is not in the corpus you get status: "queued", an explicit
"nothing has been checked" — not a clean result — and no charge. We do not
bill for an answer we could not give.
Try it without a client
There is a plain REST endpoint too, if that is easier:
GET /v1/price is open and tells you the current terms.
GET /v1/docs is the OpenAPI spec.
What gets reported
Severity is info / low / medium / high. risk_level is the highest
severity among the findings, derived in code rather than asked for — a verdict
with no findings behind it cannot be published.
What this is not
- No finding is not a clean bill of health. It means nothing was found in
the categories above, in the code we could fetch.
- We never label a package malicious, and never call one safe. The ingest
step rejects records whose summary contains either kind of claim.
- MCP servers only. npm and PyPI libraries are out of scope; ask about one
and you will get "not analyzed".
- One analyzer, one pass. Run-to-run agreement measured at 93% on a
hand-labelled set of 84 servers before the full corpus was built. Not 100%.
If a finding is wrong
If you maintain a server and a finding is mistaken, tell us through
the report form. Agents can use
POST /v1/disputes.
We reply within three business days. While we review, the finding may be
withheld from results. If we withdraw it, the server is re-analysed and the
record replaced. If we keep it, we say which facts it rests on.
Payment
The paid path is L402
(Lightning HTTP 402): the server issues an invoice and a macaroon, you pay, and
you present Authorization: L402 <macaroon>:<preimage>. Verification is
sha256(preimage) == payment_hash — no node required on your side, and no
signup on ours.
This is switched off today. Settlement runs on signet, a test chain, so
invoices cannot be paid with real funds and usage is free. When mainnet is
enabled the price returns to $0.20 per cached lookup. GET /.well-known/l402
tells you the current state.
Privacy
We record the path requested, response time, User-Agent, and an IP hashed
with a daily salt, kept for 90 days. Raw IP addresses are never stored, and
request bodies are never stored — the servers you ask about are recorded by
name, nothing more.