AttestPage (Quoteproof)
Server Details
Use before citing a page, sharing links or installing a suggested package. Signed receipts.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Score is being calculated.
Available Tools
10 toolsattestpage_attestSign a timestamped receipt over a SHA-256 hashInspect
Use when an agent needs to show later that a file, answer or record existed unchanged at a point in time: send its sha256, and get back a signed, timestamped receipt over it; a later altered copy no longer matches. Optional note; with an idempotency_key (x402 payments only), a retry gets the same receipt and is not a new record. Costs US$0.002 per call in USDC via x402 (Base), charged only when the call succeeds; a bad request is refused unpaid. Pay by putting an x402 payment payload in _meta["x402/payment"]. Without one it uses the free trial (5 calls a day per address), then returns the payment requirements. Docs: https://vehcdj664efetfrsolne5umanq.srv.us/docs/attest
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional note; only its SHA-256 goes in the receipt. | |
| sha256 | Yes | SHA-256 (hex) of the thing being attested. | |
| idempotency_key | No | Optional, x402 payments only (keys are scoped to the paying address; trial and L402 calls get 400). Retries with the same key and sha256 get the same receipt; a different sha256 gets 409. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | No | |
| receipt | Yes | |
| attestation | Yes |
attestpage_check_linksCheck up to 10 links in one callInspect
Use when an agent is about to give a user links or citations: send up to 10 URLs, and get back for each one the status, redirect chain, final URL, content_kind, title and hash, so a dead, moved or blocked link is caught before it is shown. A URL whose domain does not resolve is reported as dead and charged; a batch where none resolves gets 422 and is not charged. A redirect to another site that errors is off_site with off_site_error: true. Costs US$0.005 per call in USDC via x402 (Base), charged only when the call succeeds; a bad request is refused unpaid. Pay by putting an x402 payment payload in _meta["x402/payment"]. Without one it uses the free trial (5 calls a day per address), then returns the payment requirements. Docs: https://vehcdj664efetfrsolne5umanq.srv.us/docs/check-links
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | 1 to 10 http(s) URLs to check. Dead domains are reported as results; if none resolves, 422 and no charge. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | No | |
| receipt | Yes | |
| results | Yes | One entry per URL, each with server_ip, tls and headers (network evidence also signed into the receipt; null on an edge server). off_site_error: true when the URL redirected to another site that answers 4xx/5xx. |
attestpage_check_packagesCheck whether up to 10 package names exist on npm, PyPI or crates.ioInspect
Use when an agent is about to install or recommend a package an LLM suggested: send up to 10 names, each with its registry (npm, pypi or crates), and get back whether the registry lists each name (exists true/false), latest version, licence, links, creation time and flags (deprecated, yanked, created_recently, name_differs), under one signed receipt, so a made-up package name is caught before install. Not a security verdict. A batch where every lookup fails gets 502 and is not charged. Costs US$0.005 per call in USDC via x402 (Base), charged only when the call succeeds; a bad request is refused unpaid. Pay by putting an x402 payment payload in _meta["x402/payment"]. Without one it uses the free trial (5 calls a day per address), then returns the payment requirements. Docs: https://vehcdj664efetfrsolne5umanq.srv.us/docs/check-packages
| Name | Required | Description | Default |
|---|---|---|---|
| packages | Yes | 1 to 10 packages to look up. Each is { ecosystem, name }; ecosystem is npm, pypi or crates (crates.io). |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| tier | No | |
| receipt | Yes | |
| results | Yes |
attestpage_fetchFetch a page and get a signed verdict on what came backInspect
Use when an agent needs a web page as clean text and must know what actually came back: send a URL, and get back a content_kind verdict (real, bot_wall, js_shell, paywall, http_error and others), status, final URL, title, hashes, prompt-injection flags, clean text if return_text is set, and a signed receipt, so a bot wall or error page is not summarised as real. PDFs are read too, on the full service (edge: 501 not_on_edge, uncharged): page.pdf with page_count, pages_read and truncated. Costs US$0.002 per call in USDC via x402 (Base), charged only when the call succeeds; a bad request is refused unpaid. Pay by putting an x402 payment payload in _meta["x402/payment"]. Without one it uses the free trial (5 calls a day per address), then returns the payment requirements. Docs: https://vehcdj664efetfrsolne5umanq.srv.us/docs/fetch
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | http(s) URL to fetch (max 2,048 characters). | |
| return_text | No | Also return up to 20,000 characters of clean text. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | Page verdict and evidence, including server_ip, tls and headers (the network evidence also signed into the receipt; null on an edge server); on a PDF also pdf { page_count, pages_read, truncated }. |
| text | No | |
| tier | No | |
| advice | No | |
| receipt | Yes | |
| injection_flags | No |
attestpage_preview_documentPreview a document checkRead-onlyIdempotentInspect
Use before paying for POST /v1/verify/document: send the same body, and get back the quote and link pairs it would check, what was skipped and why, the number of parts and the exact price. Nothing is fetched, signed or charged. Free. Free. Docs: https://vehcdj664efetfrsolne5umanq.srv.us/docs/verify-document
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | 0-based part to check, default 0; call POST /v1/verify/document/preview first to see how many parts there are. | |
| match | No | For every pair: exact; fuzzy (default), which also accepts small differences; or passages, for a paraphrased claim: the 3 passages that share most of its words, scored, as evidence for you to judge (not a verdict). With "passages", each sentence that carries a link is a claim. | |
| format | No | markdown (default) or text (only bare URLs and [n] references are links). | |
| document | Yes | The answer or report as written, 1 character to 60000 bytes (UTF-8). Its quotes and their links are found by fixed rules (extractor doc-v1). | |
| min_words | No | A quoted span with fewer words is skipped as too_short (default 4). | |
| part_size | No | Pairs per part, default 10. A free trial call needs 3 or fewer. | |
| threshold | No | Fuzzy similarity needed, default 0.9. | |
| case_sensitive | No | Default false; must be false with match "passages". |
Output Schema
| Name | Required | Description |
|---|---|---|
| pairs | Yes | Each pair: pair, part, quote, url, doc_start/doc_end (code points in the document); doc_spans when the pair appears more than once (the first 20), with doc_spans_truncated counting the rest. |
| parts | Yes | Paid calls needed to check every pair (part 0 to parts - 1). |
| price | Yes | |
| skipped | Yes | Each skipped item with its reason: no_url, bad_url, too_short, too_long or beyond_limit. The first 100 only. |
| extractor | Yes | The fixed extraction rules used (doc-v1). |
| part_size | No | |
| pairs_total | Yes | |
| limit_reached | No | |
| skipped_counts | No | Every skipped item counted by reason. |
| document_sha256 | Yes | SHA-256 of the document as sent (UTF-8); the paid route signs the same value. |
| skipped_truncated | No | Skipped items left out of skipped. |
attestpage_verify_citationsVerify up to 10 quote and URL citations in one callInspect
Use before giving an answer that cites web pages: send up to 10 quote and URL pairs, and get back for each an exact, fuzzy or none match, offsets and page status, under one signed receipt: a fact check of each citation against its source. Match "passages" gives each paraphrased claim evidence passages, not a verdict. A PDF is read too, on the full service, with pdf_page and pdf_page_end. A DOI gets Crossref data and a retracted flag. For 1 to 9 pairs, one verify/quote call per pair costs less. Costs US$0.10 per call in USDC via x402 (Base), charged only when the call succeeds; a bad request is refused unpaid. Pay by putting an x402 payment payload in _meta["x402/payment"]. Without one it uses the free trial (5 calls a day per address), then returns the payment requirements. Docs: https://vehcdj664efetfrsolne5umanq.srv.us/docs/verify-citations
| Name | Required | Description | Default |
|---|---|---|---|
| match | No | For every citation: exact; fuzzy (default), which also accepts small differences; or passages, for a paraphrased claim: the 3 passages that share most of its words, scored, as evidence for you to judge (not a verdict). | |
| citations | Yes | 1 to 10 citations. Each URL is fetched once however many quotes cite it. Dead domains are reported as results; if none resolves, 422 and no charge. | |
| threshold | No | Fuzzy similarity needed, default 0.9. | |
| case_sensitive | No | Default false; must be false with match "passages". |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | No | |
| pages | Yes | One entry per distinct URL: page verdict and evidence, including server_ip, tls and headers (also signed into the receipt). A page with a DOI also has crossref: { doi, doi_source, status (found, not_found or skipped), title, authors, year, container_title, type, retracted, updates, update_to } from Crossref. |
| receipt | Yes | |
| results | Yes | One entry per citation, in request order: the match verdict (with match "passages": passages [{ start, end, score, text, missing, flags }] and scorer), or error (match_too_costly) for that citation alone (on a PDF the match and each passage also give pdf_page and pdf_page_end, 1-based), plus its page's final_url, http_status and content_kind; page indexes pages. |
| summary | No | Counts of exact, fuzzy, none (and passages) verdicts, failed citations, retracted: citations whose page DOI Crossref marks retracted, and doi_unchecked: citations whose page DOI lookup was skipped (busy, rate limited, timed out), so not checked. |
attestpage_verify_documentCheck the quotes and links in a whole document, 10 per partInspect
Use before sending a finished answer or report that quotes web pages: send the document as written, and get back every quote with its link, checked on the live page: exact, fuzzy or none, score, offsets and each page's status, under one signed receipt. Up to 10 pairs per part; the free preview (POST /v1/verify/document/preview) lists the pairs, parts and price first. Match "passages" gives each linked sentence evidence. For a part of 1 to 9 pairs, one verify/quote call per pair costs less. Costs US$0.10 per call in USDC via x402 (Base), charged only when the call succeeds; a bad request is refused unpaid. Pay by putting an x402 payment payload in _meta["x402/payment"]. Without one it uses the free trial (5 calls a day per address), then returns the payment requirements. Docs: https://vehcdj664efetfrsolne5umanq.srv.us/docs/verify-document
| Name | Required | Description | Default |
|---|---|---|---|
| part | No | 0-based part to check, default 0; call POST /v1/verify/document/preview first to see how many parts there are. | |
| match | No | For every pair: exact; fuzzy (default), which also accepts small differences; or passages, for a paraphrased claim: the 3 passages that share most of its words, scored, as evidence for you to judge (not a verdict). With "passages", each sentence that carries a link is a claim. | |
| format | No | markdown (default) or text (only bare URLs and [n] references are links). | |
| document | Yes | The answer or report as written, 1 character to 60000 bytes (UTF-8). Its quotes and their links are found by fixed rules (extractor doc-v1). | |
| min_words | No | A quoted span with fewer words is skipped as too_short (default 4). | |
| part_size | No | Pairs per part, default 10. A free trial call needs 3 or fewer. | |
| threshold | No | Fuzzy similarity needed, default 0.9. | |
| case_sensitive | No | Default false; must be false with match "passages". |
Output Schema
| Name | Required | Description |
|---|---|---|
| part | Yes | |
| tier | No | |
| pages | Yes | One entry per distinct URL, as verify/citations. |
| parts | Yes | |
| receipt | Yes | |
| results | Yes | One entry per pair of this part: pair, quote, url, doc_start/doc_end (code points in the document; doc_spans when the pair appears more than once, the first 20, with doc_spans_truncated counting the rest), then the verify/citations verdict: start/end are offsets on the page. |
| summary | No | |
| extractor | Yes | |
| pairs_total | No | |
| document_sha256 | Yes | SHA-256 of the document as sent (UTF-8); the same on every part. |
attestpage_verify_quoteVerify that a quote appears on a web pageInspect
Use when an agent is about to quote or cite a web page as the source of a claim: send the URL and the quote word for word, and get back exact, fuzzy or none, with offsets and a signed receipt, so a misquote is caught before a user sees it. To fact check a paraphrase, match "passages" returns passages as evidence, not a verdict. PDFs are read too, on the full service (edge: 501 not_on_edge, uncharged), with pdf_page and pdf_page_end. For 5 or more quotes on one page, verify/quotes costs less. Costs US$0.01 per call in USDC via x402 (Base), charged only when the call succeeds; a bad request is refused unpaid. Pay by putting an x402 payment payload in _meta["x402/payment"]. Without one it uses the free trial (5 calls a day per address), then returns the payment requirements. Docs: https://vehcdj664efetfrsolne5umanq.srv.us/docs/verify-quote
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | http(s) URL of the page to check (max 2,048 characters). | |
| match | No | exact; fuzzy (default), which also accepts small differences; or passages, for a paraphrased claim: the 3 passages that share most of its words, scored, as evidence for you to judge (not a verdict). | |
| quote | Yes | Text to look for on the page, or with match "passages" the claim to find support for (max 1,000 characters after normalisation). | |
| threshold | No | Fuzzy similarity needed, default 0.9. | |
| case_sensitive | No | Default false; must be false with match "passages". |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | Page verdict and evidence, including server_ip, tls and headers (the network evidence also signed into the receipt; null on an edge server). |
| tier | No | |
| advice | No | |
| result | Yes | match, score, start, end, context, occurrences, normalised_sha256; with match "passages" also passages [{ start, end, score, text, missing, flags }], scorer and note; on a PDF the match and each passage also give pdf_page and pdf_page_end (1-based). |
| receipt | Yes | |
| injection_flags | No |
attestpage_verify_quotesVerify up to 20 quotes on one web page in one callInspect
Use when an agent is about to quote one web page several times: send the URL and up to 20 quotes in your exact words, and get back for each one exact, fuzzy or none, with offsets and context, plus the page's verdict and hashes, under one signed receipt. The page is fetched once at one price for 1 to 20 quotes, so from 5 quotes up it costs less than one verify/quote call per quote. Match "passages" gives evidence for paraphrased claims. Full service only; PDFs give pdf_page. Costs US$0.04 per call in USDC via x402 (Base), charged only when the call succeeds; a bad request is refused unpaid. Pay by putting an x402 payment payload in _meta["x402/payment"]. Without one it uses the free trial (5 calls a day per address), then returns the payment requirements. Docs: https://vehcdj664efetfrsolne5umanq.srv.us/docs/verify-quotes
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | http(s) URL of the page to check (max 2,048 characters). Fetched once for all the quotes. | |
| match | No | For every quote: exact; fuzzy (default), which also accepts small differences; or passages, for a paraphrased claim: the 3 passages that share most of its words, scored, as evidence for you to judge (not a verdict). | |
| quotes | Yes | 1 to 20 quotes to look for on that page, or with match "passages" claims to find support for (each max 1,000 characters after normalisation). One price for the call however many. | |
| threshold | No | Fuzzy similarity needed, default 0.9. | |
| case_sensitive | No | Default false; must be false with match "passages". |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | Page verdict and evidence, including server_ip, tls and headers (the network evidence also signed into the receipt). |
| tier | No | |
| advice | No | |
| receipt | Yes | |
| results | Yes | One entry per quote, in request order, each the verify/quote result: match, score, start, end, context, occurrences, normalised_sha256; with match "passages" also passages [{ start, end, score, text, missing, flags }], scorer and note; on a PDF the match and each passage also give pdf_page and pdf_page_end (1-based). A quote too costly to match fuzzily has error (match_too_costly) and nulls instead, for that quote alone. |
| summary | No | Counts of exact, fuzzy, none (and passages) verdicts and failed quotes. |
| injection_flags | No |
attestpage_verify_receiptVerify an evidence receiptRead-onlyIdempotentInspect
Use when you are handed an AttestPage evidence receipt and need to check it before relying on it: verifies the compact JWS against this service's published keys and returns its payload, so a forged or altered receipt is caught. Free. Free. Docs: https://vehcdj664efetfrsolne5umanq.srv.us/docs/receipt-verify
| Name | Required | Description | Default |
|---|---|---|---|
| receipt | Yes | The compact JWS from the "receipt" field of a response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kid | No | Key id from the JWS header. |
| tier | No | paid, trial or sample. |
| valid | Yes | True when the signature verifies with one of our keys and the payload matches schema v1. |
| reason | No | Machine-readable failure reason, only when valid is false. |
| message | No | Plain-language failure reason, only when valid is false. |
| payload | No | The decoded receipt payload. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
- First observed
attestpage_attest - First observed
attestpage_check_links - First observed
attestpage_check_packages - First observed
attestpage_fetch - First observed
attestpage_preview_document - First observed
attestpage_verify_citations - First observed
attestpage_verify_document - First observed
attestpage_verify_quote - First observed
attestpage_verify_quotes - First observed
attestpage_verify_receipt
Related MCP Connectors
Capture a web source, or seal a hash you hold, into a signed receipt anyone can verify offline.
Did it really happen? Independent signed receipts for AI agents: page, domain, email, heartbeat.
Issue signed receipts for AI agent actions; verify any receipt offline - free, no account.
Post-quantum, tamper-evident receipts for agent actions. Ed25519 + ML-DSA-65, offline verify.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenance📇 ☁️ - Capture web pages as cryptographically signed, tamper-evident evidence. Ed25519 signatures, RFC 3161 timestamps, and WACZ archives. Four tools: capture_url, get_capture, list_captures, verify_capture.1 npm1MIT
- AlicenseBqualityBmaintenancePrivacy-first, tamper-evident receipts for MCP tool calls. It hashes and signs arguments/results so you can verify what ran, when, without storing raw payloads.2MIT
- AlicenseAqualityBmaintenanceProvides cryptographic truth infrastructure for AI agents, enabling them to seal content with SHA-256 and Ed25519, verify receipts, anchor them to Bitcoin via OpenTimestamps, generate citations, and audit chains of receipts.5245 npm1MIT

emilia-mcp-serverofficial
AlicenseAqualityAmaintenanceThe accountability layer for AI agents — a named human's signed yes before an agent does anything irreversible (payment, record change, deploy), then an offline-verifiable Trust Receipt. Apache-2.0, formally verified.3612Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.