MCP Server - Build Tools について
JVM Build Tools MCP Serverは、Maven、Gradle、sbtのプロジェクトに対応するJava製サーバーで、開発者やコーディングエージェント向けです。2.0のプレリリースでは、モデルに見えるツールにプロジェクト境界の確認、HTTPのスコープ制御、プライバシー保護を適用します。
主な機能
- 01Maven、Gradle、sbt対応
- 02ビルド関連ツール24種類
- 03ビルドワークフロー用プロンプト3種類
- 04stdioとStreamable HTTPに対応
- 05許可ルートに基づくプロジェクトパス確認
- 06スコープ付きHTTPベアラー認証
活用シーン
- 01MCPクライアントからJVMビルドタスクを実行
- 02プロジェクトの結果からビルド診断を確認
- 03承認済みプロジェクトツリーにツールアクセスを制限
- 04認証付きHTTPでビルドツールを公開
MCP 対応
stdioとStreamable HTTP経由で、24種類のツールと3種類のネイティブなビルドワークフロープロンプトをMCPクライアントに公開します。HTTPアクセスでは、明示的にスコープを割り当てたベアラーキーを利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
JVM Build Tools MCP サーバー
Maven、Gradle、sbt 向けの Java 21 以降対応 MCP サーバーです。stdio と Streamable HTTP を通じて、24 個のツールと 3 つのネイティブなビルドワークフロープロンプトを提供します。2.0 の開発ラインでは、モデルから見えるすべてのツール呼び出しに、プロジェクト境界、スコープ指定された HTTP アクセス、プライバシー制御を適用します。
現在の 2.0 プレリリース: v2.0.0-rc.2 · プロジェクトのウェブサイトとドキュメント
GitHub では v1.3.3 が最新の安定版リリースとして表示されます。v2.0.0-rc.2 はプレリリースです。リリースタグはテスト済みの成果物を示しますが、
mainにはその後の変更が追加される場合があります。以前の 1.x のツール一覧と例は変更履歴にあります。
クイックスタート
JDK 21 以降でビルドして検証します。
./mvnw -B verify --no-transfer-progress
許可するプロジェクトツリーを 1 つ指定して stdio を起動します。このパスはローカルのプロセス設定に保持してください。MCP ツール呼び出しでは、ルートに projectDir: "." を使うか、"app" のような相対パスを指定すると、絶対パスをモデルとの会話に含めずに済みます。
java -Dbuildtools.projects.allowed-roots=/workspace/projects -jar target/mcp-server-jvm-build-tools.jar
クライアントの設定には、ローカルのコマンドと引数を使用します。
{
"mcpServers": {
"jvm-build-tools": {
"command": "java",
"args": [
"-Dbuildtools.projects.allowed-roots=/workspace/projects",
"-jar",
"/opt/jvm-build-tools/server.jar"
]
}
}
}
HTTP では、サーバーは 127.0.0.1 にバインドし、設定済みのベアラーキーを要求します。シークレットマネージャーから BUILDTOOLS_API_KEY_LOCAL を設定し、必要なスコープのみを付与します。たとえば、BUILDTOOLS_API_KEY_LOCAL_SCOPES=build:read,build:execute のようにします。その後、次を実行します。
java -Dbuildtools.projects.allowed-roots=/workspace/projects -jar target/mcp-server-jvm-build-tools.jar --spring.profiles.active=http
設定済みのベアラーキーを Authorization ヘッダーに指定して、POST /mcp に MCP リクエストを送信します。ループバック以外のアドレスにバインドする場合は、明示的なプロジェクトルート、設定済みのキー、認証の強制、制限された CORS も必要です。プロンプト、課題、コミット、ビルドログにキーや非公開のプロジェクトパスを記載しないでください。
/mcp への HTTP リクエストでは、Origin ヘッダーが存在する場合にその値を検証し、無効なオリジンは 403 で拒否します。ループバックへのバインドでは、DNS リバインディングを防ぐため、ローカル以外の Host 値も拒否します。ローカルリバースプロキシが独自の Host 値を送信する場合は、そのホスト名を mcp.transport.allowed-hosts に追加してください(カンマ区切り)。mcp.transport.cors.allowed-origins は信頼できるブラウザーのオリジンに限定してください。CLI クライアントでは Origin を省略できます。
2.0での変更点
- パスを含むすべてのツール呼び出しは、正規の許可ルートと照合されます。相対プロジェクトエイリアスは、最初のルートを基準に解決されます。ルートが存在しない場合、プロジェクトへのアクセスは拒否されます。
- HTTPベアラー認証の強制はデフォルトで有効です。明示的に付与されない限り、キーにスコープはありません。公開されるすべてのツールにスコープが割り当てられ、カタログの不整合があればテストは失敗します。
- MCPツールの結果には、選択された集計カウントと、重大度、失敗カテゴリ、結果ごとの参照、任意のファイルタイプと行、長さを制限して正規化されたメッセージを含む、最大12件の構造化診断が出力されます。認証情報の検査、トークンの検証、監査ログの読み取り、プランの実行は、所有権とプライバシーに関する契約を再設計する間、モデルから見えるカタログには公開されません。
- 依存関係の分析では、依存関係、管理対象エントリ、インポートされたBOMの数が返されます。CVEスキャンでは、スキャン数と重大度別の数が返されます。依存関係の座標、依存関係ごとの分類、CVEの識別情報はローカルに保持されます。
- 静的なツールコールバックと認証情報のダイジェストはキャッシュされます。コンテナのビルドではMavenの依存関係が再利用され、ダウンロードしたGradle/sbtアーカイブが検証され、非rootユーザーとして実行されます。
ビルド診断では、任意の識別子や値を公開せず、認識された失敗フレーズを保持します。不明または安全でないテキストには、サーバーが生成した代替テキストを使用します。ファイル参照が診断を結び付けるのは、同じ結果内に限られます。ファイルやシンボルを確認してから編集するには、ローカルのビルド出力を使用してください。その他のモデルから見えるテキストでは、引き続きパターンに基づく秘匿化が行われますが、任意のテキストに個人データが含まれないことを保証するものではありません。信頼できるMCPクライアントの外部に結果を共有する前に、内容を確認してください。より強力に分離するには、専用のプロジェクトマウントと制限されたネットワークを設定したコンテナ内で、サーバーとビルドを実行してください。
基本的なクイックスタート、現在のツールカタログ、2.0の設定、移行ガイド、アーキテクチャと設計レビュー、セキュリティモデル、HTTP認証、エージェントのコントリビューションワークフローをお読みください。リリース計画では、安定版2.0のリリースまでに残されている作業を追跡しています。
Apache 2.0ライセンスの下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。