Server data from the Official MCP Registry
Pay-per-fetch via x402. Agent pays 0.005 USDC, gets clean markdown for any URL. No API keys.
Pay-per-fetch via x402. Agent pays 0.005 USDC, gets clean markdown for any URL. No API keys.
Valid MCP server (1 strong, 1 medium validity signals). 9 known CVEs in dependencies ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. Trust signals: 3 highly-trusted packages. 1 finding(s) downgraded by scanner intelligence.
11 files analyzed · 10 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: BITBOOTH_AGENT_KEY
Environment variable: BITBOOTH_API_URL
Environment variable: BITBOOTH_CHAIN_ID
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-drock91-bitbooth-fetch": {
"env": {
"BITBOOTH_API_URL": "your-bitbooth-api-url-here",
"BITBOOTH_CHAIN_ID": "your-bitbooth-chain-id-here",
"BITBOOTH_AGENT_KEY": "your-bitbooth-agent-key-here"
},
"args": [
"-y",
"@bitbooth/mcp-fetch"
],
"command": "npx"
}
}
}From the project's GitHub README.
The first working x402 MCP server. Your agent fetches a URL, pays $0.005 stablecoin per call, gets clean markdown back. No API keys. No signup. No humans.
npm install @bitbooth/mcp-fetch
Built on the x402 protocol (Coinbase + Linux Foundation). Real money loop verified end-to-end on XRPL Mainnet — see the tx hash below.
| Mode | What it does | Price |
|---|---|---|
fast | Raw HTML → clean markdown | $0.005 USDC |
full | Article extraction (Readability + Turndown) → cleaner markdown for LLMs | $0.005 USDC |
✅ Real money loop verified end-to-end on XRPL Mainnet — last tx
493F6F1A…(1.3s round-trip).🛡️ Testnet by default. Defaults to Base Sepolia so a fresh install spends free testnet USDC, not real money. Opt into mainnet explicitly.
🛣️ Shipping next (this week):
mode:"render"(Playwright-based JS rendering for SPAs the free@modelcontextprotocol/server-fetchcan't see — code is in the repo, awaiting Chromium Lambda Layer wiring). After that: shared fetch cache,mcp-youtube,mcp-pdf. Track progress inGOALS.md.
The flagship agent-native endpoint. No API key. No signup. Just pay.
# 1. Hit the endpoint — get a 402 with a payment challenge
curl -X POST https://app.heinrichstech.com/v1/fetch \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","mode":"render"}'
# HTTP/1.1 402 Payment Required
# {
# "challenge": {
# "nonce": "e058d5d6272f4dd8192abf8f4ba1bcb0",
# "accepts": [{
# "network": "eip155:84532",
# "payTo": "0x6Eb83C70a71c81BE7Fc13F0d711A28736a9E37Fc",
# "asset": "USDC@0x036CbD53842c5426634e7929541eC2318f3dCF7e",
# "amount": "20000"
# }]
# }
# }
# 2. Agent signs + sends 0.02 USDC on Base Sepolia to payTo
# 3. Agent retries with X-Payment header containing the tx hash
# 4. Gets 200 OK + clean markdown back
Or try it live — click "Run Demo" on the 6-chain race: → heinrichstech.com/bitbooth.html
One line and any Claude Code / Cursor / Windsurf / Continue agent can use it:
npm install @bitbooth/mcp-fetch
Add to your MCP config:
{
"mcpServers": {
"bitbooth-fetch": {
"command": "npx",
"args": ["-y", "@bitbooth/mcp-fetch"],
"env": { "BITBOOTH_AGENT_KEY": "0x<your-testnet-wallet-private-key>" }
}
}
}
See packages/mcp-fetch/README.md for full configuration.
Agent BitBooth Your API
│ │ │
│── POST /v1/fetch ───────────►│ │
│◄── 402 Payment Required ─────│ (challenge: amount, nonce) │
│ │ │
│── send USDC on-chain ────────────────────────────────────► │
│── retry with X-Payment ─────►│ │
│ │── verify on-chain ────────► │
│ │◄── confirmed ───────────── │
│ │── proxy request ──────────► │
│◄── 200 OK ──────────────────────────────────────────────────│
402 Payment Required with a signed challenge (amount, nonce, payTo, expiry)X-Payment header200 OKOne round-trip. Verified end-to-end at 1.3s on XRPL Mainnet and Base Sepolia today. Other chains have adapter code in the repo and are activated as customers ask.
| Network | CAIP-2 | Asset | Mainnet? | Status |
|---|---|---|---|---|
| XRPL Mainnet | xrpl:0 | XRP | 💰 REAL MONEY | ✅ End-to-end verified — last real tx 493F6F1A… |
| XRPL Mainnet | xrpl:0 | USDC (Bitstamp issuer) | 💰 Real money | ✅ Verifier wired, awaiting first end-to-end real-money test |
| XRPL Mainnet | xrpl:0 | RLUSD (Ripple issuer) | 💰 Real money | ⚙️ Verifier wired, awaiting trust line setup |
| Base Sepolia | eip155:84532 | USDC | 🧪 TESTNET (free) | ✅ End-to-end verified — for development only, no real value |
| Base Mainnet | eip155:8453 | USDC | 💰 Real money | ⚙️ Adapter ready, not enabled (mainnet agent wallet not funded yet) |
| XRPL Testnet | xrpl:1 | XRP | 🧪 Testnet (free) | ⚙️ Adapter ready, not enabled |
| Solana Mainnet | solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp | USDC-SPL | 💰 Real money | ⚙️ Adapter code ready, not wired into challenge builder |
| XRPL EVM Sidechain | eip155:1440002 | USDC | 💰 Real money | ⚙️ Adapter code ready, not wired into challenge builder |
| Stellar | — | — | — | 🛣 Not yet implemented |
| Bitcoin Lightning (L402) | — | sats | 💰 Real money | 🛣 Roadmap |
Today's only real-money production rail is XRPL Mainnet. Base Sepolia is testnet — agents can pay there using free Circle faucet USDC, useful for development but it isn't real revenue. To enable Base Mainnet (real USDC), fund the configured agent wallet with real USDC on Base, set XRPL_NETWORK / chainId env vars per docs/DEPLOY.md, and re-deploy.
✅ = a real payment has settled end-to-end on this rail (real money OR testnet). ⚙️ = code is in the repo, just needs config / activation. 🛣 = on the roadmap, not built yet.
Every 402 challenge returns an accepts[] array of currently-enabled chains. The agent picks the rail it already has balance for.
| Method | Path | Auth | Description |
|---|---|---|---|
POST | /v1/fetch | x402 only | URL → clean markdown. Modes: fast / full / render (Playwright). No API key. Pay-per-call. |
POST | /v1/resource | API key + x402 | Paywalled resource (tenant-configured pricing) |
POST | /v1/resource/premium | API key + x402 | Premium resource (2× price) |
POST | /v1/resource/bulk | API key + x402 | Bulk operations (amount × item count) |
GET | /v1/payments | API key | Payment history (cursor pagination) |
GET | /v1/health | — | Health check |
GET | /v1/health/ready | — | Readiness (DDB + RPC + secrets) |
Full spec in openapi.yaml.
bitbooth-gateway/
├── src/
│ ├── routes/ # HTTP route tables
│ ├── controllers/ # Request parsing, response shaping
│ ├── services/ # Business logic, orchestration
│ ├── adapters/ # External system clients
│ │ ├── base/ # Base mainnet + Sepolia (viem)
│ │ ├── xrpl/ # Native XRPL (xrpl.js)
│ │ ├── xrpl-evm/ # XRPL EVM Sidechain (ethers)
│ │ ├── solana/ # Solana mainnet + devnet (@solana/web3.js)
│ │ └── ows/ # Open Wallet Standard
│ ├── middleware/ # x402, auth, rate-limit, idempotency, errors, CORS
│ ├── validators/ # Zod schemas (every boundary validated)
│ ├── repositories/ # DynamoDB (10 tables)
│ ├── handlers/ # Lambda entry points
│ └── lib/ # Config, logger, errors, crypto, metrics, secrets
├── infra/ # AWS CDK (Lambda + API GW + DDB + Secrets Manager + WAF)
├── packages/
│ ├── mcp-fetch/ # @bitbooth/mcp-fetch — MCP server for fetch tool
│ ├── langchain-bitbooth/ # LangChain tool wrapper
│ └── bitbooth-py/ # Python client
├── tests/ # 3,368 unit tests + integration tests
├── scripts/ # Smoke tests, load tests, ops tools
└── docs/ # Deploy guide, integration guide, ADRs
cdk deploy/v1/fetch) — zero signup, zero API key, pure pay-per-call. Three modes: fast (0.005 USDC, raw HTML → markdown), full (0.005 USDC, article extraction via Readability + Turndown), render (0.02 USDC, Playwright JS rendering for SPAs/dashboards that naive HTTP can't crawl)./v1/quote is unrouted until a real exchange adapter ships (e.g. Moonpay). Today BitBooth is crypto-in only: agents pay from a wallet they already control.app.heinrichstech.com/admin with Tenants, Metrics, Earnings (Grafana-style), self-service password rotation./openapi.yaml, auto-validated against live routes in CI.npm install # install deps
npm run lint # eslint --max-warnings=0
npm test # 3,368 tests, ~20s
npm run build # esbuild bundles to dist/
npm run cdk:synth # validates CDK stack (STAGE=dev)
# Staging (Base Sepolia, free testnet USDC)
STAGE=staging npm run cdk:deploy:staging
# Production (Base mainnet, real USDC)
STAGE=prod npm run cdk:deploy:prod
Full walkthrough in docs/DEPLOY.md.
npm test # run all 3,368 unit tests
npm run test:integration # requires LocalStack + testnet RPC
npm run test:coverage # coverage report (target ≥80% on services/ and middleware/)
CLAUDE.md — development conventions and non-negotiables (read before contributing)openapi.yaml — full API specificationdocs/DEPLOY.md — CDK deployment guidedocs/RUNBOOK.md — operational runbook (alerts, incident response)docs/integration-guide.md — 5-minute API integration walkthroughdocs/adr/ — architecture decision recordspackages/mcp-fetch/README.md — MCP server for AI agentsSee CLAUDE.md for the full security posture.
This is a working open-source x402 reference gateway. PRs welcome. Before opening one:
npm run lint must pass with zero warningsnpm test must pass all 3,368 testsnpm audit --audit-level=high must return 0CLAUDE.md)MIT — free for commercial and personal use.
Links
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.