Model context protocol server for offloading ai coding work to Aider
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. aider_ai_code has a complex schema with 4 parameters, but 'relative_readonly_files' lacks description and output structure is undocumented. list_models has minimal schema (1 param, no description for 'substring'). Neither tool documents return types or error recovery paths. Naming is reasonable (verb_noun pattern), but descriptions are generic and lack WHEN/WHY context. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Error handling is absent from tool definitions.
Run Aider to perform AI coding tasks based on the provided prompt and files
List available models that match the provided substring
Output schemas undocumented. aider_ai_code returns {success, diff} and list_models returns {models}, but LLMs cannot plan downstream calls without knowing field types, structure, or whether results are paginated.
Parameter descriptions incomplete. aider_ai_code's 'relative_readonly_files' has no description. list_models' 'substring' parameter lacks description. LLMs cannot infer parameter meaning from names alone.
Tool descriptions lack WHEN/WHY context. aider_ai_code says 'Run Aider to perform AI coding tasks' but does not explain when to use it vs other tools, what prerequisites exist (git repo?), or what side effects occur. list_models description is 54 chars but does not explain when to call it or what structure it reveals.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | <=2025-11-25 | v2 |
No error handling guidance. Neither tool documents what errors can occur, whether they are retryable, or what the LLM should do next. Code shows JSON parse errors and git repo checks, but tool definitions do not expose this to the agent.
No tool annotations. aider_ai_code is destructive (writes files via Aider) but lacks destructiveHint. list_models is read-only but lacks readOnlyHint. Annotations help LLMs reason about safety and retry logic.