README
🚀 Bazel MCP 服务器
Bazel MCP 服务器是一个本地 MCP 服务器,它能将 Bazel 构建系统的功能暴露给支持 MCP 的 AI 代理。在 MCP 环境中缺少现有的命令行工具,或者 shell 环境配置错误导致无法使用 Bazel 的情况下,该服务器就会发挥巨大作用。
🚀 快速开始
Bazel MCP 服务器为你提供了便捷的方式,将 Bazel 构建系统的功能集成到支持 MCP 的 AI 代理中。下面为你详细介绍使用方法。
✨ 主要特性
Bazel MCP 服务器提供了丰富的工具,满足你在 Bazel 构建过程中的各种需求:
- 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_path 标志指定 Bazel 二进制文件的路径。
⚠️ 重要提示
此方法在使用 Cursor 的远程 SSH 会话中无效,因为 MCP 服务器是在本地运行的。
{
"mcpServers": {
"bazel": {
"command": "npx",
"args": [
"-y",
"github:nacgarg/bazel-mcp-server",
// 如果需要指定 Bazel 二进制文件路径
"--bazel_path",
"/absolute/path/to/your/bazel/binary",
// 如果需要指定工作区路径
"--workspace_path",
"/absolute/path/to/your/bazel/workspace"
// 有关更多选项,请参见下文的配置表
]
}
}
}
使用 Claude Desktop
你可以使用与 Cursor 相同的配置。
独立运行
# 直接从 GitHub 运行(无需安装)
npx -y github:nacgarg/bazel-mcp-server
# 从源代码运行
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:要使用的 Bazel 二进制文件的路径;--workspace_path:要使用的工作区的路径;--workspace_config:工作区的配置,默认情况下,此配置会使用工作区根目录中的 .bazelrc 文件;--log_path:写入服务器日志的路径。 |
| 环境变量 | MCP_BAZEL_PATH、MCP_WORKSPACE_PATH、MCP_WORKSPACE_CONFIG、MCP_LOG_PATH |
| 配置文件键 | bazel_path、workspace_path、workspace_config、log_path |
调试
设置 DEBUG=true 环境变量以启用控制台的详细日志记录。设置日志路径对于调试也非常有用,特别是当客户端没有将日志打印到控制台时(例如 Cursor)。
📄 许可证
此项目根据 MIT 许可证发布。有关详细信息,请参阅 LICENSE 文件。
Scan to join WeChat group