mcpField
M
MCP Server - Build Tools

MCP Server - Build Tools

ローカル
github.com/thepragmatik開発ツール05 週間前に更新

MCP Server - Build Tools について

JVM Build Tools MCP Serverは、Maven、Gradle、sbtのプロジェクトに対応するJava製サーバーで、開発者やコーディングエージェント向けです。2.0のプレリリースでは、モデルに見えるツールにプロジェクト境界の確認、HTTPのスコープ制御、プライバシー保護を適用します。

主な機能

  1. 01Maven、Gradle、sbt対応
  2. 02ビルド関連ツール24種類
  3. 03ビルドワークフロー用プロンプト3種類
  4. 04stdioとStreamable HTTPに対応
  5. 05許可ルートに基づくプロジェクトパス確認
  6. 06スコープ付きHTTPベアラー認証

活用シーン

  1. 01MCPクライアントからJVMビルドタスクを実行
  2. 02プロジェクトの結果からビルド診断を確認
  3. 03承認済みプロジェクトツリーにツールアクセスを制限
  4. 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ライセンスの下でライセンスされています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。