Mcp Jacoco Reporter について
MCP-JaCoCo は JaCoCo の XML カバレッジレポートを構造化 JSON に変換し、LLM による分析を支援します。カバレッジの確認やテスト計画を行う開発チーム向けです。
主な機能
- 01JaCoCo XML レポートの JSON 変換
- 02命令・分岐・行カバレッジ指標に対応
- 03指定した指標によるカバレッジの絞り込み
- 04構造化されたカバレッジデータの出力
活用シーン
- 01未カバーまたは部分カバーのコードの確認
- 02カバレッジデータに基づくテスト追加の計画
- 03LLM ツールへのカバレッジ結果の提供
MCP 対応
指定パスの JaCoCo XML レポートを読み込み、整形した JSON でカバレッジ指標を MCP クライアントに返すツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP-JaCoCo
MCP-JaCoCo は、JaCoCo のコードカバレッジレポートを LLM に最適化された形式に変換するサーバーツールです。AI を活用した分析をより簡単かつ効果的に行えます。
重要性
AI や LLM がソフトウェア開発で果たす役割が大きくなるにつれて、JaCoCo のような従来のコードカバレッジレポートにも変化が求められています。人間にとっては優れたレポートでも、XML 形式は AI ツールでの処理や分析には適していません。MCP-JaCoCo は、これらのレポートを LLM に適した形式に変換することでこのギャップを埋め、開発チームに次のような大きなメリットをもたらします。
- コードカバレッジを簡潔かつ有意義に要約
- テストされていない、またはテストが不十分なコードを簡単に特定
- 新しいテストケースを提案
- AI を活用したテスト計画を効率化
- カバレッジ結果のドキュメントを自動作成 MCP-JaCoCo を利用すれば、チームは AI の可能性を最大限に活用し、テストのワークフローにおける効率と洞察を向上させることができます。
解決する課題
- 複雑な形式:JaCoCo の情報量が多い XML レポートを AI で扱いやすくします
- データの分散:カバレッジの指標を、アクセスしやすい 1 か所に集約します
- 分析の遅さ:時間のかかる手動レビューを削減します
- 統合の障壁:生データを AI ツールで扱いやすくします
主な機能
- スマート変換:JaCoCo の XML レポートを LLM に適した JSON 形式に変換します
- 柔軟なカバレッジ種別:複数のカバレッジ指標(命令、分岐、行など)に対応します
- 効率的な処理:レポートを高速かつ軽量に処理します
- 構造化された出力:AI で簡単に利用できる、整理された JSON 形式で出力します
- カスタマイズ可能な分析:関心のある特定の指標でカバレッジデータを絞り込めます
インストール
次の設定を使用して uv で MCP-JaCoCo をインストールします。
{
"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"
]
}
}
}
ツール
jacoco_reporter_server
- JaCoCo XML レポートを読み込み、カバレッジデータを JSON 形式で返します
- 入力:
- jacoco_xmlreport_path:JaCoCo XML レポート(jacoco.xml)へのパス
- 戻り値:
- カバレッジ指標を含む、整形済み JSON データの文字列
出力形式の例:
[
{
"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": []
}
}
]
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
