MCP server for parsing unstructured documents using agentic workflow automation with OCR vision extraction, schema drift remediation, and downstream API synchronization
Critical failures across all dimensions. The single tool 'execute_skill_action' has a vague, generic description (67 chars) that does not explain WHAT the tool does, WHEN to use it, or what it returns. Parameters lack type definitions in the visible schema, 'document_source_url' and 'target_schema_format' are declared as strings but have no enum constraints, format specifications, or validation rules. No output schema is documented anywhere; the tool's return structure is completely undocumented. The tool name uses 'execute' + 'action', both generic verbs that violate verb_noun naming conventions. No error handling, no recovery guidance, no pagination support. The implementation in mcp_server.py is a stub that only prints a JSON status message, it does not actually invoke the tool or handle requests. Tool definitions appear inferred rather than explicitly registered with proper MCP schemas.
Execute document parsing skill action with unstructured document stream processing
No input schema visible. Parameters 'document_source_url' and 'target_schema_format' are declared as strings but lack type definitions, enums, format constraints, or validation rules.
Tool name 'execute_skill_action' violates verb_noun naming. 'execute' and 'action' are both generic; LLMs cannot infer intent from the name alone. Should be 'parse_document' or 'extract_document_schema'.
Description (67 chars) is too generic: 'Execute document parsing skill action with unstructured document stream processing'. Does not answer: What does it do? When to use it? What does it return?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 24 | 2026-07-28+ | v2 |
No output schema documented. The client.py mock returns a complex object with 7 fields (automaton_run_id, document_pages_processed, unstructured_tables_extracted, ocr_vision_extraction_confidence_pct, schema_drift_auto_remediated, downstream_api_sync_completed, structured_json_output_url), but the MCP server definition does not declare this structure. LLMs cannot plan downstream calls without knowing what fields to expect.
mcp_server.py is a non-functional stub. It only prints a JSON status message and does not implement tool invocation, parameter handling, or error recovery. Tool definitions appear inferred from client.py rather than explicitly registered.