Web Reader MCP server that fetches URLs and returns main content as model-friendly markdown
Single tool 'fetch' has a clear action verb, well-structured schema with all parameters typed and described, and a solid description (127 chars). Input schema is explicit with proper JSON schema types (string, boolean). Error handling is present (panic recovery, error wrapping). However, output schema is not formally documented, the tool returns markdown/text content but the response structure is implicit rather than explicit. Parameter descriptions are good but could be more prescriptive about constraints (e.g., timeout format, return_format enum values). No tool annotations (readOnlyHint, etc.) despite being a read-only operation.
Fetch a URL and return its main content as model-friendly markdown. A free, uncapped replacement for paid web-reader tools.
Output schema not formally documented. Tool returns markdown or text content, but response structure (fields, types, format) is implicit in code, not declared in tool definition. LLMs cannot plan downstream operations without knowing the exact response shape.
return_format parameter lacks enum constraint. Description says 'markdown or text' but no formal enum is declared. LLMs may hallucinate other formats (json, html, etc.). Should be: enum=['markdown', 'text'].
timeout parameter format not formally constrained. Description mentions 'Go duration string (e.g. 30s)' but no regex pattern or format constraint in schema. LLMs may pass invalid formats like '30 seconds' or '30000ms'.
Tool lacks readOnlyHint annotation despite being a read-only operation. This prevents agents from understanding that the tool is safe to call repeatedly without side effects.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
No guidance on error recovery. Error messages are wrapped but do not suggest next steps (e.g., 'Invalid URL format. Ensure the URL starts with http:// or https://'). Errors should guide the LLM toward self-correction.