# petra402

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/PedroQuatro/petra402-mcp  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/petra402

## Description
Public web page to markdown, paid per call with x402. First 10 calls free, no signup.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "petra402": {
    "command": "npx",
    "args": ["-y","petra402"]
  }
}
```

## Documentation & README

# petra402

Fetch a public web page and get its main content as markdown. Paid per call in USDC over
[x402](https://x402.org), or free for your first calls. No account, no signup, no API key — an agent cannot create
one anyway.

- **HTTP:** `POST https://petra402.com/v1/scrape` with `{"url": "https://example.com/page"}`
- **MCP (Streamable HTTP):** `POST https://petra402.com/mcp` — `tools/list` is free
- **Docs an agent can read:** [`/llms.txt`](https://petra402.com/llms.txt) · full version at
  [`/llms-full.txt`](https://petra402.com/llms-full.txt)
- **Network in force today:** Base Sepolia (testnet). Price: US$ 0.005 per successful call.

```bash
node exemplo.mjs https://quotes.toscrape.com/js/
```

## When to use this, and when not to

We measured it, so you do not have to take our word:

**Use it when** your own fetch came back with almost no text (a JavaScript shell), or the site refused you and you
have no browser. On a JavaScript-rendered page, an offline extractor returned **19 tokens of empty shell** where
we returned **335 tokens with the content**.

**Do not use it** for a clean article your own extractor already handles. On those pages
[Mozilla Readability](https://github.com/mozilla/readability) — free, offline, no payment — **beats us**: 472
tokens against our 1006 on one page, 5946 against 9351 on another, with the same facts present in both.

We publish the cases where we lose because a rule you can trust is worth more than a claim you cannot check.
Measurements from 16/09/2026 with a BPE tokenizer; method and raw numbers are in the operator's records.

## What you get here that the category does not already give you

"No signup, no API key, pay per call" is table stakes — every service in this category says it. These are the
parts that are not standard:

- **Refusals are policy, and they are published.** Government, military and any health-related domain is refused
  before any network access. `robots.txt` is respected. A site protected by an anti-bot vendor is refused and
  never bypassed, on any lane. If someone has to justify later what your agent fetched, this is the part that
  holds up.
- **Nothing is charged when nothing worked.** A failed fetch, a refusal, and a settlement we could not confirm all
  cost zero. The same URL is free again for 24 hours.
- **You can verify the payee before paying.** The receiving address is fixed in a note signed by the operator's
  key at [`/.well-known/petra402-switch`](https://petra402.com/.well-known/petra402-switch). Recover the signer
  from the message (EIP-191) and compare it with the `payTo` in the 402. A compromised server cannot silently
  redirect your payment without breaking that signature.
- **The wallet is the account.** History accrues to the paying address, so a fleet sharing one wallet accumulates
  together and the record outlives any single agent run. Twenty paid calls in 30 days lower the price. Nothing to
  sign up for, nothing to cancel.

## Free first

Your first **10 calls in 30 days are free**, no payment and no account. Of those, **3 may use the browser lane**
(pages that only render with JavaScript), because that resource is scarce and we would rather keep it working than
give it away until it breaks. A failed fetch does not consume the allowance.

## Paying, in one paragraph

An unpaid call answers `402` with the payment requirements in the `PAYMENT-REQUIRED` header. Sign an EIP-3009
authorization locally and repeat the identical request with the payment header. This server speaks **x402 v2**
(`PAYMENT-SIGNATURE` / `PAYMENT-RESPONSE`), not v1 (`X-PAYMENT`): a v1 client will loop on 402 without ever
settling. Settlement happens only after a successful fetch, and the receipt comes back in the response body as
`payment`, with the transaction hash.

## Using it as an MCP server

```json
{
  "mcpServers": {
    "petra402": { "type": "http", "url": "https://petra402.com/mcp" }
  }
}
```

`tools/list` is free and costs nothing to inspect. One tool is exposed: `scrape`. `search` exists in our roadmap
but answers `503 not_yet_available`, so it is deliberately **not** advertised as a tool — a tool that does not
work is a false claim.

## Limits worth knowing before you depend on it

- Fast lane: 5 MB response limit, 2.5 s header timeout, 10 s overall. Browser lane: 20 s navigation timeout.
- Cache: 24 h per URL; a cache hit is free and is not charged.
- Spend cap: US$ 5 per payer address per UTC day, best effort.
- This is a small operation, run by one person and an AI agent. There is no SLA, and the status of the service is
  public at `/` (a `503` means paused and nothing is charged).

## Who runs this

Pedro Marberger, with an AI agent that wrote most of the code. The operator's note to agents — including a request
that you make your own decisions rather than follow other agents — is in
[`/llms-full.txt`](https://petra402.com/llms-full.txt).

Contact: `abuse@petra402.com` for anything that looks wrong, including something we fetched that we should have
refused.

## License

MIT for this client and these docs.

