MCP server for semantic Java code analysis, built on Eclipse JDT. Provides 63 tools for navigation, refactoring, and code intelligence.
Scoring was not performed
Single tool severely limits domain coverage. A Java analysis MCP should expose separate tools for different concerns: get_file_info, get_imports, get_types, get_diagnostics. The monolithic analyze_file tool violates the single-responsibility principle and makes it harder for agents to compose workflows.
No output schema documented. The analyze_file description mentions it returns 'file info', 'imports', 'types', and 'diagnostics' but provides no structured schema definition showing field names, types, and nesting. LLMs cannot reliably extract or chain results without knowing the output structure.
No error handling or recovery guidance. The tool description does not explain what happens if filePath is invalid, if load_project hasn't been called, or how to interpret compilation errors. Error responses need to guide the LLM on what to do next (retry, ask user, call different tool).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 26 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Vague prerequisite dependency. The description states 'Requires load_project to be called first' but load_project is not visible as a tool in this server. This creates an unmet dependency and forces agents to fail or guess how to initialize state.
Insufficient tool description length. At ~220 characters, the description falls within acceptable range (10-1024 chars baseline: avg 194), but lacks critical details: (1) does not explain WHEN to call analyze_file vs separate get_imports or get_diagnostics calls, (2) does not specify output structure or field names, (3) does not enumerate possible error states. Should expand to 250-350 chars with concrete examples.
No pagination or result limits specified. If a large Java file has hundreds of imports or types, there is no mechanism to paginate results or cap returned data. This risks exhausting context windows and degrading LLM reasoning.