Drop-in replacement for the official fetch MCP: clean, LLM-ready Markdown from any URL. No 5k truncation, JS rendering when needed, zero config.
Two well-named, verb-prefixed tools (read_url, read_docs) with comprehensive descriptions (180 - 220 chars each, within baseline 194 avg). Input schemas are complete with Zod validation, all parameters typed and described. Schemas follow flat, client-compatible design (no unions/format keywords). Output structure is simple (text content + isError flag). Error handling returns typed errors with context (e.g., '[invalid_url]' prefix). Main gaps: no output schema formally documented for LLMs; no pagination/limit enforcement despite potential for large responses; no tool annotations (readOnlyHint, idempotentHint); parameter descriptions could be more prescriptive about constraints (e.g., max_length behavior on truncation).
Fetch a documentation or reference page and return only its main content as clean Markdown, stripping navigation sidebars, headers, footers, and other page chrome. Use this for API docs, guides, and reference pages. For general web pages use read_url. Same JS-rendering, anti-bot, and honest-error behavior as read_url.
Fetch a web page and return its content as clean, LLM-ready Markdown. Full content by default (no truncation). Handles HTML, plain text, Markdown, and JSON responses. JavaScript-heavy pages are rendered automatically in a real browser when the static HTML is an empty SPA shell. Returns an honest typed error when the site blocks access or the content cannot be read — it never silently returns partial or fake content.
Output schema not formally documented for LLMs. Response structure (content array with text type + isError flag) is inferred from code but not declared in tool registration. LLMs cannot plan downstream operations without knowing return fields.
No tool annotations (readOnlyHint, idempotentHint). Both tools are read-only and idempotent, but this is not declared in the schema. Agents cannot distinguish safe tools from destructive ones without explicit hints.
max_length parameter behavior under-specified. Description says 'If output is truncated, the response says so and tells you how to continue' but does not explain the exact format of the truncation message or how start_index pagination works in practice.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
No result limit enforcement documented. Tools can return full page content (potentially megabytes). Baseline pattern recommends capping results at 20 - 50 items and offering pagination. No mention of maximum response size or truncation strategy.
Error messages lack recovery guidance. '[invalid_url]' and '[invalid_protocol]' errors are typed but do not suggest next steps (e.g., 'Check the URL format' or 'Only http/https supported').