MCP server for vehicle homologation: OTTS, UNECE regulations, VIN, type approval. EAEU vehicle compliance.
All 9 tools suffer from severely underdeveloped schemas and descriptions. Every tool accepts a single generic 'input' parameter (type: string, description: 'Input data (JSON)') with no structure, validation, or guidance. Descriptions are minimal (8-30 chars) and fail to explain WHAT the tool does, WHEN to use it, or what it returns. No output schemas are documented. Tools are thin wrappers around a remote API with no input validation, error recovery guidance, or parameter constraints. This violates core patterns: tool-description (descriptions too short), constrained-input (no enums/validation), response-shaper (no output schema), and recovery-guide (no error handling). The generic 'input' parameter forces LLMs to guess JSON structure, inviting malformed calls and silent failures.
OTTS document generator
OTTS timeline and cost calculator
Vehicle export regulations
UNECE regulation checker
Braking system compliance
Cab strength compliance
Mirrors and visibility compliance
All 9 tools use identical generic input schema: single 'input' parameter (type: string, description: 'Input data (JSON)'). No structure, no validation, no guidance on what JSON fields are required or allowed. LLMs cannot infer valid payloads and will hallucinate JSON structures.
Tool descriptions are 8 - 30 characters (e.g., 'OTTS timeline and cost calculator'). Rubric baseline is 194 chars (p10=34, p90=392). Descriptions lack WHEN to use, WHAT it returns, and prerequisites. Too short to guide LLM tool selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 30 | 2026-07-28+ | v2 |
Noise emission compliance
VIN generator and validator
No output schemas documented. Tools return JSON.stringify(result) as plain text. LLMs cannot parse response structure, extract chaining IDs, or plan downstream calls. Violates response-shaper pattern.
No error handling or recovery guidance. callBankr() catches exceptions and returns {status: 'error', error: e.message}. LLMs receive raw error messages with no guidance on retry, user-fixable issues, or next steps. Violates recovery-guide pattern.
No input validation. Tools accept any string as 'input' and pass it directly to remote API. No validation of JSON structure, required fields, or constraints. Malformed input silently fails or returns opaque API errors.