MCP Server for Aibolit - provides capabilities for tool integration with Aibolit Java code quality analyzer
Single tool with adequate naming but significant gaps in parameter documentation and output schema clarity. Tool name 'find_the_most_critical_design_issue' is descriptive and verb-led, following naming conventions. Description is present (168 chars) but lacks actionable guidance on when/why to use it. Input schema exists but parameter 'path' has minimal description ('The file path to the Java file to analyze' is only 47 chars, below the 72-char baseline). No documented output schema, response structure is inferred from code (text content array) but not formally specified. Error handling is minimal: only checks file existence with a basic message. No guidance on recovery paths or error classification.
Analyze one Java file. Find the most serious design flaw. It must need immediate refactoring. Ignore cosmetic or minor issues. Fix the one problem that will best improve code quality. Code quality means maintainability, readability, loose coupling, and high cohesion. Point out the problem and where it is in the file.
Output schema not documented. Response structure (text content array with line number, issue name, priority value) is inferred from code but not formally specified in tool definition. LLMs cannot plan downstream operations without knowing return fields.
Parameter 'path' lacks sufficient description. Current text (47 chars) does not specify format constraints, valid file extensions, or error cases. Should include: 'Absolute or relative path to a .java file. Must exist and be readable. Returns error if file not found or Aibolit fails to parse.'
Error handling lacks recovery guidance. File-not-found error returns bare message; no suggestion to check path or list available files. Aibolit version check failure (in aibolit.ts) throws raw error without actionable next steps for LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Tool description does not state prerequisites or dependencies. Aibolit Python package (v1.3.0+) must be installed and in PATH, but this is not mentioned in tool description. LLM has no way to know why tool might fail.
No pagination or result limiting documented. Tool returns single top issue, but description does not clarify this is a 1-result response. If Aibolit output format changes or multiple issues are equally critical, behavior is undefined.