Bazel Mcp について
Bazel Mcpは、AIアシスタントからBazelワークスペースのクエリ、ビルド、テスト、実行を利用できるローカルMCPサーバーです。Bazelリポジトリを扱う開発者向けで、ビルドやテストの失敗を構造化して診断します。
主な機能
- 01query、cquery、aqueryの実行
- 02ターゲット一覧と依存関係の確認
- 03依存経路と逆依存関係の追跡
- 04変更ファイルの影響を受けるターゲットの特定
- 05ターゲットのビルド、テスト、実行
- 06BUILDファイルの読み取り
活用シーン
- 01Bazelワークスペース内のターゲット調査
- 02ターゲットの依存チェーン追跡
- 03コード変更の影響対象の特定
- 04失敗内容を確認しながらビルドとテストを実行
MCP 対応
MCPクライアントに、クエリ、ターゲット一覧、依存分析、ビルド、テスト、実行などのBazelワークスペース調査・実行ツールを公開します。コマンドは既定でアクティブなワークスペース内で動作し、ワークスペースのルートも明示できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Bazel MCP
AI アシスタントに Bazel ビルドシステムの機能を提供する、Model Context Protocol サーバーです。
リポジトリ:github.com/saeid-rez/bazel-mcp
ツール
| ツール | 説明 |
|---|---|
bazel_query | 任意の bazel query 式を実行します |
bazel_cquery | 構成済みの bazel cquery 式を実行します(select() とプラットフォーム) |
bazel_aquery | アクションの bazel aquery 式を実行します(コンパイラーフラグ、コマンド) |
list_targets | パッケージまたはサブツリー内のターゲットを一覧表示します |
get_deps | ターゲットの直接または推移的な依存関係を取得します |
get_rdeps | 指定範囲内の逆依存関係を取得します |
get_dependency_path | ターゲット間の依存関係チェーン(somepath/allpaths)をたどります |
show_target_info | query --output=build を使ってルール定義を表示します |
find_affected_targets | 変更されたファイルの影響を受けるターゲットを検索します |
bazel_build | 構造化された失敗診断とともに bazel build を実行します |
bazel_test | 構造化されたターゲット情報と失敗したケースの結果とともに bazel test を実行します |
bazel_run | 引数、環境変数、作業ディレクトリを指定して bazel run を実行します |
explain_build_file | 分析用に BUILD ファイルの内容を読み取ります |
使い方
uv が必要です。MCP クライアントがサーバーをそのワークスペースから起動しない場合は、Bazel ワークスペースのパスを指定してサーバーを構成してください。
Antigravity (agy)
以下を ~/.gemini/config/mcp_config.json に追加します。
{
"mcpServers": {
"bazel": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/saeid-rez/bazel-mcp",
"bazel-mcp-server"
]
}
}
}
Bazel コマンドは、デフォルトで現在のワークスペース内で実行されます。Antigravity がサーバーを Bazel ワークスペースから起動しない場合は、--workspace-root を明示的に指定してください。
{
"mcpServers": {
"bazel": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/saeid-rez/bazel-mcp",
"bazel-mcp-server",
"--workspace-root",
"/path/to/your/bazel/workspace"
]
}
}
}
OpenCode
以下を opencode.json または opencode.jsonc に追加します。/path/to/your/bazel/workspace を Bazel ワークスペースの絶対パスに置き換えてください。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bazel": {
"type": "local",
"command": [
"uvx",
"--from",
"git+https://github.com/saeid-rez/bazel-mcp",
"bazel-mcp-server",
"--workspace-root",
"/path/to/your/bazel/workspace"
],
"enabled": true
}
}
}
GitHub Copilot CLI
以下を ~/.copilot/mcp-servers.json に追加します。/path/to/your/bazel/workspace を Bazel ワークスペースの絶対パスに置き換えてください。
{
"mcp": {
"servers": {
"bazel": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/saeid-rez/bazel-mcp",
"bazel-mcp-server",
"--workspace-root",
"/path/to/your/bazel/workspace"
],
"protocol": "stdio"
}
}
}
}
または、Copilot CLI 内で /mcp add bazel を実行し、同じコマンドと引数を指定してください。
uv でインストールする
GitHub から実行するのではなく、サーバーを永続的にインストールするには、次を実行します。
uv tool install bazel-mcp-server
次に、上記の GitHub ベースのコマンドの代わりに、以下のインストール済みサーバーの構成を使用します。クライアントがサーバーを Bazel ワークスペースから起動しない場合は、--workspace-root とそのパスを含めてください。
Antigravity (agy):
{
"mcpServers": {
"bazel": {
"command": "bazel-mcp-server",
"args": ["--workspace-root", "/path/to/your/bazel/workspace"]
}
}
}
OpenCode:
{
"mcp": {
"bazel": {
"type": "local",
"command": ["bazel-mcp-server", "--workspace-root", "/path/to/your/bazel/workspace"],
"enabled": true
}
}
}
GitHub Copilot CLI:
{
"mcp": {
"servers": {
"bazel": {
"command": "bazel-mcp-server",
"args": ["--workspace-root", "/path/to/your/bazel/workspace"],
"protocol": "stdio"
}
}
}
}
Cursor
Bazel ワークスペース内の .cursor/mcp.json に追加します。
{
"mcpServers": {
"bazel": {
"command": "uvx",
"args": ["--from", "git+https://github.com/saeid-rez/bazel-mcp", "bazel-mcp-server"]
}
}
}
Bazel コマンドは、デフォルトで開いているワークスペース内で実行されます。
Cursor がサーバーを Bazel ワークスペースから起動しない場合は、ワークスペースを明示的に指定してください。
{
"mcpServers": {
"bazel": {
"command": "uvx",
"args": [
"bazel-mcp-server",
"--workspace-root",
"/path/to/your/bazel/workspace"
]
}
}
}
その他のオプションフラグ:
bazel-mcp-server --bazel-path bazelisk --timeout 600 --max-output-chars 64000
開発
リポジトリをクローンして、ローカルでテストを実行します。
git clone https://github.com/saeid-rez/bazel-mcp
cd bazel-mcp
uv sync --group dev
uv run pytest
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。