MCP server for converting web pages to clean LLM-optimized Markdown. Lightweight — no browser needed.
Two tools with clear, action-verb names (fetch_markdown, convert_html) and solid descriptions (150 - 180 chars, within baseline 194 avg). Input schemas are well-formed with Zod validation and parameter descriptions present. However, output schemas are undocumented, LLMs cannot predict the structure of returned markdown, token counts, or metadata fields. Error handling returns isError flags but lacks recovery guidance (e.g., 'retry with raw=true' or 'check URL format'). No pagination, no result limits documented, and no tool annotations (readOnlyHint). Both tools are read-only and safe, but this is not declared in the schema.
Convert an HTML string to clean, LLM-optimized Markdown. Use this when you already have HTML content and need it as Markdown.
Fetch a web page and convert it to clean, LLM-optimized Markdown. Returns the article content with metadata (title, author, date) and token count. Much faster and lighter than browser-based solutions.
Output schema undocumented. Tools return markdown + metadata (title, author, date, tokens, chars) but LLMs cannot predict field names, types, or structure. Forces LLMs to guess how to extract and chain results.
Error messages lack recovery guidance. 'Failed to fetch URL: HTTP 404' tells LLM nothing about next steps. Should suggest 'Check URL validity' or 'Try convert_html if you have HTML content'.
No tool annotations. Both tools are read-only and idempotent, but readOnlyHint and idempotentHint are absent from schema. Agents cannot infer safety properties without explicit hints.
No result limits or pagination documented. fetch_markdown can return arbitrarily large markdown (e.g., 100k+ tokens for a long article). Should cap results and document limit in description.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Parameter 'raw' is ambiguous. Description says 'Extract full page content instead of just the main article' but does not explain when to use it or what 'full page' includes (headers, footers, ads, etc.).