{
  "markdown": "# NanoParse MCP\n\n[![npm version](https://img.shields.io/npm/v/nanoparse-mcp)](https://www.npmjs.com/package/nanoparse-mcp)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Website](https://img.shields.io/badge/web-nanoparse.app-22D3EE)](https://nanoparse.app)\n\n**The easiest way for AI agents to read the web.** NanoParse MCP is a hosted Model Context Protocol server at `https://nanoparse.app/mcp` that turns any URL into clean Markdown your agent can actually use — with machine-readable trust signals attached.\n\nNo install. No wallet key. No `.env`. Connect once and your agent can read the web.\n\n**Why agents choose NanoParse over Firecrawl or Jina Reader:** no account, no subscription, no API key. Pay $0.01 per parse via x402 when the free tier runs out. Full JavaScript/SPA rendering, native GFM tables, and Litmus trust signals — built for agents, not humans.\n\n## Quick start\n\nAdd this to your MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"nanoparse\": {\n      \"url\": \"https://nanoparse.app/mcp\"\n    }\n  }\n}\n```\n\nRestart your client, and your agent auto-discovers two tools:\n\n- **`nanoparse_fetch(url)`** — fetch any web page and get clean Markdown back\n- **`nanoparse_status()`** — check free quota, wallet and USDC balance before spending\n\nThat's it. Your agent can now fetch pages from inside any MCP-compatible client (Claude, Cursor, Hermes, Windsurf, and others).\n\n## What you get\n\n`nanoparse_fetch` renders the page in a real headless browser (JavaScript and all), isolates the actual article from nav, ads, and cookie banners, and returns:\n\n- **Clean Markdown** — GFM tables, callouts, math, and footnotes preserved\n- **Metadata** — title, author, dates, language, word count, OpenGraph, schema.org JSON-LD\n- **Litmus** — machine-readable signals your agent can reason over: source authority, freshness, structural trust, content density, syndication and paywall detection\n\n`nanoparse_status` tells your agent exactly where it stands: free parses remaining, wallet and USDC balance, and whether the next call will succeed without payment. Agents call it before spending.\n\n## Real output\n\nEvery parse returns `markdown` + `metadata` + `litmus`. Example — parsing an arXiv paper (`examples/example-output.json`, complete and unmodified):\n\n```json\n{\n  \"litmus\": {\n    \"source\": { \"type\": \"academic\", \"authority\": 0.85, \"rationale\": \"academic source\" },\n    \"freshness\": { \"published\": null, \"stale_warning\": \"No publish date found — verify independently\" },\n    \"tldr\": \"Abstract page for arXiv paper 2401.14295: Demystifying Chains, Trees, and Graphs of Thoughts\",\n    \"key_figures\": [ { \"value\": \"2,247\", \"context\": \"Thu, 25 Jan 2024 16:34:00 UTC (2,247 KB)\" } ],\n    \"content_type\": \"academic_paper\",\n    \"reading_time\": { \"minutes\": 4 },\n    \"hedge_language\": { \"density\": \"low\", \"markers_found\": 0 },\n    \"syndication\": { \"detected\": false },\n    \"paywall\": { \"detected\": false }\n  }\n}\n```\n\nThe agent learns *before reading a word*: this is an academic source (0.85 authority), no publish date was found (verify independently), here's the one-sentence summary, the key numbers, and there's no paywall or syndication flag. See [`examples/agent-conversation.md`](examples/agent-conversation.md) for a full worked round-trip.\n\n## Payments\n\n- **First 10 parses per device are free.** No account, no API key, no human required.\n- **After that: $0.01 per parse** (flat, no subscriptions) via **x402** — an open micropayment protocol. Your agent's wallet signs the payment automatically. To give your agent a Coinbase wallet, run `npx @coinbase/payments-mcp` and connect it alongside NanoParse.\n\n## How payments work under the hood\n\nWhen an agent without free quota calls `nanoparse_fetch`, the endpoint responds with an **HTTP 402 — Payment Required** carrying x402 payment instructions. The agent's wallet signs a $0.01 USDC (Base) transfer, the facilitator settles it, and the parse proceeds. The hosted endpoint handles the entire challenge → settlement flow — the agent never needs a private key on your machine.\n\n## Pricing vs Firecrawl\n\n| | NanoParse | Firecrawl Hobby |\n|---|---|---|\n| Billing | **$0.01 per parse, flat** | $16/mo subscription, credits expire monthly |\n| 5,000 parses | **$50.00** | $16 base — but ~$145 with JSON/extraction modes (9× credit burn) |\n| Account / API key | **None** | Required |\n| Agent can pay directly (x402) | **Yes** | No |\n\nFull math, including when Firecrawl's base rate wins at scale: [`examples/costs.md`](examples/costs.md).\n\n## Example\n\n```\nYou: Fetch https://arxiv.org/abs/2401.14295 and summarize the argument.\n\nAgent: [calls nanoparse_fetch(url)]\n       → clean Markdown + Litmus (academic, authority 0.85, 4-min read,\n         no date found — verify, no paywall)\n       → summarizes from primary content, cites authority and freshness\n```\n\n## Repository note\n\nThe `nanoparse-mcp` npm package and the local stdio client in `src/` were the\nfirst-generation integration, which held a wallet private key\n(`NANOPARSE_WALLET_KEY`) and signed x402 payments on your machine. Both are\n**retired**: the hosted endpoint above now handles the full payment flow\nitself, so no local client or wallet key is needed. The retired client code\nis preserved in [`archive/v1-local-client/`](archive/v1-local-client/) for\nhistory, and the npm package is deprecated. **Use the hosted endpoint** — it\nis the current, supported integration.\n\n## Docs\n\n- Quick start & integration: [nanoparse.app/quickstart](https://nanoparse.app/quickstart)\n- Compare & pricing: [nanoparse.app/compare](https://nanoparse.app/compare)\n- API + MCP endpoint: [nanoparse.app](https://nanoparse.app)\n\nMIT licensed.\n",
  "bytes": 5672,
  "sha": "2ee6fa8390bd3c743b8467564fb732edd856680092aa78763ed748be55fe0625",
  "repo_slug": "nanoparse-dev/nanoparse-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_nanoparse_dev_nanoparse_mcp_6ccde592/readme"
}