Bazel MCP Server について
Bazel MCP サーバーは、Bazel のビルド機能を MCP エージェントに公開するローカルサーバーです。コマンドラインツールがない場合やシェル環境に問題がある場合にも、ターゲットのビルドや依存関係の確認、テストを行えます。
主な機能
- 01指定した Bazel ターゲットのビルド
- 02ターゲット依存グラフの検索
- 03ターゲットのテスト実行
- 04ワークスペース内のターゲット一覧
- 05依存関係の取得とパス変更
活用シーン
- 01エージェント経由で Bazel ビルドを実行
- 02ターゲットの依存関係を確認
- 03Bazel テストを実行
- 04実行中にワークスペースを切り替える
MCP 対応
ローカル MCP サーバーとして、Bazel のビルド、クエリ、テスト、ターゲット一覧、依存関係の取得、ワークスペースパス設定のツールを MCP エージェントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Bazel MCP Server
Bazel ビルドシステムの機能を、MCP 対応の AI エージェントに提供するローカル MCP サーバーです。
MCP 環境に既存のコマンドラインツールがない場合や、呼び出されたシェルの環境設定に問題があり、Bazel を使用できない場合に役立ちます。
ツール
Bazel MCP Server では、以下のツールを利用できます。
- bazel_build_target:指定した Bazel ターゲットをビルドします
- bazel_query_target:パターンに一致するターゲットの依存関係グラフを検索します
- bazel_test_target:指定したターゲットのテストを実行します
- bazel_list_targets:ワークスペース内の利用可能なすべてのターゲットを一覧表示します(path パラメーターが必要です。すべてのターゲットを対象にするには「//」を使用してください)
- bazel_fetch_dependencies:外部依存関係を取得します
- bazel_set_workspace_path:実行時に Bazel ワークスペースのパスを変更します
各コマンド(bazel_set_workspace_path を除く)では、基になる Bazel コマンドに追加の引数を渡すための省略可能な additionalArgs パラメーターを使用できます。--verbose_failures や --test_output=all などのフラグを指定する場合に便利です。
使用方法
インストール
Cursor での使用
以下を .cursor/mcp.json に追加してください。
LLM が set_workspace_path を使用して実行時にワークスペースのパスを変更できるため、ワークスペースのパスを指定する必要はありません。
通常、bazel バイナリは自動的に検出されますが、問題が発生する場合は、--bazel_path フラグを使用して bazel バイナリへのパスを指定できます。
:warning: Cursor で Remote SSH セッションを使用する場合、この方法は機能しないことに注意してください。MCP サーバーはローカルで実行されるためです。
{
"mcpServers": {
"bazel": {
"command": "npx",
"args": [
"-y",
"github:nacgarg/bazel-mcp-server",
// If you need to specify the bazel binary path
"--bazel_path",
"/absolute/path/to/your/bazel/binary",
// If you need to specify the workspace path
"--workspace_path",
"/absolute/path/to/your/bazel/workspace"
// See Configuration Table below for more options
]
}
}
}
Claude Desktop での使用
Claude Desktop では、上記と同じ設定を使用できます。
単独での起動
# Run directly from GitHub (no installation needed)
npx -y github:nacgarg/bazel-mcp-server
# From source
git clone https://github.com/nacgarg/bazel-mcp-server.git
cd bazel-mcp-server
npm install
npm run build
dist/index.js
設定
この MCP サーバーでは、いくつかの設定方法を利用できます。以下の順序で適用されます。
- コマンドライン引数
- 環境変数
- 設定ファイル
設定一覧
| CLI 引数 | 環境変数 | 設定ファイルのキー | 説明 |
|---|---|---|---|
--bazel_path | MCP_BAZEL_PATH | bazel_path | 使用する Bazel バイナリへのパスです。 |
--workspace_path | MCP_WORKSPACE_PATH | workspace_path | 使用する Bazel ワークスペースへのパスです。 |
--workspace_config | MCP_WORKSPACE_CONFIG | workspace_config | 使用するワークスペースの設定です。デフォルトでは、ワークスペースのルートにある .bazelrc ファイルを使用します。 |
--log_path | MCP_LOG_PATH | log_path | サーバーログの書き込み先のパスです。 |
デバッグ
DEBUG=true 環境変数を設定すると、コンソールへの詳細なログ出力が有効になります。
ログパスを設定すると、ログをコンソールに表示しないクライアント(Cursor のことです)でのデバッグにも役立ちます。
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については、LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。