关于 Bazel Mcp
Bazel Mcp 是本地 MCP 服务,可让 AI 助手访问 Bazel 工作区查询、构建、测试和运行操作。它面向使用 Bazel 仓库的开发者,并为构建和测试失败提供结构化诊断。
主要功能
- 01运行 query、cquery 和 aquery
- 02列出目标并检查依赖
- 03追踪依赖路径和反向依赖
- 04查找受文件变更影响的目标
- 05构建、测试和运行目标
- 06读取 BUILD 文件
适用场景
- 01浏览 Bazel 工作区中的目标
- 02追踪目标的依赖链
- 03识别代码变更影响的目标
- 04运行构建和测试并查看失败详情
MCP 相关
向 MCP 客户端提供 Bazel 工作区检查和执行工具,包括查询、目标列表、依赖分析、构建、测试和运行。命令默认在活动工作区执行,也可显式配置工作区根目录。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Bazel MCP
一个 Model Context Protocol 服务,可向 AI 助手提供 Bazel 构建系统的功能。
仓库: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 工作区启动服务,请使用 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。