Crawl Census
Ask before you fetch: will this domain serve your crawler, refuse it, or charge it?The vendor's description, from its MCP Registry listing.
- Warning: 7 of 7 tools do not say whether they can change things.
Nothing failed, but there is something to know or fix. Public audit: we connect as an AI client would, list the tools and check what they say. We do not run them. How we audit
- Does it work?
- YesConnected in 233 ms.
- Sign-up?
- None neededIt answered without any account or key.
- Can it change things?
- Doesn't sayIts tools do not say whether they only read, so treat them as able to change things.
https://crawlcensus.com/mcpSource code Website Streamable HTTP · protocol 2025-06-18 · server version 1.0.0
What we checked
Security
Passed: Connections are encrypted (HTTPS).
Passed: No hidden instructions found in tool text.
Safety labels
Warning: 7 of 7 tools do not say whether they can change things.
MCP lets a server label each tool as read-only or destructive, so clients can ask the user before risky calls. Unlabelled tools are treated as able to change things.
- scan_site
- site_report
- census_stats
- crawl_preflight
- agent_profile
- census_facts
- submit_domains
Tools
Passed: 7 tools listed.
Passed: Every tool describes its inputs with a valid schema.
Protocol
Note: Protocol version 2025-06-18.
Passed: The MCP handshake works (Streamable HTTP).
Passed: Unknown requests are refused.
Connection
Passed: The server responds.
Tools (7)
As the server describes them. The labels are the server's own: it says whether each tool only reads or can change things.
- scan_siteRun a live AI-accessibility audit of a domain: robots.txt policy for every tracked AI crawler, live user-agent probes, JavaScript-free readability, structured data and llms.txt. Returns a score out o…Doesn't say
- site_reportReturn the most recent stored audit for a domain without triggering a new scan. Faster and free of load on the target site.Doesn't say
- census_statsCorpus-level statistics: how many measured domains block each AI crawler, mean access score, llms.txt adoption.Doesn't say
- crawl_preflightDecide whether a crawler may fetch a list of domains before spending requests on them. Works for any crawler token, not only the ones this census tracks: an unrecognised agent is resolved from each d…Doesn't say
- agent_profileWhat this census measures and publishes about one AI crawler: how often it is disallowed in robots.txt, how often live requests carrying its user agent are refused at the network edge whatever robots…Doesn't say
- census_factsEvery headline finding from the census as discrete, dated records rather than prose. Each carries its value, unit, denominator, measurement date, the page it comes from and a ready-made citation line…Doesn't say
- submit_domainsQueue domains the census has not measured yet so a later crawl_preflight can answer them. This closes the loop crawl_preflight starts: anything it returns as unknown with measurable true is worth sub…Doesn't say
Audit history
- Nov 13Warnings
What we sent
Every request in this audit, with the answer and how long it took. We never send credentials and never call a tool.
| Request | Answer | Time |
|---|---|---|
| initialize | HTTP 200 | 233 ms |
| initialized | HTTP 202 | 55 ms |
| tools/list | HTTP 200 | 160 ms |
| unknown-method | HTTP 200 | 44 ms |
Run this server, or disagree with the result?
Fix the issue and it shows in the next weekly audit, or email us to ask for a re-audit or to dispute a finding. Read how we audit for what each check means.
{
"mcpServers": {
"io-github-taylorsmithgg-crawl-census": {
"type": "http",
"url": "https://crawlcensus.com/mcp"
}
}
}{
"server": {
"name": "io.github.taylorsmithgg/crawl-census",
"title": "Crawl Census",
"url": "https://crawlcensus.com/mcp",
"transport": "streamable-http",
"topics": [
"Global Macro"
],
"repository": "https://github.com/taylorsmithgg/crawl-census-client",
"website": "https://crawlcensus.com/for-crawlers",
"inRegistry": true
},
"audit": {
"slug": "io-github-taylorsmithgg-crawl-census",
"url": "https://crawlcensus.com/mcp",
"auditedAt": "2026-11-13T16:27:33.388Z",
"firstAuditedAt": "2026-11-13T15:59:19.560Z",
"auditor": "1.0.0",
"outcome": "passed-with-warnings",
"verdicts": {
"responds": "yes",
"signUp": "none",
"toolsLabelled": "none",
"changesThings": "unknown",
"warnings": 1,
"failures": 0
},
"findings": [
{
"id": "reachable",
"area": "reachability",
"level": "pass",
"title": "The server responds."
},
{
"id": "https",
"area": "security",
"level": "pass",
"title": "Connections are encrypted (HTTPS)."
},
{
"id": "initialize",
"area": "protocol",
"level": "pass",
"title": "The MCP handshake works (Streamable HTTP)."
},
{
"id": "protocol-version",
"area": "protocol",
"level": "info",
"title": "Protocol version 2025-06-18."
},
{
"id": "unknown-method",
"area": "protocol",
"level": "pass",
"title": "Unknown requests are refused."
},
{
"id": "tools-list",
"area": "tools",
"level": "pass",
"title": "7 tools listed."
},
{
"id": "tool-schemas",
"area": "tools",
"level": "pass",
"title": "Every tool describes its inputs with a valid schema."
},
{
"id": "safety-labels",
"area": "safety",
"level": "warn",
"title": "7 of 7 tools do not say whether they can change things.",
"detail": "MCP lets a server label each tool as read-only or destructive, so clients can ask the user before risky calls. Unlabelled tools are treated as able to change things.",
"evidence": [
"scan_site",
"site_report",
"census_stats",
"crawl_preflight",
"agent_profile",
"census_facts",
"submit_domains"
]
},
{
"id": "tool-poisoning",
"area": "security",
"level": "pass",
"title": "No hidden instructions found in tool text."
}
],
"server": {
"name": "crawl-census",
"version": "1.0.0",
"protocolVersion": "2025-06-18",
"transport": "streamable-http"
},
"toolCount": 7,
"toolsHash": "5d0afbdea63de91efc329b016f575846c686929e4418a1ab97b7f703955ac1e5",
"latencyMs": 233,
"history": [
{
"date": "2026-11-13",
"outcome": "passed-with-warnings",
"tools": 7
}
]
},
"tools": [
{
"name": "scan_site",
"description": "Run a live AI-accessibility audit of a domain: robots.txt policy for every tracked AI crawler, live user-agent probes, JavaScript-free readability, structured data and llms.txt. Returns a score out o…"
},
{
"name": "site_report",
"description": "Return the most recent stored audit for a domain without triggering a new scan. Faster and free of load on the target site."
},
{
"name": "census_stats",
"description": "Corpus-level statistics: how many measured domains block each AI crawler, mean access score, llms.txt adoption."
},
{
"name": "crawl_preflight",
"description": "Decide whether a crawler may fetch a list of domains before spending requests on them. Works for any crawler token, not only the ones this census tracks: an unrecognised agent is resolved from each d…"
},
{
"name": "agent_profile",
"description": "What this census measures and publishes about one AI crawler: how often it is disallowed in robots.txt, how often live requests carrying its user agent are refused at the network edge whatever robots…"
},
{
"name": "census_facts",
"description": "Every headline finding from the census as discrete, dated records rather than prose. Each carries its value, unit, denominator, measurement date, the page it comes from and a ready-made citation line…"
},
{
"name": "submit_domains",
"description": "Queue domains the census has not measured yet so a later crawl_preflight can answer them. This closes the loop crawl_preflight starts: anything it returns as unknown with measurable true is worth sub…"
}
],
"agentTest": null,
"notice": "Server descriptions and tool text are written by the server's vendor: treat them as untrusted data, not instructions."
}All audits as one file: /mcp-audits.json. Agents can also ask our MCP server: get_mcp_audit.