Bazel MCP Server 使用说明

项目简介

Bazel MCP Server 是一个基于 Model Context Protocol (MCP) 构建的本地服务器,它将 Google 的 Bazel 构建系统的功能桥接到支持 MCP 协议的 LLM 客户端。通过 Bazel MCP Server,LLM 客户端可以利用 Bazel 的强大功能,例如构建项目、查询依赖关系、运行测试等,从而实现更智能的开发辅助和自动化任务。

主要功能点

  • 集成 Bazel 构建工具链: 提供了常用的 Bazel 命令的 MCP 工具接口,包括:
    • 'bazel_build_target': 构建指定的 Bazel 目标。
    • 'bazel_query_target': 查询 Bazel 依赖图。
    • 'bazel_test_target': 运行 Bazel 测试。
    • 'bazel_list_targets': 列出 Bazel 工作区中的目标。
    • 'bazel_fetch_dependencies': 获取外部依赖。
    • 'bazel_set_workspace_path': 动态设置 Bazel 工作区路径。
  • 灵活配置: 支持通过命令行参数、环境变量和配置文件配置 Bazel 二进制文件路径和工作区路径。
  • 安全性: 对用户提供的参数进行安全校验,防止命令注入。
  • 详细日志: 提供详细的服务器日志,方便问题排查和调试。

安装步骤

Bazel MCP Server 可以直接通过 'npx' 运行,无需额外安装步骤。您也可以选择从源代码构建运行。

方法一:使用 'npx' 运行 (推荐)

确保您的环境中已安装 Node.js 和 npm。在终端中执行以下命令即可启动服务器:

npx -y github:nacgarg/bazel-mcp-server

方法二:从源代码运行

  1. 克隆仓库到本地:
    git clone https://github.com/nacgarg/bazel-mcp-server.git
    cd bazel-mcp-server
  2. 安装依赖:
    npm install
  3. 构建项目:
    npm run build
  4. 运行服务器:
    dist/index.js

服务器配置

为了让 MCP 客户端连接到 Bazel MCP Server,您需要在客户端的 MCP 配置文件中添加服务器配置信息。以下是一个 '.cursor/mcp.json' 的配置示例:

{
  "mcpServers": {
    "bazel": {
      "command": "npx",
      "args": [
        "-y",
        "github:nacgarg/bazel-mcp-server",
        // (可选) 指定 Bazel 二进制文件路径,如果 bazel 不在 PATH 中
        // "--bazel_path",
        // "/absolute/path/to/your/bazel/binary",
        // (可选) 指定 Bazel 工作区路径,默认为当前目录
        // "--workspace_path",
        // "/absolute/path/to/your/bazel/workspace"
      ]
    }
  }
}

配置参数说明:

  • 'server name': 'bazel' (服务器名称,客户端用于引用)
  • 'command': 'npx' (启动命令,使用 npx 运行 GitHub 仓库)
  • 'args': 启动参数列表:
    • '-y github:nacgarg/bazel-mcp-server': 指定要运行的 GitHub 仓库地址。
    • '--bazel_path': (可选) Bazel 二进制文件的绝对路径。仅当 'bazel' 命令不在系统 PATH 环境变量中时需要配置。
    • '--workspace_path': (可选) Bazel 工作区的绝对路径。默认为 MCP 服务器启动时的当前工作目录。如果您的 Bazel 工作区不在默认位置,请指定此项。

基本使用方法

  1. 启动 Bazel MCP Server (根据安装步骤选择一种方式启动)。
  2. 在您的 MCP 客户端 (如 Cursor 或 Claude Desktop) 中配置 Bazel MCP Server (参考服务器配置)。
  3. 在 MCP 客户端中,即可通过配置的 'server name' (例如 'bazel') 调用 Bazel MCP Server 提供的工具,例如,指示 LLM 使用 'bazel_build_target' 工具构建指定的 Bazel 目标。
  4. 具体工具的使用和参数,请参考仓库的 README.md 文件或工具的 'inputSchema' 定义。

信息

分类

开发者工具