About ExtractEdge
ExtractEdge is a web-page extraction service for AI agents that converts page content into clean markdown. It offers an MCP endpoint, a capped free demo, and paid extraction through x402.
Key features
- 01Main-content detection
- 02HTML to markdown conversion
- 03JSON and binary response handling
- 04Redirects and request limits
- 05Free capped demo extraction
- 06x402 pay-per-use extraction
Use cases
- 01Convert a web page into markdown for an agent
- 02Extract article content without page navigation elements
- 03Try limited extraction without payment
- 04Request full extraction with x402
MCP support
Its Streamable HTTP MCP endpoint exposes an `extract` tool that accepts a URL and can return capped demo markdown.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://extractedge.lastunmihai1986.workers.dev/mcpclaude mcp add --transport http vasilicasijarvis-extractedge https://extractedge.lastunmihai1986.workers.dev/mcp{"mcpServers":{"vasilicasijarvis-extractedge":{"type":"http","url":"https://extractedge.lastunmihai1986.workers.dev/mcp"}}}Open in Cursor{"servers":{"vasilicasijarvis-extractedge":{"type":"http","url":"https://extractedge.lastunmihai1986.workers.dev/mcp"}}}Open in VS Code{"mcpServers":{"vasilicasijarvis-extractedge":{"type":"http","url":"https://extractedge.lastunmihai1986.workers.dev/mcp"}}}{"mcpServers":{"vasilicasijarvis-extractedge":{"serverUrl":"https://extractedge.lastunmihai1986.workers.dev/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEExtractEdge
Firecrawl-lite: turn any web page into clean LLM-ready markdown. Fast, cheap, crypto-native. Live: https://extractedge.lastunmihai1986.workers.dev
Why
Firecrawl starts at $16/mo for ~1k credits and requires signup + API key. ExtractEdge is $0.001/extract pay-per-use over x402 (USDC on Base mainnet), no signup, no API key — designed for AI agents.
Quick start (free demo)
curl -X POST "https://extractedge.lastunmihai1986.workers.dev/extract?demo=1" \
-H "content-type: application/json" \
-d '{"url":"https://example.com"}'
Free demo returns up to 3,000 chars of the page as markdown. No payment needed.
Paid extraction (x402, USDC on Base)
POST /extract {"url":"https://target.page"}→ 402 withPAYMENT-REQUIREDheader (base64 JSON)- Sign an EIP-3009
transferWithAuthorizationfor 1000 atomic units (0.001 USDC) on Base- asset:
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913(USDC) - payTo:
0xa1b8be63bde77ddc65d9ffe8a21a2a5f2c9ca6a8
- asset:
- Retry with the
PAYMENT-SIGNATUREheader (base64PaymentPayloadJSON) → 200 with full markdown +PAYMENT-RESPONSEreceipt
Python client example: see scripts/e2e_paid2.py (eth_account EIP-712 signing, ~40 lines).
MCP server
Streamable HTTP MCP endpoint (JSON-RPC 2.0):
https://extractedge.lastunmihai1986.workers.dev/mcp
tools/list→extracttooltools/call extract {"url":"...", "demo":true}→ free capped markdown- Listed on Smithery: https://smithery.ai/server/admin-qnk4/extractedge
REST endpoints
| Endpoint | Description |
|---|---|
POST /extract | Paid extraction (x402) or free demo (?demo=1 / X-ExtractEdge-Demo header) |
POST /mcp | MCP JSON-RPC (initialize / tools/list / tools/call / ping) |
GET /.well-known/x402.json | Payment discovery |
GET /.well-known/agent-registration.json | ERC-8004 agent registration file |
GET / | Service info |
Response shape
{
"success": true,
"format": "markdown",
"content": "# Page title\n\nClean markdown...",
"textContent": "plain text variant",
"metadata": {
"title": "Page title", "description": "meta description",
"source": "https://final.url/", "statusCode": 200,
"contentLength": 48211, "fetchMs": 731,
"links": ["https://..."]
},
"payment": {"payer": "0x...", "transaction": "0x...", "amount": "1000"}
}
Features
- Main-content detection (scores article/main/div candidates by text density, drops nav/footer/ads)
- HTML → markdown: headings, bold/italic, links (reference-style), images, ordered/unordered lists (nested), code blocks, blockquotes, tables (GFM), hr
- Entity decoding (named + numeric), script/style/svg stripped
- JSON endpoints returned pretty-printed; binary resources answered with a notice
- Redirect following (≤5), 15s timeout, 3MB cap, per-IP demo rate limit (20/min)
- CORS enabled; abuse control on demo lane only — paid lane unlimited
Architecture
Single Cloudflare Worker (stdlib-only, zero npm deps):
src/index.js— router + info endpointssrc/extract.js— fetch pipeline (timeout, redirects, content-type dispatch)src/md.js— HTMLRewriter → DOM tree → markdown/text + main-content scoringsrc/x402.js— x402 v2 gate: 402/PAYMENT-REQUIRED, EIP-3009 verify+settle via Coinbase CDP facilitator (Ed25519 JWT per request), Bazaar discovery declarationsrc/mcp.js— MCP Streamable HTTP server (JSON-RPC 2.0)
Pricing comparison
| Firecrawl | ExtractEdge | |
|---|---|---|
| Entry price | $16/mo (~1k credits) | $0 pay-per-use |
| Per page | ~$0.016 | $0.001 |
| Signup/API key | required | none |
| Payment | card | USDC on Base (x402) |
| Agent-native (MCP) | hosted | MCP + x402 + Bazaar |
Status
- Worker live on
extractedge.lastunmihai1986.workers.dev(global edge) - 3 real settled payments on Base mainnet (tx receipts verified on-chain)
- MCP published on Smithery (
admin-qnk4/extractedge)
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.