mcpField
B
Bazel Mcp

Bazel Mcp

本地服务
github.com/saeid-rez开发工具26 天前更新

关于 Bazel Mcp

Bazel Mcp 是本地 MCP 服务,可让 AI 助手访问 Bazel 工作区查询、构建、测试和运行操作。它面向使用 Bazel 仓库的开发者,并为构建和测试失败提供结构化诊断。

主要功能

  1. 01运行 query、cquery 和 aquery
  2. 02列出目标并检查依赖
  3. 03追踪依赖路径和反向依赖
  4. 04查找受文件变更影响的目标
  5. 05构建、测试和运行目标
  6. 06读取 BUILD 文件

适用场景

  1. 01浏览 Bazel 工作区中的目标
  2. 02追踪目标的依赖链
  3. 03识别代码变更影响的目标
  4. 04运行构建和测试并查看失败详情

MCP 相关

向 MCP 客户端提供 Bazel 工作区检查和执行工具,包括查询、目标列表、依赖分析、构建、测试和运行。命令默认在活动工作区执行,也可显式配置工作区根目录。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bazel": {
"command": "uvx",
"args": [
"git+https://github.com/saeid-rez/bazel-mcp"
]
}
}
}
启动命令uvx 'git+https://github.com/saeid-rez/bazel-mcp'

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypigit+https://github.com/saeid-rez/bazel-mcp

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Bazel MCP

一个 Model Context Protocol 服务,可向 AI 助手提供 Bazel 构建系统的功能。

仓库:github.com/saeid-rez/bazel-mcp

工具

工具描述
bazel_query运行任意 bazel query 表达式
bazel_cquery运行已配置的 bazel cquery 表达式(select() 和平台)
bazel_aquery运行操作 bazel aquery 表达式(编译器标志、命令)
list_targets列出软件包或子树中的目标
get_deps获取目标的直接或传递依赖项
get_rdeps获取指定范围内的反向依赖项
get_dependency_path跟踪目标之间的依赖链(somepath/allpaths)
show_target_info通过 query --output=build 查看规则定义
find_affected_targets查找受变更文件影响的目标
bazel_build运行 bazel build,并提供结构化失败诊断
bazel_test运行 bazel test,并提供结构化目标及失败用例结果
bazel_run运行 bazel run,支持参数、环境变量和工作目录控制
explain_build_file读取 BUILD 文件内容以供分析

用法

需要 uv。如果 MCP 客户端未从 Bazel 工作区启动服务,请使用 Bazel 工作区路径配置服务。

Antigravity (agy)

将以下内容添加到 ~/.gemini/config/mcp_config.json:

{
  "mcpServers": {
    "bazel": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/saeid-rez/bazel-mcp",
        "bazel-mcp-server"
      ]
    }
  }
}

默认情况下,Bazel 命令会在当前活动工作区中运行。如果 Antigravity 未从你的 Bazel 工作区启动服务,请显式传入 --workspace-root:

{
  "mcpServers": {
    "bazel": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/saeid-rez/bazel-mcp",
        "bazel-mcp-server",
        "--workspace-root",
        "/path/to/your/bazel/workspace"
      ]
    }
  }
}
OpenCode

将以下内容添加到 opencode.json 或 opencode.jsonc。将 /path/to/your/bazel/workspace 替换为 Bazel 工作区的绝对路径。

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "bazel": {
      "type": "local",
      "command": [
        "uvx",
        "--from",
        "git+https://github.com/saeid-rez/bazel-mcp",
        "bazel-mcp-server",
        "--workspace-root",
        "/path/to/your/bazel/workspace"
      ],
      "enabled": true
    }
  }
}
GitHub Copilot CLI

将以下内容添加到 ~/.copilot/mcp-servers.json。将 /path/to/your/bazel/workspace 替换为 Bazel 工作区的绝对路径。

{
  "mcp": {
    "servers": {
      "bazel": {
        "command": "uvx",
        "args": [
          "--from",
          "git+https://github.com/saeid-rez/bazel-mcp",
          "bazel-mcp-server",
          "--workspace-root",
          "/path/to/your/bazel/workspace"
        ],
        "protocol": "stdio"
      }
    }
  }
}

或者,在 Copilot CLI 中运行 /mcp add bazel,并提供相同的命令和参数。

使用 uv 安装

若要持久安装服务,而不是从 GitHub 运行,请执行:

uv tool install bazel-mcp-server

然后使用以下已安装服务配置,替代上面的基于 GitHub 的命令。如果客户端未从 Bazel 工作区启动服务,请添加 --workspace-root 及其路径。

Antigravity (agy):

{
  "mcpServers": {
    "bazel": {
      "command": "bazel-mcp-server",
      "args": ["--workspace-root", "/path/to/your/bazel/workspace"]
    }
  }
}

OpenCode:

{
  "mcp": {
    "bazel": {
      "type": "local",
      "command": ["bazel-mcp-server", "--workspace-root", "/path/to/your/bazel/workspace"],
      "enabled": true
    }
  }
}

GitHub Copilot CLI:

{
  "mcp": {
    "servers": {
      "bazel": {
        "command": "bazel-mcp-server",
        "args": ["--workspace-root", "/path/to/your/bazel/workspace"],
        "protocol": "stdio"
      }
    }
  }
}
Cursor

将以下内容添加到 Bazel 工作区中的 .cursor/mcp.json。

{
  "mcpServers": {
    "bazel": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/saeid-rez/bazel-mcp", "bazel-mcp-server"]
    }
  }
}

默认情况下,Bazel 命令会在当前打开的工作区中运行。

如果 Cursor 未从 Bazel 工作区启动服务,请显式传入工作区路径:

{
  "mcpServers": {
    "bazel": {
      "command": "uvx",
      "args": [
        "bazel-mcp-server",
        "--workspace-root",
        "/path/to/your/bazel/workspace"
      ]
    }
  }
}

其他可选标志:

bazel-mcp-server --bazel-path bazelisk --timeout 600 --max-output-chars 64000

开发

克隆仓库并在本地运行测试:

git clone https://github.com/saeid-rez/bazel-mcp
cd bazel-mcp
uv sync --group dev
uv run pytest

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。