MCP server for converting documents to Markdown. Supports PDF, DOCX, HTML, EPUB, CSV, JSON, XML, XLSX, PPTX, and plain text.
Server has 6 tools with complete schemas and descriptions, but quality is uneven. Tool names follow verb_noun convention (convert_*, extract_*, list_*), which is good. Descriptions are present but generic (avg ~80 chars, below 194-char baseline). Parameters have types and descriptions, but lack constraints (enums, ranges, patterns). No output schemas documented. Error handling returns plain text without recovery guidance. No tool annotations (readOnlyHint, etc.). Batch and directory tools lack pagination despite potentially returning many results.
Convert multiple files to Markdown at once.
Convert all supported files in a directory to Markdown.
Convert a local file to Markdown. Supports PDF, DOCX, HTML, EPUB, CSV, JSON, XML, XLSX, PPTX, and plain text.
Fetch a URL and convert its HTML content to Markdown.
Extract metadata from a file (size, type, dates, etc.) without full conversion.
List all supported file formats and their conversion methods.
No output schemas documented. LLMs cannot predict response structure (fields, types, nesting). Downstream tool chaining and data extraction become error-prone.
batch_convert and convert_directory lack pagination. No limit enforcement visible in code; max_files=20 default may silently truncate results without indicating more exist. No next_cursor or total_count returned.
Error responses are plain text without recovery guidance. E.g., 'Error converting file: {e}' gives LLM no actionable next step. Should indicate: is this retryable? Should user check file permissions? Is format unsupported?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but this is not declared in schema. Agents cannot infer safety properties.
Parameter descriptions lack constraints. E.g., max_length is integer with default 50000, but no min/max bounds stated. max_files=20 default is undocumented, is 20 a hard limit or just a suggestion?