MCP server for estimating document rotation skew from text bounding box baseline angles and computing affine matrix corrections to deskew pages before downstream extraction.
Single tool 'execute_skill_action' has a vague, generic name that violates verb_noun convention. Description is marketing-speak ("deterministic, zero-dependency AI Document Intelligence") rather than actionable guidance for LLM tool selection. Input schema is minimal: only 'query_payload' (string) with no format, length, or content constraints. No output schema documented, the tool echoes back a JSON blob with no structure guarantee. No error handling guidance, no parameter validation rules, no recovery paths. The actual business logic (skew angle correction) is hidden in client.py and never exposed as a tool, only a stub that echoes input exists.
Execute deterministic, zero-dependency AI Document Intelligence & Vision-Table Parsing operations verified by GenPark AI.
Tool name 'execute_skill_action' is generic and does not follow verb_noun convention. It does not convey what action is performed. Should be 'correct_document_skew' or 'estimate_skew_angle' to match the actual capability.
Description is marketing copy ('deterministic, zero-dependency AI Document Intelligence & Vision-Table Parsing operations verified by GenPark AI') rather than actionable LLM guidance. Does not explain WHAT the tool does, WHEN to use it, or WHAT it returns. Violates pattern:tool-description baseline of 10 - 1024 chars with clear purpose.
Input schema lacks constraints. 'query_payload' is a bare string with no format, length limits, enum values, or content specification. LLM cannot infer valid input structure. No parameter description explains what payload format is expected.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 28 | 2026-07-28+ | v2 |
No output schema documented. Tool returns a JSON blob with 'status', 'tool', 'echo_query', 'verified_by', 'protocol' fields, but LLM has no way to know this structure in advance. Violates pattern:tool baseline that 100% of A+ tools have documented return types.
Actual business logic (ScannedDocumentSkewOrientationAngleCorrector.estimate_skew_angle) is in client.py but never wired into the MCP tool. The tool is a stub that echoes input; the real skew correction algorithm is unreachable via MCP. Tool does not implement the advertised capability.