返回市场
bazel-mcp服务器

bazel-mcp服务器

作者:nacgarg7 星标更新:2025-03-07

项目介绍

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: 注意,当使用 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

可以使用上述相同的配置与 Claude Desktop。

单独启动

# 直接从 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 服务器允许几种不同的配置方法。它们将按以下顺序使用:

  1. 命令行参数
  2. 环境变量
  3. 配置文件

配置表

CLI 参数环境变量配置文件键描述
--bazel_pathMCP_BAZEL_PATHbazel_path要使用的 Bazel 二进制文件的路径。
--workspace_pathMCP_WORKSPACE_PATHworkspace_path要使用的 Bazel 工作区的路径。
--workspace_configM_ _WORKSPACE_CONFIGworkspace_config要使用的工作区配置。默认情况下,这使用工作区根目录下的 .bazelrc 文件。
--log_pathMCP_LOG_PATHlog_path写入服务器日志的路径。

调试

设置环境变量 DEBUG=true 以启用详细的控制台日志记录。

设置日志路径对于调试那些不将日志打印到控制台的客户端(比如 Cursor)也很有帮助。

许可证

本项目根据 MIT 许可证发布。详情请参见 LICENSE 文件。