MCP-JaCoCo
MCP-JaCoCo is a server tool that converts JaCoCo code coverage reports into formats optimized for Large Language Models (LLMs), making AI-driven analysis easier and more effective.
Why It Matters
As AI and LLMs play a bigger role in software development, traditional code coverage reports—like those from JaCoCo—need a makeover. While great for humans, their XML format isn’t ideal for AI tools to process or analyze. MCP-JaCoCo bridges this gap by transforming these reports into LLM-friendly formats, unlocking powerful benefits for development teams:
- Quick, meaningful summaries of code coverage
- Easy identification of untested or poorly tested code
- Smart suggestions for new test cases
- Streamlined AI-assisted test planning
- Automated documentation of coverage results With MCP-JaCoCo, teams can tap into AI’s full potential, boosting efficiency and insight in testing workflows.
What It Solves
- Complex Formats: Simplifies JaCoCo’s dense XML reports for AI use
- Scattered Data: Pulls coverage metrics into one accessible place
- Slow Analysis: Cuts down on time-consuming manual reviews
- Integration Hurdles: Makes raw data play nicely with AI tools
Key Features
- Smart Conversion: Transforms JaCoCo XML reports into LLM-friendly JSON format
- Flexible Coverage Types: Supports multiple coverage metrics (instruction, branch, line, etc.)
- Efficient Processing: Fast and lightweight report processing
- Structured Output: Well-organized JSON format for easy AI consumption
- Customizable Analysis: Filter coverage data by specific metrics of interest
Installation
Install MCP-JaCoCo using uv with this configuration:
{
"mcpServers": {
"mcp-jacoco-reporter-server": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"/Users/crisschan/workspace/pyspace/mcp-jacoco-reporter/mcp-jacoco-reporter-server.py"
],
"env": {
"COVERED_TYPES": "nocovered, partiallycovered, fullcovered"
},
"alwaysAllow": [
"jacoco_reporter_server"
]
}
}
}
Tool
jacoco_reporter_server
- Reads JaCoCo XML report and returns coverage data in JSON format
- Input:
- jacoco_xmlreport_path: Path to JaCoCo xml report path(jacoco.xml)
- Return:
- String, formatted JSON data containing coverage metrics
Example output format:
[
{
"sourcefile": "PasswordUtil.java",
"package": "com/cicc/ut/util",
"lines": {
"nocovered": [],
"partiallycovered": []
},
"branch": {
"nocovered": [],
"partiallycovered": []
}
},
{
"sourcefile": "UserServiceImpl.java",
"package": "com/cicc/ut/service/impl",
"lines": {
"nocovered": [
33,
67,
69,
71,
72
],
"partiallycovered": []
},
"branch": {
"nocovered": [
67
],
"partiallycovered": [
32
]
}
},
{
"sourcefile": "Constants.java",
"package": "com/cicc/ut/constants",
"lines": {
"nocovered": [],
"partiallycovered": []
},
"branch": {
"nocovered": [],
"partiallycovered": []
}
},
{
"sourcefile": "AuthException.java",
"package": "com/cicc/ut/exceptions",
"lines": {
"nocovered": [],
"partiallycovered": []
},
"branch": {
"nocovered": [],
"partiallycovered": []
}
},
{
"sourcefile": "UserService.java",
"package": "com/cicc/ut/service",
"lines": {
"nocovered": [],
"partiallycovered": []
},
"branch": {
"nocovered": [],
"partiallycovered": []
}
}
]
Metadata
Release files for iflow-mcp_crisschan-server 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_crisschan_server-0.1.0.tar.gz | 18.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_crisschan_server-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.5 kB
Release files / iflow_mcp_crisschan_server-0.1.0.tar.gz
| Download URL | iflow_mcp_crisschan_server-0.1.0.tar.gz |
|---|---|
| Size | 18.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cce24e4c538ce14f25c4831ac18e1cd633ff7f63e92d61dcd27f07670462a11f
|
|
BLAKE2b-256 checksum How to use checksums |
4420c05fb2708a75b6684442ce0d768ea72c81505131f765dafb1d37d6fd1ddb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_crisschan_server-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_crisschan_server-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
39917a26ba0d197fec0f258632b473bfa7a7134b012a0605b2ea9baaf49fee1e
|
|
BLAKE2b-256 checksum How to use checksums |
7e40c91adac40106667eda719cb27151c08ea964e7f679173c2122d9bcf0dc0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|