NanoParse

Official registry Productivity

Clean Markdown from any URL with Litmus trust signals. $0.005 per page via x402, no account.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

Remote (streamable-http)
Claude Code
claude mcp add --transport http nanoparse 'https://nanoparse.app/mcp'
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "nanoparse": {
            "type": "http",
            "url": "https://nanoparse.app/mcp"
        }
    }
}

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. NanoParse MCP
  2. Quick start
  3. What you get
  4. Real output
  5. Payments
  6. How payments work under the hood
  7. Pricing vs Firecrawl
  8. Example
  9. Repository note
  10. Docs

NanoParse MCP

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.

No install. No wallet key. No .env. Connect once and your agent can read the web.

Why agents choose NanoParse over Firecrawl or Jina Reader: every page comes back with Litmus — 20 machine-readable signals that tell your agent whether to trust and cite the page before it reads a word. Pay $0.005 per parse via x402 once the free tier runs out. Full JavaScript/SPA rendering, native GFM tables. No account, no subscription, no API key.

Quick start

Add this to your MCP client config:

{
  "mcpServers": {
    "nanoparse": {
      "url": "https://nanoparse.app/mcp"
    }
  }
}

Restart your client, and your agent auto-discovers two tools:

  • nanoparse_fetch(url) — fetch any web page and get clean Markdown back
  • nanoparse_status() — check free quota, wallet and USDC balance before spending

That's it. Your agent can now fetch pages from inside any MCP-compatible client (Claude, Cursor, Hermes, Windsurf, and others).

What you get

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:

  • Clean Markdown — GFM tables, callouts, math, and footnotes preserved
  • Metadata — title, author, dates, language, word count, OpenGraph, schema.org JSON-LD
  • Litmus — machine-readable signals your agent can reason over: source authority, freshness, structural trust, content density, syndication and paywall detection

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.

Real output

Every parse returns markdown + metadata + litmus. Here is the full litmus object from a real parse of an arXiv paper (examples/example-output.json — markdown truncated there, litmus complete and unmodified):

{
  "litmus": {
    "source": { "type": "academic", "authority": 0.85, "rationale": "academic source" },
    "freshness": { "published": null, "age": "unknown", "stale_warning": "No publish date found — verify independently", "modified": null, "has_correction": false, "correction_note": null },
    "tldr": "Abstract page for arXiv paper 2401.14295: Demystifying Chains, Trees, and Graphs of Thoughts",
    "key_figures": [ { "value": "2,247", "context": "Thu, 25 Jan 2024 16:34:00 UTC (2,247 KB)" } ],
    "structural_trust_score": { "level": "medium", "trust_factors": ["High-authority source", "No publish date found — verify independently"] },
    "hedge_language": { "density": "low", "markers_found": 0, "per_500_words": 0 },
    "content_density": { "thin_content": false, "substantive_sentence_ratio": 0.76 },
    "syndication": { "detected": false, "note": null },
    "paywall": { "detected": false, "note": null },
    "content_type": "academic_paper",
    "reading_time": { "minutes": 4 },
    "is_archived": { "archive_org": true, "archive_is": false },
    "outbound_authority": { "score": 0.54, "top_domains": ["ui.adsabs.harvard.edu", "scholar.google.com"] },
    "boilerplate_ratio": { "ratio": 0.08, "confidence": "high" }
  }
}

The agent learns before reading a word: this is an academic source (0.85 authority), structural trust is medium — high authority, but no publish date found, so verify independently. It also gets the one-sentence summary, the key numbers, and confirmation there's no paywall or syndication flag. See examples/agent-conversation.md for a full worked round-trip.

Payments

  • 10 free parses per month with a signed wallet (sign the claim message — no payment), or 3 anonymous free tries per network. No account, no API key, no human required.
  • After that: $0.005 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.

Copy-paste recipe for both paths — the wallet-MCP one with no code, and a ~40-line REST client — including the exact 402 → sign → retry loop and the error codes worth branching on: examples/pay-with-x402.md.

How payments work under the hood

When 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.005 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.

Pricing vs Firecrawl

NanoParseFirecrawl Hobby
Billing$0.005 per parse, flat$16/mo subscription, credits expire monthly
5,000 parses$25.00$16 base — but ~$145 with JSON/extraction modes (9× credit burn)
Account / API keyNoneRequired
Agent can pay directly (x402)YesNo

Full math, including when Firecrawl's base rate wins at scale: examples/costs.md.

Example

You: Fetch https://arxiv.org/abs/2401.14295 and summarize the argument.

Agent: [calls nanoparse_fetch(url)]
       → clean Markdown + Litmus (academic, authority 0.85, 4-min read,
         no date found — verify, no paywall)
       → summarizes from primary content, cites authority and freshness

Repository note

The nanoparse-mcp npm package and the local stdio client were the first-generation integration, which held a wallet private key (NANOPARSE_WALLET_KEY) and signed x402 payments on your machine. Both are retired: the hosted endpoint above now handles the full payment flow itself, so no local client or wallet key is needed. The retired client code is preserved in archive/v1-local-client/ for history, and the npm package is deprecated. Use the hosted endpoint — it is the current, supported integration.

Docs

MIT licensed.

Frequently asked questions

What is NanoParse?

Clean Markdown from any URL with Litmus trust signals. $0.005 per page via x402, no account.

How do I install NanoParse?

It runs as a remote server. In Claude Code: claude mcp add --transport http nanoparse 'https://nanoparse.app/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.

Does NanoParse need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is NanoParse open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains NanoParse?

It is published by nanoparse-dev. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.