Single tool with strong naming and comprehensive schema, but descriptions lack LLM-specific optimization and lack error handling guidance. The tool name 'document_ingest_to_markdown' clearly conveys action, and input schema is well-defined with type constraints and defaults. However, descriptions are functional but brief, and output schema documentation is missing from the MCP tool registration. The tool definition is explicitly visible in src/mcp_rag/mcp/tools/document_ingest.py, so no inference penalty applies.
Enterprise document ingestion tool. Parses document with Docling first, builds page-wise markdown skeleton, applies selective OCR and limited chart/diagram vision, and returns final markdown plus detailed ingestion metrics.
Tool description lacks error guidance and recovery hints. No mention of what to do if OCR fails, vision API is unavailable, or file format is unsupported.
Output schema not documented in MCP tool definition. Response structure (markdown, metrics, source_copy_path, markdown_file_path) is defined in api/schemas.py but not exposed to the MCP client. LLMs cannot plan downstream actions or extract correct fields.
Parameter 'vision_model' accepts free-form string (default 'gemini-2.5-flash') with no validation or enum constraint. LLMs may hallucinate unsupported model names like 'gemini-ultra' or 'gpt-4-vision'.
Tool description does not state that operation may be long-running or CPU-intensive. No mention of expected runtime, cancellation support, or streaming progress indicators. LLMs may assume instant completion.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Parameter descriptions lack format and constraint details. 'file_path' says 'Absolute path' but does not specify supported file types (PDF, DOCX, etc.), maximum file size, or character encoding expectations.