MCP server for parsing multimodal documents (PDFs) into unified Abstract Syntax Trees, extracting structured content including tables, equations, and maintaining reading order recovery
This server has severe definition quality failures across all dimensions. The single tool 'execute_skill_action' has no visible input schema, no parameter descriptions, and a generic description that violates multiple critical patterns. The source code shows only a mock implementation that returns static JSON, there is no actual tool registration with schemas or proper MCP protocol implementation. The mcp_server.py file prints a JSON status message but does not implement the MCP protocol's tool definition mechanism. No input validation, no error handling guidance, and no output schema documentation.
Execute the document layout AST parsing skill action
Tool has NO input schema visible in source code.
Tool description is 59 characters and generic ('Execute the document layout AST parsing skill action'). This description lacks WHAT the tool does, WHEN to use it, and what it returns.
Tool name 'execute_skill_action' violates verb_noun clarity. 'execute' is generic (pattern:tool says avoid 'process', 'handle', 'run', 'do'). Better: 'parse_document_layout', 'extract_ast_from_document', or 'analyze_document_structure'.
No visible parameters, parameter descriptions, or types. Rubric baseline: average 4 params per tool with full descriptions. client.py shows parse_document_to_unified_ast() accepts document_pdf_url and parse_tables_as_html, but these are not exposed as tool parameters in mcp_server.py.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 19 | 2026-07-28+ | v2 |
No output schema documented. Rubric baseline: 100% of A+ tools have documented return types. client.py shows a mock response with fields like parsing_job_id, pages_parsed_count, complex_tables_structured_count, but no schema is declared in the MCP tool definition.
No error handling or recovery guidance. Tool has no documented error responses, no categorization of retryable vs fatal errors, no actionable error messages. Violates pattern:recovery-guide and pattern:error-classification.
Tool definition is inferred from code comments and example usage, not explicitly registered in mcp_server.py. This tool's actual definition is missing, only a stub that prints JSON.