Skip to main content
Glama

nanoparse_fetch

Read-only

Read one URL into clean Markdown with Litmus signals (source authority, freshness, structural trust). Price: $0.005 per page actually read, USDC on Base via x402. Free tier: 10 free parses a month, no account and no key. On a cloud host (where the anonymous allowance does not apply) pass wallet_address + wallet_signature once — a plain EIP-191 signature, no payment — to claim the same 10. A page we cannot read — bot wall, consent wall, paywall, PDF — is reported with a named reason and never charged. To read a whole site or a list: call this tool once per URL. Build your list first (GET https:///sitemap.xml, or use URLs you already have), then loop. No minimum, no commitment, no balance to spend down: stop whenever you like. If you already know the price and the payTo address, pay on the first call and skip the 402 round trip. Otherwise, when the tool returns a payment_required error, sign the included payment_terms and retry with the payment_signature argument (works in every MCP client; no custom headers needed).

Input Schema

NameRequiredDescriptionDefault
urlYesThe URL to fetch and parse
wallet_addressNoYour wallet address (0x...) to claim the free tier — no payment needed.
wallet_signatureNoEIP-191 personal_sign signature (0x... hex, 65 bytes r||s||v) over the exact string "nanoparse.app free tier: sign this message to claim 10 free parses (no payment).". Proves you own wallet_address and unlocks 10 free parses per month.
payment_signatureNox402 payment signature — base64-encoded JSON payment terms. Only needed after the free tier is exhausted: the payment_required error response includes the payment_terms to sign. Pass the signed terms here (or as a Payment-Signature header if your client supports headers).

Output Schema

NameRequiredDescriptionDefault
contentNoArray of content items returned by the tool

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / wallet_address
      Added value: +{
      +  "description": "Your wallet address (0x...) to claim the free tier — no payment needed.",
      +  "type": "string"
      +}
    • addedInput schema / properties / wallet_signature
      Added value: +{
      +  "description": "EIP-191 personal_sign signature (0x... hex, 65 bytes r||s||v) over the exact string \"nanoparse.app free tier: sign this message to claim 10 free parses (no payment).\". Proves you own wallet_address and unlocks 10 free parses per month.",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • removedOutput schema / required
      Removed value: -[
      -  "content"
      -]
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnly/openWorld/non-idempotent/non-destructive, and the description adds everything an agent actually needs on top: $0.005 per page read, 10 free parses per month with no key, cloud-host wallet attestation via plain EIP-191 with no payment, and the crucial guarantee that unreadable pages (bot wall, consent wall, paywall, PDF) return a named reason and are never charged. The per-call billing also implicitly explains the non-idempotent hint, since a retry costs another page.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded correctly — what it does, what it costs, then the auth and payment mechanics — and most sentences carry distinct operational facts. It is longer than ideal, with mild redundancy between the free-tier sentence and the cloud-host wallet-claim sentence, plus a marketing-ish 'no minimum, no commitment, no balance to spend down' clause that could be cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paid, auth-gated, open-world fetch tool with 100% schema coverage and an output schema handling return shape, the description covers every decision point an agent faces: cost, free allowance, host-dependent auth, batching strategy, failure-mode billing, and the full x402 retry loop. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters are self-documenting and the baseline is 3. The description earns an increment by giving the sequencing the schema cannot: payment_signature is normally obtained by reading payment_terms out of a payment_required error response, and wallet_address/wallet_signature are a one-time claim rather than per-call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read one URL into clean Markdown with Litmus signals') and immediately bounds the scope by contrasting it with site-wide or list reads, which must loop one URL per call. An agent knows exactly what unit of work this performs, and the name plus that scope statement distinguish it from the status sibling without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit invocation routing: use wallet_address + wallet_signature on cloud hosts to claim the free tier, pay on the first call if price and payTo are known, otherwise sign the payment_terms from the returned payment_required error and retry. It does not mention when to consult the nanoparse_status sibling, so the alternative-selection guidance is strong on the payment path but incomplete on the sibling path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.