Fleet management and maintenance tracking system with MCP server integration for AI-powered tools
Ollie exposes 3 maintenance tools with complete JSON schemas, proper enums, and clear descriptions (100-150 chars each). All parameters are typed and described. Tool names follow verb_noun convention (create_, update_, delete_). Schemas include format constraints (uuid, ISO date). However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance. Composition is sound (one responsibility per tool), but no batch variants or pagination support despite potential for large result sets.
Create a new maintenance record for equipment (truck or trailer)
Hard delete a maintenance record (a log correction)
Update an existing maintenance record
Output schemas not documented. LLMs cannot predict response structure (success/failure format, returned fields, error messages). Forces agents to guess or fail on unexpected responses.
No error recovery guidance. Errors lack actionable next steps (e.g., 'Equipment not found. Call list_equipment() to see available IDs'). LLMs cannot self-correct on failures.
Destructive tool (delete_maintenance) lacks confirmation/dry-run pattern. Agents can permanently delete records without a safety gate.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Clients cannot infer which tools are safe to retry or have side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
delete_maintenance description says 'log correction' but does not explain when/why to use it vs. update. Ambiguous intent increases misuse risk.