Document parser orchestrator — auto-routes to the optimal OSS parser for each document. Supports PDF, DOCX, XLSX, PPTX, HTML, TXT, images, and 91+ formats.
Parsemux exposes 3 document parsing tools via FastMCP/HTTP. Tool names follow verb_noun convention (parse_document_tool, list_parsers_tool, detect_doc_type). All tools have descriptions (194 - 250 chars, within baseline 34 - 392 range). Input schemas are present with typed parameters. However, parse_document_tool has 10 parameters with mixed description quality; several lack actionable constraints (e.g., 'parser' accepts free-form strings instead of enum). Output schemas are not documented. Error handling guidance is absent. Security concern: llm_api_key and vlm_api_key are exposed as tool parameters, violating secret-injection pattern.
Detect document type and recommend the best parser.
List all available parser backends and their capabilities.
Parse a document file and extract structured content. Auto-routes to the optimal parser unless one is specified. Supports PDF, DOCX, XLSX, PPTX, HTML, TXT, images, and 91+ formats.
API keys (llm_api_key, vlm_api_key) exposed as tool parameters. Credentials must use server-side secret injection via environment variables or vault. Agent traces log all parameters, secrets leak into logs and prompt history.
parse_document_tool 'parser' parameter accepts free-form strings (pymupdf, kreuzberg, docling, mineru, marker) but is not declared as enum. LLMs may hallucinate invalid parser names. Should be: {"type": "string", "enum": ["pymupdf", "kreuzberg", "docling", "mineru", "marker"]}.
parse_document_tool 'output_format' parameter lacks enum constraint. Description says 'markdown, json, or text' but parameter is free-form string. Should declare enum: ["markdown", "json", "text"].
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data without knowing return field names and types. parse_document_tool should document: {"type": "object", "properties": {"content": {...}, "metadata": {...}, "images": {...}}}.
No error handling guidance. Tools do not indicate what to do on failure (e.g., 'File not found. Check file_path is absolute and readable.' or 'Parser not available. Call list_parsers_tool to see installed backends.'). Agents receive no recovery path.