Skip to main content
Glama

Read pages

read_pages

Reads up to 20 web pages or documents (PDF, Word, Excel) live and returns each one's main text, as Markdown (format markdown, the default) or plain text (format text), with its title and the date it says it was published. Each result has status: ok, blocked, not_found, empty, unsupported, invalid_url or failed, and read_from: live, or site or archive when the page refused a live read and its site's feed or its newest archive capture gave the text (captured_at says when). A page is charged only when its status is ok, $0.0008 a page from the account's balance, with no quote or approval. It reads the pages a fast search returned or URLs the user gives.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "read_pages"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlsNo
pagesNo
formatNomarkdown
includeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / include
      Added value: +{
      +  "items": {
      +    "enum": [
      +      "html",
      +      "links",
      +      "response"
      +    ],
      +    "type": "string"
      +  },
      +  "title": "Include",
      +  "type": "array"
      +}
  2. Changed1 schema field changed
    • changedInput schema / $defs / ExtractHtml / description
      Previous value: -"A page you already hold, sent as its HTML. Nothing is fetched."New value: +"A page already held by the caller, sent as its HTML. Nothing is fetched."
  3. Changed4 schema fields changed
    • addedInput schema / $defs
      Added value: +{
      +  "ExtractHtml": {
      +    "additionalProperties": false,
      +    "description": "A page you already hold, sent as its HTML. Nothing is fetched.",
      +    "properties": {
      +      "html": {
      +        "maxLength": 8388608,
      +        "minLength": 1,
      +        "title": "Html",
      +        "type": "string"
      +      },
      +      "url": {
      +        "anyOf": [
      +          {
      +            "maxLength": 2048,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Url"
      +      }
      +    },
      +    "required": [
      +      "html"
      +    ],
      +    "title": "ExtractHtml",
      +    "type": "object"
      +  }
      +}
    • addedInput schema / properties / pages
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/ExtractHtml"
      +  },
      +  "maxItems": 20,
      +  "title": "Pages",
      +  "type": "array"
      +}
    • removedInput schema / properties / urls / minItems
      Removed value: -1
    • removedInput schema / required
      Removed value: -[
      -  "urls"
      -]
  4. Added

TDQS

A4.3/5.0
Behavior5/5

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

The description goes well beyond the annotations by disclosing the per-page price ($0.0008), that charging only occurs on status ok, that no quote or approval is required, and the full status/read_from vocabulary including the fallback to site feeds or archive captures. This also explains why readOnlyHint is false despite being a read tool — it consumes account balance.

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?

It is one dense, front-loaded paragraph where nearly every clause carries new information (limits, cost, statuses, fallbacks, sources). The single sentence is very long and could be split for readability, which keeps it from a 5.

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?

With no output schema, the description correctly enumerates the result fields (status values, read_from, captured_at, title, date) that an agent needs to interpret responses. The main gap is the include parameter and the pre-supplied pages input, neither of which is described behaviorally.

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 description coverage is 0%, so the description must compensate. It explains the format enum and its default well, and the nested pages schema carries its own description, but the include parameter (html, links, response) is left entirely unexplained in both places, and urls is only implied.

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?

The description opens with a specific verb and resource ('Reads up to 20 web pages or documents'), names the supported formats (PDF, Word, Excel) and output shape (Markdown/plain text). An agent can immediately tell this is a live page-fetch-and-extract tool rather than a search tool.

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?

The closing sentence gives explicit usage context: 'It reads the pages a fast search returned or URLs the user gives,' which ties the tool to the search workflow. It does not name a sibling alternative or state exclusions, so it stops short of a 5.

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.