CrawlWitness
Server Details
AI consent & licensing check for any domain, with signed on-chain receipts. Paid via x402.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 6 tools
Three AI-consent tools overlap conceptually (free summary, fast verdict, full report), but their descriptions clearly distinguish depth, input scope, and cost. check_wallet, signal_history, and verify_receipt are distinct, so misselection risk is moderate rather than severe.
All names use snake_case and are readable, but the convention mixes verb-led operations (check_*, can_*, verify_*) with noun-led report/history names (ai_consent_score, signal_history). It is mostly predictable, not chaotic.
Six tools is well-scoped: each covers a distinct step from free signal to paid report, historical provenance, payment-wallet safety, and receipt verification. No obvious filler tools.
The AI-consent workflow has summary, targeted verdict, full report, history, and receipt verification, so core workflows are covered. Minor gaps include no bot/use catalog or batch-domain operation, but agents can work around these.
Available Tools
6 toolsai_consent_scoreAI consent score (free)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to check, without scheme or path (e.g. nytimes.com) |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | |
| dominio | No | |
| puntuacion | No | |
| analizado_en | No | |
| entrenamiento | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish read-only, idempotent, non-destructive, and open-world behavior. The description adds useful context beyond that: it explains the score range, the three stance values with translations, and that cached results may be returned when available.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted text. The parenthetical translations are compact and useful, and the cache note is brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with annotations and an output schema, the description covers the key output semantics and cache behavior. It is nearly complete, though it still lacks explicit routing guidance relative to the similar consent-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter is fully documented in the schema as a domain without scheme or path. The description mentions the domain input but adds no additional syntax or formatting guidance beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource, a domain, and specific outputs: a 0-100 signal score and AI-training stance. It is clear what the tool produces, but it does not explicitly distinguish itself from similar siblings such as check_ai_consent or can_ai_use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says this is a free summary and may use cache, but it gives no explicit when-to-use guidance, exclusions, or comparison to sibling tools. An agent must infer that this is the quick/free consent-score lookup rather than a detailed or authoritative check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
can_ai_useCan this AI bot use this site? (paid yes/no, signed)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bot | Yes | AI user-agent token (e.g. GPTBot, ClaudeBot, Google-Extended, CCBot, PerplexityBot) | |
| use | No | train | |
| domain | Yes | Domain to check, without scheme or path (e.g. nytimes.com) |
Output Schema
| Name | Required | Description |
|---|---|---|
| bot | No | |
| use | No | |
| pago | No | |
| domain | No | |
| allowed | No | |
| reasons | No | |
| decision | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the per-call cost on Base and Solana, the x402 payment mechanism, that invalid domains or unknown bots are never charged, and that the response includes reasons and a signed receipt. These details materially help an agent understand cost and failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The verdict and evidence sources are front-loaded, followed by usage, billing, and failure terms. The text is compact and each sentence adds operational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and rich annotations already present, the description is largely complete for invocation. It could mention the verify_receipt sibling for the signed receipt, but nothing critical for calling the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description reinforces the three input dimensions: one domain, one AI bot, and one use limited to train, rag, or search. The schema already describes domain and bot fields, and the description adds useful meaning for the use parameter, though it does not document every enum nuance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a fast yes/no verdict for one domain, one AI bot, and one use, and names the evidence sources and signed receipt. It is clear what the tool does, but it does not explicitly distinguish itself from sibling tools such as check_ai_consent or ai_consent_score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete usage context: call it in a crawler or RAG pipeline before fetching each new domain. It also clarifies billing and failure behavior, but does not name exclusions or alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_ai_consentCheck AI consent & licensing (paid, with signed receipt)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pay | No | Pay directly instead of using the small daily free quota | |
| fresh | No | Force a fresh analysis instead of the cached one (<24 h) | |
| domain | Yes | Domain to check, without scheme or path (e.g. nytimes.com) |
Output Schema
| Name | Required | Description |
|---|---|---|
| pago | No | When paid: network, transaction, signed receipt and EAS attestation |
| origen | No | cache or fresco (fresh) |
| dominio | No | |
| informe | No | Full report: resumen (score, training stance, reasons), robots (per-bot access), rsl, aipref, tdm, html, llms_txt |
| analizado_en | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/open-world profile, and the description layers on non-obvious operational facts: 0.005 USD USDC via x402 on Base or Solana, unpaid calls return payment options rather than failing, unreachable sites are not charged, and results come with an EAS attestation on Base. This is exactly the cost/auth/billing context an agent needs before invoking a paid call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph that front-loads what the report contains, then usage, then price and failure behavior. Every clause carries information, though the source list (RSL, AIPREF, TDMRep, C2PA) is long enough to make the sentence borderline overloaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return structure need not be described. Combined with the annotation profile and full schema coverage, the description covers everything an agent must know before calling: what it returns conceptually, what it costs, what happens without payment, and caching behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real semantics for two parameters: what happens without payment (explains `pay`) and that the default result is cached (implies the `fresh` behavior). Domain format itself is left to the schema, which already documents it well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Full AI-consent report for a domain') and enumerates exactly what is aggregated: robots.txt per AI bot, RSL, AIPREF, TDMRep, noai meta, llms.txt, C2PA, score and stance. It does not explicitly differentiate itself from the near-sounding siblings ai_consent_score or can_ai_use, which is the only missing piece.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear trigger ('Use it before crawling, training on or ingesting a site') and explains the no-payment path (returns x402 payment options) and the not-charged case. It stops short of naming which sibling to use for a cheap score or a quick yes/no check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_walletIs this crypto wallet sanctioned? (paid, signed)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Crypto address (EVM 0x…, BTC, TRX, SOL…) |
Output Schema
| Name | Required | Description |
|---|---|---|
| pago | No | |
| lists | No | |
| address | No | |
| matches | No | |
| decision | No | |
| sanctioned | No | |
| address_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, open-world behavior, so the bar is lower. The description adds genuinely non-obvious operational facts: a 0.005 USD cost via x402 and a signed receipt in the response — payment requirements are exactly the kind of context annotations cannot convey. Rate limits and failure modes are not covered, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with what is screened and against which list, then usage, then return shape and cost. No filler, and the cost/payment note is placed where an agent will read it before calling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter lookup with an output schema, the description covers everything an agent needs to decide and call: data source, supported chains, trigger condition, return contents, price, and payment mechanism. Return-value details are correctly summarized rather than restated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema coverage, the schema already documents `address` fully, so baseline 3 applies. The description's chain enumeration (EVM, BTC, TRX, SOL, USDT, USDC) largely restates the schema's own example list, adding only marginal information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: sanctions screening of a crypto address against the US OFAC SDN list, with the exact address families covered. It is unmistakably distinct from siblings like check_ai_consent or can_ai_use, which concern AI consent rather than wallet sanctions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use it before an agent pays, receives from or interacts with a wallet" gives a concrete triggering context for invocation. It stops short of naming an alternative tool or stating when not to use it, but the scope boundary ("Screening aid, not legal advice") clarifies the limits of the answer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
signal_historySignal history on any date (free)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | Instant (RFC 3339); default now | |
| domain | Yes | Domain to check, without scheme or path (e.g. nytimes.com) | |
| source | No | portada = homepage headers |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the description adds real value by disclosing the return payload traits (SHA-256 per version, EAS attestation anchored on Base) and the important limitation that only previously analysed domains are covered. Short of 5 because error behavior for unknown domains is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences plus a constraint sentence, front-loaded with what the tool returns and followed by the mode-selection rule. The parenthetical list of document types and the hash/attestation detail are load-bearing rather than filler. Slightly heavy in the first sentence but no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description needn't document return structure, and it still summarizes the key payload facts. It covers the mode switch, the timestamp semantics, and the domain-corpus limitation. The only gap is behavior when the domain is unknown or the timestamp predates any record.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description genuinely adds semantics the schema does not: `source` acts as a mode switch (index vs. full document) and `at` selects the instant whose in-force version is returned. It also decodes the enum value 'portada' as homepage headers. That is real value beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-and-resource pair: retrieves the historical content of a domain's robots.txt/llms.txt/tdmrep.json/RSL/homepage headers at a given instant, including version hashes and attestations. It is clearly a read/lookup operation distinct in kind from the consent-scoring siblings, though it never names a sibling or explicitly contrasts itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains the two calling modes — omit `source` to get the version index, supply `source` (plus optional `at`) to get the document in force at that instant — which effectively tells the agent when to use which shape of call. The precondition 'Covers only domains already analysed' is a genuine usage constraint. It stops short of naming an alternative tool for un-analysed domains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_receiptVerify a receipt (free)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | Attestation UID (0x + 64 hex) |
Output Schema
| Name | Required | Description |
|---|---|---|
| uid | No | |
| anclaje | No | |
| paquete | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false. The description adds useful behavioral context by noting the conditional 'once anchored' proof and specifying OpenZeppelin format and Base chain, though it does not detail auth or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every clause names a returned artifact or condition, and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter read tool with full schema coverage, rich annotations, and an output schema. The description supplies the conditional anchoring nuance and return artifacts; nothing essential for invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one required parameter, uid, with 100% schema description coverage including pattern and meaning. The description adds no parameter-specific semantics, so the schema carries the full parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Returns') and names concrete artifacts: signed EAS attestation, Merkle proof, and Base on-chain attestation. It does not explicitly tie these back to 'verify a receipt' or contrast with siblings, but the resource scope is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no alternatives. The title mentions 'free', but the description itself does not explain when this tool should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
ai_consent_score1 field changed- added
Output schema / properties / pageAdded value: +{ + "type": "string" +}
6 tool updates
- First observed
ai_consent_score - First observed
can_ai_use - First observed
check_ai_consent - First observed
check_wallet - First observed
signal_history - First observed
verify_receipt
Related MCP Connectors
Pay-per-use AI and data tools via x402: image, video, music, voice, search, crypto. USDC.
Pay-per-call (x402/USDC-Base) web + crypto data tools for AI agents: audit, extract, crypto, DeFi.
Pay-per-call AI gateway: models, speech, web search, on-chain reads and NLP tools, via x402.
Smart-contract risk reports for AI agents on 20 EVM chains, paid per call via x402 ($0.02 USDC).
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI clients to perform domain verification, DNS lookup, and domain assessment via the Revnuvo x402 paid APIs, with automatic USDC micropayments on Base.MIT

EVIDIQ Notary MCPofficial
AlicenseNot gradedqualityBmaintenanceCryptographic receipt layer for AI inferences. Enables notarization and verification of AI outputs with on-chain proofs via x402 payment.1MIT- FlicenseNot gradedqualityAmaintenanceEnables AI agents to perform on-chain compliance checks such as sanctions screening and UK company verification, with autonomous payment via USDC using the x402 protocol.-
- AlicenseNot gradedqualityBmaintenanceEnables per-request paid AI analysis of public URLs, condition verification, and AI consultation via x402 micropayments on Base, with no account or subscription.3 npmISC
Glama MCP Gateway
Add one secure layer between your agents and this server.