Skip to main content
Glama

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 64 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
nanoparse-dev/nanoparse-mcp
GitHub Stars
0
Server Listing
nanoparse-mcp
ChatGPT
–
Claude
–

TDQS

A4.2/5.0

Scored across 2 tools

Disambiguation5/5

nanoparse_fetch reads a URL; nanoparse_status inspects wallet/quota state. The two verbs target entirely different concerns and the descriptions reinforce the split (status is explicitly a pre-flight check for fetch). No plausible misselection between them.

Naming Consistency4/5

Both tools share the nanoparse_ prefix and snake_case, which is clean and predictable. The only wrinkle is that 'status' is a noun while 'fetch' is a verb, so the action pattern isn't uniform, but it's readable and conventional.

Tool Count3/5

Two tools is on the thin side — essentially one core operation plus a helper/diagnostics call. For a single-purpose paid fetch service this is defensible, but the surface offers little beyond the minimum.

Completeness4/5

The domain (fetch a page as Markdown with trust signals, plus pre-flight payment/quota awareness) is fully covered: the paid-read lifecycle and the cost-check are both present, and error/reason reporting is described. Missing niceties like batch fetch or sitemap discovery are acknowledged with a documented single-URL loop workaround, so no dead ends.

Available Tools

2 tools
nanoparse_fetchA
Read-only
Inspect

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).

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

NameRequiredDescription
contentNoArray of content items returned by the tool

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.

nanoparse_statusA
Read-onlyIdempotent
Inspect

Check wallet balance, USDC balance, quota state, and whether the next /fetch call will succeed without payment. Use before spending — tells the agent exactly how much to fund.

NameRequiredDescriptionDefault
addressNoThe Ethereum wallet address to query (0x...).

Output Schema

NameRequiredDescription
quotaYes
funding_uriNo
usdc_balanceYes
balance_errorNo
balance_knownNo
wallet_addressYes
price_per_parseYes
usdc_balance_rawNoBalance in micro-USDC; null when the chain could not be read
next_call_will_succeedNonull when the free tier is exhausted and the balance is unknown
estimated_parses_remainingNonull when the balance is unknown — never 0, which would imply an empty wallet

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive, open-world behavior, so the bar is lower. The description adds real value by framing this as a predictive pre-flight check (will the next call succeed without payment) rather than a plain status read, though it says nothing about auth requirements, caching, or staleness of the quota reading.

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

Conciseness5/5

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

Two tight sentences, no filler, with the enumeration of what is checked front-loaded ahead of the usage directive. Every clause carries information.

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

Completeness4/5

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

Output schema exists, so return fields need not be re-explained, and annotations cover the safety profile. The one real gap is the optional 0-required-parameter address: the description never clarifies whether omitting it falls back to a configured/default wallet.

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

Parameters3/5

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

Schema coverage is 100% for the single address parameter, so the schema already documents it fully. The description adds no address-format or default-behavior detail — notably it never explains what happens when address is omitted, which the schema marks as not required.

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?

Specific verb (check) plus concrete resources (wallet balance, USDC balance, quota state) and a forward-looking outcome (whether the next /fetch will succeed without payment). Naming the /fetch call explicitly separates it from the sibling nanoparse_fetch.

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?

"Use before spending" gives a clear situational trigger and the reason (to know how much to fund). It stops short of stating when not to call it or contrasting the cost of calling it vs. skipping, but the pre-flight role is unambiguous.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changednanoparse_fetch2 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. 1 tool update
    • Changednanoparse_fetch1 field changed
      • removedOutput schema / required
        Removed value: -[
        -  "content"
        -]
  3. 1 tool update
    • Changednanoparse_status14 fields changed
      • addedOutput schema / description
        Added value: +"Machine-readable status fields. This schema describes structuredContent — strict MCP clients validate structuredContent against it, so it must NOT require the result-envelope `content` array."
      • addedOutput schema / properties / balance_error
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / balance_known
        Added value: +{
        +  "type": "boolean"
        +}
      • removedOutput schema / properties / content
        Removed value: -{
        -  "description": "Human-readable status report as text content",
        -  "items": {
        -    "properties": {
        -      "text": {
        -        "description": "Multi-line status report: wallet, USDC balance, price, estimated parses, free tier, funding URI",
        -        "type": "string"
        -      },
        -      "type": {
        -        "enum": [
        -          "text"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "type",
        -      "text"
        -    ],
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / estimated_parses_remaining
        Added value: +{
        +  "description": "null when the balance is unknown — never 0, which would imply an empty wallet",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / funding_uri
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / next_call_will_succeed
        Added value: +{
        +  "description": "null when the free tier is exhausted and the balance is unknown",
        +  "type": [
        +    "boolean",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / price_per_parse
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / quota
        Added value: +{
        +  "type": "object"
        +}
      • removedOutput schema / properties / structuredContent
        Removed value: -{
        -  "description": "Machine-readable status fields",
        -  "properties": {
        -    "balance_error": {
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "estimated_parses_remaining": {
        -      "type": "number"
        -    },
        -    "funding_uri": {
        -      "type": "string"
        -    },
        -    "next_call_will_succeed": {
        -      "type": "boolean"
        -    },
        -    "price_per_parse": {
        -      "type": "string"
        -    },
        -    "quota": {
        -      "type": "object"
        -    },
        -    "usdc_balance": {
        -      "type": "string"
        -    },
        -    "usdc_balance_raw": {
        -      "type": "string"
        -    },
        -    "wallet_address": {
        -      "type": "string"
        -    }
        -  },
        -  "type": "object"
        -}
      • addedOutput schema / properties / usdc_balance
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / usdc_balance_raw
        Added value: +{
        +  "description": "Balance in micro-USDC; null when the chain could not be read",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / wallet_address
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "content"
        -]New value: +[
        +  "wallet_address",
        +  "usdc_balance",
        +  "price_per_parse",
        +  "quota"
        +]
  4. 2 tool updates
    • First observednanoparse_fetch
    • First observednanoparse_status

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables extracting clean, structured markdown from any URL—stripping nav, ads, and scripts—for RAG pipelines and AI research agents, with pay-per-call micropayments via x402.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables extracting clean Markdown from any webpage by paying $0.005 USDC per call via the x402 protocol, with automatic wallet-based payment settlement.
    9 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Pay-per-use clean web reader for AI agents. URL in, markdown plus metadata out, in milliseconds. Settled per-call in USDC over x402 — no signup, no API keys.
    1
    115 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents and MCP clients to inspect a URL for reachability, then extract clean structured Markdown, headings, and links from public web pages, paid per successful request via x402 micropayments with no accounts or API keys.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.