Home / MCP registry index / For directories
Show a tool-poisoning check on your MCP directory
If you list MCP servers, a directory, a marketplace or a client's server picker, you can show our latest read of each one beside its listing. It is free, needs no key, and any page may call it from the browser.
What you get
For every remote server in the official MCP registry with a public endpoint: whether it lists its tools to anyone, how many and which, whether its tool descriptions or server instructions match one of our tool-poisoning rules, and when we last read it. Each server is read again every week. We connect the way an MCP client does and never call a tool.
Look a server up
By registry name, or by endpoint URL if that is what you store:
curl 'https://lazaretto.dev/mcp-registry/lookup?name=io.github.github/github-mcp-server'
curl 'https://lazaretto.dev/mcp-registry/lookup?url=https://api.example.com/mcp'const r = await fetch('https://lazaretto.dev/mcp-registry/lookup?name=' + encodeURIComponent(serverName));
if (r.ok) {
const s = await r.json();
// s.state: "no findings", "worth a look", "needs login", "unreachable", "partly read", "not checked"
// s.check: { checked_at, outcome, tool_count, tool_names, verdict, findings, rules_version } or null
// s.page: our page for the server; link to it wherever you show the result
}A server we do not index answers 404 with not_listed. Every server page also has JSON at
https://lazaretto.dev/mcp-registry/{slug}.json.
{
"name": "ai.aislabs/gateway",
"endpoint": "https://api.aislabs.ai/mcp",
"page": "https://lazaretto.dev/mcp-registry/ai-aislabs-gateway",
"badge": "https://lazaretto.dev/mcp-registry/ai-aislabs-gateway/badge.svg",
"state": "no findings",
"check": {
"checked_at": "2026-10-21T17:00:45.295Z",
"outcome": "read",
"tool_count": 3,
"tool_names": ["list_buildings", "how_to_pay", "about_aislabs"],
"sets_instructions": false,
"verdict": "clear",
"findings": [],
"rules_version": "2026.10.21b"
},
"disclaimer": "Signals, not a warranty. ..."
}Or just the badge
A badge per server, updated with each weekly read. The page and badge fields in the JSON give the
exact URLs.
<a href="https://lazaretto.dev/mcp-registry/{slug}"><img src="https://lazaretto.dev/mcp-registry/{slug}/badge.svg" alt="MCP tool check" height="20"/></a>The terms
- Free, no key, CORS open. Responses are cached for an hour; a server is read once a week, so caching longer is fine.
- Where you show a result, link to the server's page here (the
pagefield), so a reader can see what we read and when. - We never return the flagged text itself, only the rule that matched and where, because that text may be written to instruct an agent.
- A rule matching is a signal, not a verdict on the people who run the server. Say "worth a look", not "malicious". Operators who think we are wrong can write to contact@lazaretto.dev and we look.
- Coverage is remote servers in the official registry. A local (stdio) server has no endpoint to read; its tool list can be
checked with the
check_mcp_toolstool on our MCP server.
Using it, or want a different shape of data? Write to contact@lazaretto.dev. Browse the whole index or read the weekly report.