Skip to main content
Glama

ReadFetch

readfetch_batch

Read-only

Read a fixed list of public HTML pages in one call—the same article extraction as POST /v1/text for each URL (Markdown or plain text plus title and metadata). One x402 payment covers the batch (minimum 10 pages quoted; URLs deduped, max 50). Returns results in input order: each item has url, status_code, text, billed, and hint when undelivered, plus batch-level delivered, failed, billed_pages, and optional credit for unused pages. Undelivered pages are not billed. Use readfetch_text for one URL, readfetch_map then readfetch_crawl to discover and walk a site, readfetch_scrape when JavaScript is required. Read-only; 402 without PAYMENT-SIGNATURE like other paid tools.

Input Schema

NameRequiredDescriptionDefault
urlsYesURLs to read, deduped before quoting.
freshNoWhen true, bypass cached responses for each item (default false).
formatNoPer-item output flavour, same as /v1/text: markdown (default) or plain text.markdown
pipelineNotext (default) = HTTP-first per URL, same as readfetch_text; use render when probe reported challenge:true or items need JavaScript — bills like scrape per undelivered page, not like plain text.text
timeout_sNoTotal budget for the whole batch in seconds; every item shares it and no item restarts it.
accept_languageNoAccept-Language header for every item, e.g. 'de-DE,de;q=0.9'. Defaults to en-US when omitted.

Output Schema

NameRequiredDescriptionDefault
creditNo
failedNo
statusNo
resultsNo
deliveredNo
billed_pagesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / results / items / properties / hint / type
      Previous value: -"null"New value: +[
      +  "string",
      +  "null"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / pipeline / description
      Previous value: -"text = HTTP-first; render needs the browser tier."New value: +"text (default) = HTTP-first per URL, same as readfetch_text; use render when probe reported challenge:true or items need JavaScript — bills like scrape per undelivered page, not like plain text."
  3. Changed4 schema fields changed
    • addedInput schema / properties / accept_language / description
      Added value: +"Accept-Language header for every item, e.g. 'de-DE,de;q=0.9'. Defaults to en-US when omitted."
    • addedInput schema / properties / format / description
      Added value: +"Per-item output flavour, same as /v1/text: markdown (default) or plain text."
    • addedInput schema / properties / fresh / description
      Added value: +"When true, bypass cached responses for each item (default false)."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "billed_pages": {
      +      "type": "integer"
      +    },
      +    "credit": {
      +      "type": "string"
      +    },
      +    "delivered": {
      +      "type": "integer"
      +    },
      +    "failed": {
      +      "type": "integer"
      +    },
      +    "results": {
      +      "items": {
      +        "properties": {
      +          "billed": {
      +            "type": "boolean"
      +          },
      +          "content_sha256": {
      +            "type": "string"
      +          },
      +          "hint": {
      +            "type": "null"
      +          },
      +          "requested_url": {
      +            "format": "uri",
      +            "type": "string"
      +          },
      +          "status_code": {
      +            "type": "integer"
      +          },
      +          "text": {
      +            "type": "string"
      +          },
      +          "title": {
      +            "type": "string"
      +          },
      +          "url": {
      +            "format": "uri",
      +            "type": "string"
      +          },
      +          "used_browser": {
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • removedInput schema / properties / egress
      Removed value: -{
      -  "description": "Exit to leave through: `direct` (this service's own datacentre egress) or `residential` (a residential address pool, for targets that refuse datacentre addresses). Omit to use the default route.",
      -  "title": "Egress",
      -  "type": "string"
      -}
  5. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint, but the description adds the billing model (one x402 payment, minimum 10 pages quoted, undelivered pages not billed, optional credit for unused pages), the dedupe/50-URL cap, and that render-mode items bill like scrape. These are material behaviors an agent cannot infer from the annotations or schema.

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 with the core action and payment constraint, then alternatives, then return shape — a sensible ordering. It is dense and somewhat long for a single paragraph, but nearly every clause carries distinct information.

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 6-parameter paid batch tool with an output schema, the description covers cost, limits, ordering, per-item and batch-level fields, and failure handling. Nothing an agent needs in order to call it correctly or interpret partial failure 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 the baseline is 3, but the description adds billing semantics behind the pipeline choice ('bills like scrape per undelivered page, not like plain text') and quoting behavior tied to dedupe that the schema does not convey. It does not restate per-parameter details, which is appropriate.

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 a fixed list of public HTML pages in one call — and pins the equivalence to POST /v1/text per URL with Markdown or plain text plus title/metadata. The batch scope (dedupe, max 50) distinguishes it cleanly from readfetch_text and readfetch_crawl.

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

Usage Guidelines5/5

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

Explicitly routes the agent: readfetch_text for one URL, readfetch_map then readfetch_crawl to discover and walk a site, readfetch_scrape when JavaScript is required. It also states the prerequisite (402 without PAYMENT-SIGNATURE) so the agent knows what is needed before calling.

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.

Resources