SRI
MCP server inspector that reads a server's published source code and reports findings with file:line evidence, helping users assess what an MCP server does before connecting.
README
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.
{
"mcpServers": {
"sri": {
"type": "http",
"url": "https://sri-test.biz/mcp"
}
}
}
<details> <summary>Claude Code</summary>
claude mcp add --transport http sri https://sri-test.biz/mcp
</details>
<details> <summary>Anything that speaks Streamable HTTP</summary>
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.
</details>
The tool
check_mcp_server
| Argument | Required | Meaning |
|---|---|---|
name |
yes | Server name as published in the registry, e.g. io.github.firebase/firebase-mcp |
version |
yes | Exact version, e.g. 1.2.3 |
ecosystem |
no | Always mcp; other ecosystems are not covered |
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
curl -X POST https://sri-test.biz/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"check_mcp_server",
"arguments":{"name":"io.github.firebase/firebase-mcp","version":"0.3.0"}}}'
There is a plain REST endpoint too, if that is easier:
curl -X POST https://sri-test.biz/v1/verify \
-H 'Content-Type: application/json' \
-d '{"ecosystem":"mcp","name":"io.github.firebase/firebase-mcp","version":"0.3.0"}'
GET /v1/price is open and tells you the current terms.
GET /v1/docs is the OpenAPI spec.
What gets reported
| Category | What it means |
|---|---|
credential_access |
Reads environment credentials, tokens, or key files |
network_egress |
Sends data to a host outside the package's own service |
install_script |
Executes code at install time (postinstall, setup.py) |
prompt_injection_surface |
Tool text or returned data that steers the agent toward actions unrelated to the tool's stated purpose |
obfuscation |
Encoded strings decoded and executed |
typosquat |
Name close to a well-known package, different publisher |
excessive_permission |
Permissions beyond the declared purpose |
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.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。