# How to use AttestPage tools from an MCP client, step by step with curl

Last updated: 2026-10-13

To give an MCP client the AttestPage tools, add the remote endpoint `https://vehcdj664efetfrsolne5umanq.srv.us/mcp`. Each tool runs one paid route, from US$0.002 to US$0.10 per call, and the client pays per call in USDC with x402. Nothing is installed.

This guide lists the tools, calls one with `curl`, reads the 402 offer and shows where the payment goes. For the full reference, see [MCP server](/docs/mcp).

## What the endpoint does

- **Speaks streamable HTTP.** Each POST to `/mcp` carries one JSON-RPC message and gets one JSON answer. There are no sessions and no event stream, so GET returns 405.
- **Gives one tool per route.** A tool call runs the matching route on this server, so prices, limits and refunds are the same as calling the route directly.
- **Needs no account.** There is no key or sign-up. The caller pays with an x402 payment in the call.

## Price

Each tool costs what its route costs, paid in USDC with x402 v2 on Base mainnet (real USDC). A call that fails validation is never charged. All prices: [pricing.json](https://vehcdj664efetfrsolne5umanq.srv.us/pricing.json).

| Tool | Does | Price per call |
|---|---|---|
| `attestpage_verify_quote` | Checks a quote against a web page | US$0.01 |
| `attestpage_verify_quotes` | Checks up to 20 quotes on one page | US$0.02 |
| `attestpage_verify_citations` | Checks up to 10 quote and URL pairs | US$0.10 |
| `attestpage_verify_document` | Checks the quotes and links in a document, 10 pairs per part | US$0.10 |
| `attestpage_fetch` | Reads a page as clean text with a signed verdict | US$0.002 |
| `attestpage_recheck` | Compares a page with an earlier receipt | US$0.003 |
| `attestpage_check_links` | Checks up to 10 links | US$0.005 |
| `attestpage_check_packages` | Checks up to 10 package names on npm, PyPI or crates.io | US$0.005 |
| `attestpage_attest` | Signs a timestamped receipt over a SHA-256 hash | US$0.002 |

Two tools are free: `attestpage_verify_receipt` checks a receipt, and `attestpage_preview_document` previews a document check.

## 1. Add the endpoint to your client

```json
{
  "mcpServers": {
    "attestpage": { "type": "http", "url": "https://vehcdj664efetfrsolne5umanq.srv.us/mcp" }
  }
}
```

To pay from your own wallet key within limits you set, run the local server instead: [MCP server](/docs/mcp).

## 2. List the tools

```sh
curl -s -X POST https://vehcdj664efetfrsolne5umanq.srv.us/mcp -H 'content-type: application/json' \
  -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }' | jq -r '.result.tools[].name'
```

Each tool has an `inputSchema` for its arguments and an `outputSchema` for its result. The arguments are the body of the route, so the other guides apply: for example [How to check links before citing them](/guides/check-links-before-citing) for `attestpage_check_links`.

## 3. Read the 402 offer

Call a tool with `_meta["attestpage/trial"]` set to `false`. That asks for the payment offer, and nothing is charged:

```sh
curl -s -X POST https://vehcdj664efetfrsolne5umanq.srv.us/mcp -H 'content-type: application/json' -d @- <<'EOF' \
  | jq '.result.structuredContent.accepts[0] | {scheme, network, amount}'
{ "jsonrpc": "2.0", "id": 2, "method": "tools/call",
  "params": { "name": "attestpage_fetch",
    "arguments": { "urls": ["https://www.iana.org/help/example-domains"] },
    "_meta": { "attestpage/trial": false } } }
EOF
```

The result has `isError: true` and the x402 payment requirements in `structuredContent`. `amount` is in USDC base units (6 decimals), so `2000` is US$0.002, the price of `attestpage_fetch`.

## 4. Pay and call again

Sign one of `accepts` with your wallet and put the payload in `_meta["x402/payment"]` of the same call. An x402 MCP client such as `@x402/mcp` does this for you. The answer is then the route's JSON in `structuredContent`, and `_meta["x402/payment-response"]` holds the settlement. Payment settles only when the route answers successfully.

Where the free trial is on, a call without a payment of up to 3 items uses the trial first. The cap applies to `verify_citations`, `verify_quotes`, `verify_document` (per pair), `check_links` and `fetch` (per URL), and a call above it gets the offer at once. `check_packages` has no cap: a call of up to 10 names runs as a trial.

## 5. Keep the receipt

Each paid result carries a signed `receipt`. Check it with the free tool `attestpage_verify_receipt`, or see [How to check a signed receipt before you rely on it](/guides/check-a-receipt-before-relying-on-it).

## Questions

### How much does a tool call cost?

It costs the price of its route, from US$0.002 for `attestpage_attest` to US$0.10 for `attestpage_verify_citations`. The table above lists every tool.

### Do I need an account or an API key?

No. The caller pays each call with an x402 payment, and there is no sign-up.

### Which MCP clients work?

Any client that can call a streamable HTTP endpoint with JSON-RPC. A client that signs x402 payments pays by itself; for other clients, use the local server in [MCP server](/docs/mcp), which pays from your wallet key.

### Is a call charged if it fails?

A call that fails validation is not charged. Every case is in [Payments](/docs/payments) and [Errors](/docs/errors).
