Skip to main content
Glama

Read a web page (clean markdown)

web_read
Read-onlyIdempotent

Any public URL → clean readable markdown: the article/main content without nav, ads or boilerplate, plus title, author, date, word count and links. PDFs too. Fetches the page (redirects followed, public internet only), extracts the main content with Mozilla Readability and converts it to markdown. PDFs are converted to text. Use max_chars to bound the output. JavaScript-only pages return whatever the server sends (no headless browser). Price: $0.002 per call (10 free/day).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYeshttp(s) URL
max_charsNo
include_linksNokeep hyperlinks (absolute) in the markdown and return a link list

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering safety. The description adds valuable context beyond annotations: it uses Mozilla Readability, handles PDFs by converting to text, follows redirects, and explicitly states the limitation on JS-only pages. It also discloses pricing. This fully rounds out the behavioral profile.

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?

The description is front-loaded with the core promise, then explains mechanics, limitations, and pricing in a logical order. It is a bit long but every sentence adds value—no fluff. The structure is clean and readable.

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?

Given there is no output schema, the description specifies what the output contains (title, author, date, word count, links) and covers important edge cases (PDFs, JS-only pages, public internet only). It does not explicitly mention error handling or timeouts, but for a simple read tool the information is sufficient for an agent to call it correctly.

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?

The schema covers url and include_links with descriptions; max_chars lacks a schema description but the tool description explains 'Use max_chars to bound the output', adding meaning. It also clarifies include_links behavior implicitly through the output description (links in markdown). With 67% schema coverage, the description compensates for the missing parameter documentation.

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 web page' and 'Any public URL → clean readable markdown'. It clearly describes the main content extraction without nav/ads/boilerplate, includes PDF support, and is distinct from siblings like web_meta, http_probe, or markdown_convert. An agent can immediately tell what this tool does and what it is not.

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?

Provides clear context: public internet only, redirects followed, PDFs converted, and a critical limitation for JavaScript-only pages (returns server-sent content). It also advises using max_chars to bound output. It does not explicitly name alternatives, but the behavior described implicitly guides when to use it (static content, not dynamic pages).

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