Skip to main content
Glama

read_url

Read-only

Returns a public page or PDF as Markdown, in chunks, with a paid upgrade link. Use when an agent needs one URL's readable text. Not for JavaScript-only pages or crawling whole sites; use the linked paid tool for those. Default chunk is 20,000 characters; start_index reads later chunks within the free 100,000-character window. On long pages, call outline (headings) or find (matching paragraphs) first, then read the needed section with start_index. Apify Actor links can be paid with x402 via Apify, no Apify account needed.

Input Schema

NameRequiredDescriptionDefault
urlYesPublic HTTP(S) URL to read.
findNoReturn only paragraphs containing any of these space-separated words (case-insensitive), each with its start_index. Overrides outline.
outlineNoReturn only the page's Markdown headings, each with its start_index.
max_charsNo
start_indexNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / find
      Added value: +{
      +  "description": "Return only paragraphs containing any of these space-separated words (case-insensitive), each with its start_index. Overrides outline.",
      +  "maxLength": 100,
      +  "minLength": 2,
      +  "type": "string"
      +}
    • addedInput schema / properties / outline
      Added value: +{
      +  "default": false,
      +  "description": "Return only the page's Markdown headings, each with its start_index.",
      +  "type": "boolean"
      +}
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only say readOnlyHint/openWorldHint; the description adds the material behavior: chunked output, a 20,000-character default chunk, a 100,000-character free window, a paid upgrade link, and an x402 payment path requiring no Apify account. Rate/limit and payment semantics are exactly the kind of context annotations cannot carry.

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?

Purpose and scope are front-loaded in the first two sentences, and every remaining sentence carries the paging workflow or payment detail. It is fairly dense and the closing x402 sentence is specialized, but it is not padding — it answers an auth question an agent would otherwise hit.

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?

There is no output schema, and the description covers return shape (Markdown chunks with indices, outline/find variants) and cost boundaries, so the essential calling information is present. It stops short of describing failure modes (non-public URLs, non-HTML content, what the paid-upgrade link looks like in the payload).

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?

With only 60% schema description coverage, the description meaningfully compensates: it explains what start_index does (reads later chunks inside the free window) and states max_chars' default and purpose. It does not mention max_chars' 50,000 ceiling or error behavior for out-of-range values, and find/outline semantics are already fully documented in the schema.

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 opening sentence names a specific verb and resource plus the return format: 'Returns a public page or PDF as Markdown, in chunks.' It goes further and scopes what this tool is *not* for (JavaScript-only pages, whole-site crawling), which separates it from siblings like smart_fetch, convert_html and extract_article.

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?

Explicit when-to-use ('one URL's readable text'), explicit when-not ('Not for JavaScript-only pages or crawling whole sites'), and it names the alternative for the excluded cases plus a recommended two-step workflow (outline/find first, then start_index). No routing inference is left to the agent.

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