AOTrust - PDR Notarization
Server Details
AOTrust issues cryptographic PDRs (Provenance Data Records) — proving a digital artifact existed at a specific time. $0.01 per proof. Blockchain-anchored. Publicly verifiable.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 5 tools
The free, quote, and verify tools are clearly distinct, but notary_notarize and notary_notarize_paid overlap in name and purpose, especially since notary_notarize_paid cannot actually be called via MCP. An agent could easily confuse the NEAR payment path with the USDC discovery-only path.
All tools follow a consistent notary_ prefix with snake_case verb-style names, making the surface predictable. The names notary_notarize and notary_notarize_paid are slightly redundant and awkward, but the overall pattern is coherent.
Five tools is well-scoped for a notarization service: free proof, quote, notarize, verify, and a paid-path discovery tool. Each tool maps to a meaningful part of the workflow without unnecessary sprawl.
The NEAR payment path is covered end-to-end through quote, external payment, notarize, and verify, and the free PDR path is complete. The x402 USDC path is only documented and not callable via MCP, leaving a notable gap for that payment method.
Available Tools
5 toolsnotary_freeAInspect
Create a free cryptographic proof of existence (PDR) for a digital artifact without payment. Dual mode: pass work_hash (Mode A, client-computed SHA-256 hex) OR content (Mode B, raw text/code ≤60KB — server hashes it, zero retention). Subject to rate limits (5/IP/day, 1000/day global). Returns shield_id, pdr_b64, and verify_url. For on-chain settlement proof, use notary_notarize_paid ($0.01 USDC on Base).
| Name | Required | Description | Default |
|---|---|---|---|
| content | No | ||
| metadata | No | ||
| work_hash | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does well: it discloses free operation, rate limits (5/IP/day, 1000/day global), zero content retention, server-side hashing, and the returned identifiers. The one notable gap is the ambiguous 'OR' between work_hash and content — it does not state what happens if both are provided, nor does it mention metadata 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?
Four focused sentences, each earning its place: purpose, modes, limits, returns, and alternative route. Front-loaded with the core purpose and free nature, with supporting constraints and final routing. No wasted words.
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 tool with an output schema, the description need not enumerate return values, but it does anyway — nice. It covers the main operational limits, retention behavior, and alternative. The gaps are the missing metadata parameter description and the unclear behavior when both content and work_hash are passed. Overall quite complete for a small free tool.
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 0%, so the description must compensate. It adds useful semantics for work_hash ('client-computed SHA-256 hex') and content ('raw text/code ≤60KB — server hashes it, zero retention'), but it completely omits the metadata parameter. The OR relationship between work_hash and content is also underspecified around mutual exclusivity.
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 opens with a specific action and resource: 'Create a free cryptographic proof of existence (PDR) for a digital artifact without payment.' It clearly distinguishes itself from the paid on-chain sibling by naming notary_notarize_paid and contrasting the free nature. The dual-mode explanation further clarifies what the tool does.
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 states when to use this tool (free proof, no payment) and when not to: 'For on-chain settlement proof, use notary_notarize_paid.' It also provides mode selection guidance for work_hash vs content. This is strong routing guidance that helps the agent choose correctly among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notary_notarizeAInspect
Submit a work artifact for on-chain notarisation (NEAR_DIRECT payment path). PREREQUISITE: Send the NEAR amount from notary_quote to the sink account, then provide the resulting tx_hash here. The server verifies the on-chain payment and submits the notarisation. Returns job_id — use notary_verify to poll for the signed PDR. Step 3 of the notarisation flow: quote -> pay -> notarize -> verify.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_hash | Yes | ||
| metadata | No | {} | |
| agent_sig | No | ||
| work_hash | Yes | ||
| agent_pubkey | No | ||
| artifact_uri | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the server verifies on-chain payment and returns job_id, but it does not mention error handling, idempotency, or security implications. The transparency is adequate but minimal.
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 4 sentences with no fluff. It is front-loaded with the action ('Submit'), then prerequisites, then server action, then return value and next step. Every sentence adds 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?
The tool has 6 parameters (2 required) and an output schema. The description covers the main flow and return value (job_id) but misses details on optional parameters and error behavior. It is adequately complete for a sequential workflow step but lacks depth.
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 0%, meaning no parameter descriptions in the schema. The description only indirectly explains tx_hash and work_hash (from prerequisite context). It does not explain metadata, agent_sig, agent_pubkey, or artifact_uri, leaving the agent with incomplete guidance for all 6 parameters.
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 clearly states the verb 'Submit', the resource 'work artifact', and the context 'on-chain notarisation (NEAR_DIRECT payment path)'. It also distinguishes from sibling tools by placing it as step 3 in the flow: quote -> pay -> notarize -> verify.
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 provides explicit prerequisites (sending NEAR and providing tx_hash) and tells the agent to use notary_verify for polling. It implicitly explains when to use this tool (after payment, before verification) but does not explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notary_notarize_paidAInspect
Notarize a work artifact with x402 USDC payment on Base blockchain. IMPORTANT: This tool is for DISCOVERY ONLY — it cannot be called via MCP. To use x402 payment: POST /notarize with {"work_hash": "..."} to receive 402 + payment requirements. Then POST /notarize again with x-payment header (EIP-3009 authorization) to receive signed PDR.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_sig | No | Optional base64 Ed25519 signature (sig_A). | |
| work_hash | Yes | SHA-256 hex digest of the work result (64 chars). | |
| agent_pubkey | No | Optional hex Ed25519 public key. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals the two-step payment protocol (402 response, then x-payment header) and the outcome (signed PDR). While it doesn't detail side effects or auth requirements, the payment flow is well-explained. A minor gap is that it doesn't state whether the tool modifies state beyond creating the PDR.
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 two sentences long with a critical note front-loaded. It efficiently conveys the main purpose and the key restriction. Could be slightly more structured (e.g., separating purpose from usage caveat), but overall it is concise and scannable.
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?
The tool has an output schema (not shown) but the description only mentions 'signed PDR' without details on its format or contents. The complex payment workflow is adequately explained, but the lack of annotation and only partial output description leaves some gaps for an agent to fully understand the tool's behavior and response.
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 input schema has 100% coverage per context signals, meaning all parameters are documented in the schema. The description only mentions work_hash in the context of the HTTP workflow, adding minimal extra semantics. It does not explain agent_sig or agent_pubkey beyond the schema defaults. Baseline 3 is appropriate as the description adds little value over the schema.
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?
Clearly states the action (notarize), resource (work artifact), and payment mechanism (x402 USDC on Base). The name and description differentiate from sibling notary_notarize by specifying 'paid'. However, the critical restriction 'DISCOVERY ONLY — cannot be called via MCP' is prominently noted, which slightly reduces clarity as it adds a usage constraint beyond the core purpose.
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 states that the tool is for discovery only and cannot be invoked via MCP, providing exact HTTP instructions (POST endpoints, headers) for actual use. This clearly tells the agent when NOT to use the tool and provides a precise alternative workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notary_quoteAInspect
Request a notarisation quote for a work artifact. Returns the cost ($0.01 USDC or NEAR equivalent), a quote_id valid for 600 seconds, the sink account to send payment to, and the PDR schema version. Step 1 of the notarisation flow: quote -> pay -> notarize -> verify.
| Name | Required | Description | Default |
|---|---|---|---|
| work_hash | No | ||
| pdr_version | No | 2.3 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the key stateful facts: it returns a quote_id that is 'valid for 600 seconds,' the sink account, cost, and PDR schema version, while the flow sequence implies no payment or notarization happens at this step. It does not discuss side effects, idempotency, or failure behavior, but the main contract is transparent.
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 only three sentences with no filler. It front-loads the action, then the return values, then the flow placement. Every sentence adds useful information.
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?
Given that an output schema exists and the parameter names are fairly self-explanatory, the description covers the important operational context: purpose, payment details, quote expiry, and flow order. The main gap is explicit parameter guidance, but the overall tool is simple enough that the description is largely sufficient.
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 0%, so the description must compensate. It gives semantic hints by mentioning a 'work artifact' (mapping to work_hash) and 'PDR schema version' (mapping to pdr_version), but it never explicitly explains the hash format, the optionality/defaults of the two parameters, or that pdr_version selects the schema version used. This is adequate but not complete.
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-resource pair ('Request a notarisation quote for a work artifact') and immediately distinguishes the tool from siblings by placing it as 'Step 1 of the notarisation flow: quote -> pay -> notarize -> verify.' This clearly separates it from notary_notarize, notary_notarize_paid, and notary_verify, and the mention of cost/payment separates it from notary_free.
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 explicit flow 'quote -> pay -> notarize -> verify' tells an agent that this tool is the entry point and should precede the pay/notarize/verify siblings. It does not name alternatives like notary_free or state conditions for when not to use the tool, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notary_verifyAInspect
Verify a notarisation by job_id. Returns status (pending/anchored/error). If anchored, returns the full PDR record (base64, 239 bytes) with Ed25519 signature verification. Step 4 of the notarisation flow: quote -> pay -> notarize -> verify. Can be polled repeatedly until status changes from 'pending' to 'anchored'.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses polling behavior, return types (status, PDR record with size and signature algorithm), and that the status transitions from pending to anchored. Could mention idempotency or rate limits, but good overall.
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 sentences, front-loaded with the action, no redundant information. Every sentence adds 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?
The presence of an output schema reduces the need to describe return values in detail. The description covers status transitions, PDR record content, and signature verification. Could elaborate on error conditions, but overall complete for the tool's simplicity.
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 only one parameter (job_id) with 0% schema coverage. The description mentions 'by job_id' but does not explain what it is or where to obtain it. For a single required param, this is adequate but not excellent.
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 clearly states it verifies a notarisation by job_id, lists return statuses and what happens when anchored. It explicitly places itself as step 4 of the flow, distinguishing it from sibling tools.
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 explains it is step 4 of the flow (quote -> pay -> notarize -> verify) and that it can be polled until status changes. It does not explicitly mention when not to use it, but the context is clear.
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
notary_free8 fields changed- removed
Input schema / properties / agent_pubkeyRemoved value: -{ - "default": "", - "type": "string" -} - removed
Input schema / properties / agent_sigRemoved value: -{ - "default": "", - "type": "string" -} - added
Input schema / properties / contentAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Input schema / properties / metadataAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Input schema / properties / work_hash / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / work_hash / defaultAdded value: +null - removed
Input schema / properties / work_hash / typeRemoved value: -"string" - removed
Input schema / requiredRemoved value: -[ - "work_hash" -]
1 tool update
- Changed
notary_quote2 fields changed- added
Input schema / properties / work_hash / defaultAdded value: +"" - removed
Input schema / requiredRemoved value: -[ - "work_hash" -]
1 tool update
- Added
notary_free
4 tool updates
- First observed
notary_notarize - First observed
notary_notarize_paid - First observed
notary_quote - First observed
notary_verify
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.169 npm1MIT
- AlicenseCqualityAmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npm107 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.