CrawlWitness MCP
An AI consent and licensing oracle that provides signed on-chain receipts for domain usage rights. It offers tools to check AI consent, verify wallet sanctions, and retrieve attested history of robots.txt signals, supporting both x402 crypto payments and monthly API key subscriptions.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.crawlwitness.com/mcpWhat you can do with it
- Check AI consent for crawling or training on a domain
- Verify crypto wallet sanctions against OFAC lists
- Retrieve attested history of a domain's robots.txt
Source and maintenance
Protocol and capabilities
- Server
- crawlwitness 0.1.0
- MCP protocol
- 2025-06-18
- Tools
- 6 advertised
- Resources
- 2 advertised
- Resource templates
- 2 advertised
- Prompts
- 3 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
6 advertised
check_ai_consent — Check AI consent & licensing (paid, with signed receipt)
Full AI-consent report for a domain: robots.txt rules for each AI bot (training, search and user-agent crawlers), RSL license, IETF AIPREF Content-Usage, W3C TDMRep, noai meta tags, llms.txt and C2PA, combined into a 0-100 score and a training stance, plus a verifiable receipt (EAS attestation anchored on Base). Use it before crawling, training on or ingesting a site. Costs 0.005 USD in USDC via x402 (Base or Solana); without a payment it returns the x402 payment options. Unreachable sites are not charged.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"pay": {
"type": "boolean",
"default": false,
"description": "Pay directly instead of using the small daily free quota"
},
"fresh": {
"type": "boolean",
"default": false,
"description": "Force a fresh analysis instead of the cached one (<24 h)"
},
"domain": {
"type": "string",
"maxLength": 253,
"minLength": 3,
"description": "Domain to check, without scheme or path (e.g. nytimes.com)"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"pago": {
"type": "object",
"description": "When paid: network, transaction, signed receipt and EAS attestation"
},
"origen": {
"type": "string",
"description": "cache or fresco (fresh)"
},
"dominio": {
"type": "string"
},
"informe": {
"type": "object",
"description": "Full report: resumen (score, training stance, reasons), robots (per-bot access), rsl, aipref, tdm, html, llms_txt"
},
"analizado_en": {
"type": "string",
"format": "date-time"
}
}
}{
"title": "Check AI consent",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}can_ai_use — Can this AI bot use this site? (paid yes/no, signed)
Fast yes/no verdict for one domain, one AI bot and one use (train, rag or search), from robots.txt, IETF AIPREF, W3C TDMRep, noai directives and RSL licenses, with the reasons and a signed receipt. Use it in a crawler or RAG pipeline before fetching each new domain. Costs 0.001 USD on Base (0.002 on Solana) via x402. Invalid domain or unknown bot is never charged.
{
"type": "object",
"required": [
"domain",
"bot"
],
"properties": {
"bot": {
"enum": [
"GPTBot",
"ClaudeBot",
"anthropic-ai",
"Google-Extended",
"GoogleOther",
"CloudVertexBot",
"Applebot-Extended",
"meta-externalagent",
"Amazonbot",
"amazon-kendra-",
"Bytespider",
"CCBot",
"cohere-training-data-crawler",
"AI2Bot",
"Diffbot",
"Timpibot",
"ImagesiftBot",
"omgili",
"PetalBot",
"KimiBot",
"ICC-Crawler",
"Cotoyogi",
"Reflectionbot",
"CloudflareBrowserRenderingCrawler",
"LinerBot",
"FishBot",
"Novellum",
"bigsur.ai",
"NavuBot",
"QualifiedBot",
"atlassian-bot",
"make.com",
"magpie-crawler",
"Awario",
"w4mwnpbXf3MFAbxOkJRw",
"SemrushBot-OCOB",
"SemrushBot-SWA",
"BorderxBot",
"SelectikaScraper",
"CitibotSiteCrawler",
"AdpResearchBot",
"WARDBot",
"ygs-scraper-bot",
"OAI-SearchBot",
"Claude-SearchBot",
"PerplexityBot",
"Applebot",
"Amzn-SearchBot",
"Bravebot",
"Cloudflare-AI-Search",
"Cloudflare-AI-Search-External",
"DuckAssistBot",
"YouBot",
"KernelSearchBot",
"ShapBot",
"alphalens-bot",
"Anomura",
"Element451Bot",
"ChatGPT-User",
"Claude-User",
"Perplexity-User",
"meta-externalfetcher",
"meta-externaltest",
"muse-",
"MistralAI-User",
"cohere-ai",
"Google-Agent",
"GrokAgent",
"Devin",
"ApifyWebsiteContentCrawler",
"Instapaper",
"Retool",
"QATechBot",
"TwinAgent",
"CledaraBot",
"HarkBot",
"HIFIBot",
"ChathiveCrawler",
"EasyScan",
"Nava",
"ZipchatBot"
],
"type": "string",
"description": "AI user-agent token (e.g. GPTBot, ClaudeBot, Google-Extended, CCBot, PerplexityBot)"
},
"use": {
"enum": [
"train",
"rag",
"search"
],
"type": "string",
"default": "train"
},
"domain": {
"type": "string",
"maxLength": 253,
"minLength": 3,
"description": "Domain to check, without scheme or path (e.g. nytimes.com)"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"bot": {
"type": "string"
},
"use": {
"type": "string"
},
"pago": {
"type": "object"
},
"domain": {
"type": "string"
},
"allowed": {
"type": [
"boolean",
"null"
]
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"decision": {
"type": "string"
}
}
}{
"title": "Can AI use",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}ai_consent_score — AI consent score (free)
Free summary for a domain: 0-100 signal score and AI-training stance (reservado = reserved, permitido = allowed, sin_senal = no signal), from cache when available.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"minLength": 3,
"description": "Domain to check, without scheme or path (e.g. nytimes.com)"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"dominio": {
"type": "string"
},
"puntuacion": {
"type": [
"integer",
"null"
]
},
"analizado_en": {
"type": "string"
},
"entrenamiento": {
"type": [
"string",
"null"
]
}
}
}{
"title": "AI consent score",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}signal_history — Signal history on any date (free)
What a domain's robots.txt (or llms.txt, tdmrep.json, RSL license, homepage headers) said at a given instant, with the SHA-256 of each version and its EAS attestation anchored on Base. Without `source` it returns the index of versions; with `source` (and optional `at`, RFC 3339) the document in force at that instant. Covers only domains already analysed.
{
"type": "object",
"required": [
"domain"
],
"properties": {
"at": {
"type": "string",
"format": "date-time",
"description": "Instant (RFC 3339); default now"
},
"domain": {
"type": "string",
"maxLength": 253,
"minLength": 3,
"description": "Domain to check, without scheme or path (e.g. nytimes.com)"
},
"source": {
"enum": [
"robots",
"llms",
"tdmrep",
"rsl",
"portada"
],
"type": "string",
"description": "portada = homepage headers"
}
},
"additionalProperties": false
}{
"type": "object"
}{
"title": "Signal history",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}verify_receipt — Verify a receipt (free)
Returns the signed EAS attestation of a paid query and, once anchored, its Merkle proof (OpenZeppelin format) and the on-chain attestation on Base that contains it.
{
"type": "object",
"required": [
"uid"
],
"properties": {
"uid": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$",
"description": "Attestation UID (0x + 64 hex)"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"uid": {
"type": "string"
},
"anclaje": {
"type": "object"
},
"paquete": {
"type": "object"
}
}
}{
"title": "Verify receipt",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}check_wallet — Is this crypto wallet sanctioned? (paid, signed)
Sanctions screening of a crypto address against the US OFAC SDN list (all its digital-currency addresses: EVM, BTC, TRX, SOL, USDT, USDC…). Use it before an agent pays, receives from or interacts with a wallet. Returns sanctioned true/false, the listed entity and programs, the exact list version used and a signed receipt. Costs 0.005 USD via x402. Screening aid, not legal advice.
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"maxLength": 110,
"minLength": 20,
"description": "Crypto address (EVM 0x…, BTC, TRX, SOL…)"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"pago": {
"type": "object"
},
"lists": {
"type": "array",
"items": {
"type": "object"
}
},
"address": {
"type": "string"
},
"matches": {
"type": "array",
"items": {
"type": "object"
}
},
"decision": {
"enum": [
"blocked",
"clear"
],
"type": "string"
},
"sanctioned": {
"type": "boolean"
},
"address_type": {
"type": "string"
}
}
}{
"title": "Check wallet",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
3 advertised
audit_domain — Audit a domain for AI use
Check what a domain allows for AI training, RAG and search, and keep the signed receipt
- domain
- Domain, e.g. nytimes.com (required)
before_crawling — Consent check before crawling
Decide which domains of a list may be used for a purpose (train, rag or search)
- domains
- Comma-separated domains (required)
- purpose
- train, rag or search
robots_on_date — What robots.txt said on a date
Retrieve the attested robots.txt of a domain at a past instant (evidence)
- domain
- Domain (required)
- date
- RFC 3339 date-time, e.g. 2026-06-01T00:00:00Z (required)
Resources
2 advertised
guide — How to use CrawlWitness
When to use each tool, prices and how to pay (llms.txt)
crawlwitness://guidepricing — Prices and networks
Live prices per network, free quota and settlement facilitator
crawlwitness://pricinghistory — Attested history of a domain
Index of versions of each signal document
crawlwitness://history/{domain}history-source — Signal document in force now
source: robots, llms, tdmrep, rsl, portada
crawlwitness://history/{domain}/{source}30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1179 ms
- 95th percentile latency
- 1179 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1179 ms · metadata changed · 6 tool(s), 2 resource(s), 2 resource template(s), 3 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http crawlwitness-mcp https://api.crawlwitness.com/mcpCodex
codex mcp add crawlwitness-mcp --url https://api.crawlwitness.com/mcpCursor
{
"mcpServers": {
"crawlwitness-mcp": {
"url": "https://api.crawlwitness.com/mcp"
}
}
}Cline
{
"mcpServers": {
"crawlwitness-mcp": {
"type": "streamableHttp",
"url": "https://api.crawlwitness.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"crawlwitness-mcp": {
"type": "http",
"url": "https://api.crawlwitness.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http crawlwitness-mcp https://api.crawlwitness.com/mcpClaude Desktop
{
"mcpServers": {
"crawlwitness-mcp": {
"url": "https://api.crawlwitness.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"crawlwitness-mcp": {
"serverUrl": "https://api.crawlwitness.com/mcp"
}
}
}Let your agent find its tools
Find servers like CrawlWitness MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other ai and machine learning servers
Do you run CrawlWitness MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.