Bazel MCP 服
一种本地的MCP服务器,它将Bazel构建系统功能暴露给AI代理,使它们即使在无法直接访问Bazel的环境中,也能通过自然语言构建、测试、查询和管理Bazel项目。
服务介绍
Bazel MCP 服务器
一个本地的 MCP 服务器,它将 Bazel 构建系统功能暴露给启用了 MCP 的 AI 代理。
当 MCP 环境中没有现有的命令行工具,或者调用的 shell 环境配置错误导致无法使用 Bazel 时,这非常有用。
工具
Bazel MCP 服务器提供了以下工具:
- bazel_build_target: 构建指定的 Bazel 目标
- bazel_query_target: 查询与模式匹配的目标依赖图
- bazel_test_target: 运行指定目标的测试
- bazel_list_targets: 列出工作空间中的所有可用目标(需要路径参数,使用 "//" 表示所有目标)
- 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: 注意,当使用 Remote SSH 会话与 Cursor 一起使用时,这种方法不起作用,因为它会在本地运行 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 文件。