关于 Bazel MCP Server
Bazel MCP 服务将 Bazel 构建系统功能提供给 MCP Agent,适用于缺少可用命令行工具或 Shell 环境配置异常的场景。可构建目标、查询依赖并运行测试。
主要功能
- 01构建指定 Bazel 目标
- 02查询目标依赖图
- 03运行目标测试
- 04列出工作区目标
- 05获取依赖并切换工作区路径
适用场景
- 01通过 Agent 触发 Bazel 构建
- 02检查目标依赖关系
- 03运行 Bazel 测试
- 04在运行时切换工作区
MCP 相关
该本地 MCP 服务向 MCP Agent 暴露 Bazel 构建、查询、测试、列举目标、获取依赖和设置工作区路径等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Bazel MCP 服务
一个本地 MCP 服务,可向启用 MCP 的 AI Agent 提供 Bazel 构建系统的功能。
当 MCP 环境中没有现成的命令行工具,或者调用的 shell 环境配置错误,导致无法使用 Bazel 时,这个服务会很有帮助。
工具
Bazel MCP 服务提供以下工具:
- 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 外,每个命令都支持可选的 additionalArgs 参数,用于向底层 Bazel 命令传递其他参数。此参数适用于指定 --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 许可。详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。