An MCP server that analyzes Java projects for code structure, test coverage via JaCoCo, and provides testing recommendations
This server has significant definition quality gaps. Tool names follow verb-noun conventions appropriately (analyze_project, analyze_coverage, run_tests, generate_test_suggestions), but parameter and output documentation is severely incomplete. No input schemas are visible in the source code provided, only parameter names and descriptions are stated in the submission. The descriptions range from adequate to incomplete, but critically, there is NO documentation of output schemas, return types, or data structures. Without visible JSON Schema definitions, output documentation, or explicit parameter type specifications in code, this server cannot achieve a passing score on definition quality. The tools lack structured return value documentation, error handling guidance, and many parameter descriptions are sparse. This is representative of early-stage tool development where schemas exist in fastmcp but are not explicitly verified or documented.
Analyze JaCoCo code coverage reports from a Java project, identify under-covered classes and methods, and provide testing recommendations
Analyze a Java project to extract code structure information including packages, classes, methods, constructors, and their signatures
Generate specific test case suggestions for Java code based on method signatures and coverage gaps
Build a Java project and run its tests, capturing test results and generating a coverage report
No visible input schemas with type definitions. Submission states parameter names and descriptions but provides no JSON Schema definitions showing types (string, number, object, array), constraints (min, max, enum), or validation rules.
No documented output schemas. Tools do not declare what fields, types, or structure they return. LLMs cannot plan downstream tool calls or extract data when return types are unknown.
generate_test_suggestions accepts 'class_info' and 'coverage_info' as objects but provides no schema for these object structures. LLMs cannot construct valid payloads without knowing required fields, types, and nested structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 38 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Parameter 'min_coverage' in analyze_coverage lacks constraints. Description says '0.0-1.0' but no minimum/maximum/enum is enforced. LLMs can pass invalid values (negative, >1.0) and cause errors.
No error handling guidance. Tools do not document what errors they return, what causes them, or how to recover. An LLM seeing a failure has no actionable next step.
run_tests description does not clarify whether it modifies state or is read-only. Tool is marked WRITE in the submission but description does not say 'This tool will build and execute tests', agents need explicit state-mutation language.
Parameter descriptions are sparse. 'test_filter' says 'Optional filter' with examples but lacks explanation of filter syntax, allowed wildcards, or what happens if filter matches no tests.