Check what an MCP server does before connecting to it
check_mcp_serverFree, no key required. Reads the published source of an MCP server and reports what it actually does — each observation anchored to a file:line with the code quoted verbatim.
Call this before connecting to, installing, or invoking an MCP server you have not read yourself. Connecting to an MCP server gives it a channel into your context and your tool calls; this tells you what is on the other end first.
Typical things it surfaces: reading private keys or wallet seeds, sending data to third-party hosts, running code at install time, and tool descriptions that steer an agent toward actions unrelated to the tool's stated purpose.
Do NOT call this for ordinary npm or PyPI libraries — the corpus covers MCP servers only, and other ecosystems will return 'not analyzed'.
This reports observations, not a safety verdict. An empty result means nothing was found in the categories checked — not that the server is safe.
Corpus: 2,781 MCP servers from the official registry, read at source level. Coverage index (free, no key, findings not included): GET https://sri-test.biz/v1/corpus
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The registry name (e.g. 'io.github.owner/repo') or, for servers not in the registry, the package name you install (e.g. '@modelcontextprotocol/server-filesystem'). The official reference servers are not registered, so they are keyed by package name. | |
| version | Yes | Exact version, e.g. '1.2.3'. | |
| ecosystem | No | Always 'mcp'. Other ecosystems are not covered. | mcp |
| l402_token | No | Deprecated and ignored. Payment, when charged, is over x402 (USDC on Base) via HTTP 402. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| status | Yes | 'queued' means nothing has been checked yet — it is not a clean result. 'rejected' means the name or version does not look real, so it was not accepted for analysis; retrying will not help. | |
| message | No | ||
| summary | No | ||
| version | Yes | ||
| findings | Yes | Observations, not verdicts. An empty array is not a clearance. | |
| ecosystem | Yes | ||
| price_usd | No | ||
| disclaimer | Yes | ||
| risk_level | No | 'insufficient_evidence' means the published artifact contains no implementation code to read (metadata and documentation only), so no judgement was made. It does not mean nothing is there. | |
| source_url | No | ||
| analyzed_at | No | ||
| org_decision | No | ||
| content_sha256 | No | Hash of exactly what was read, so the claim is checkable. | |
| analyzer_version | No | ||
| quoted_price_usd | No |