关于 BuildPulse
BuildPulse 是 MCP 服务,供 AI Agent 和 MCP 客户端查询 BuildPulse 的 CI 测试分析。它通过托管或本地传输方式提供仓库级的易抖动测试、CI 运行、失败和覆盖率信息。
主要功能
- 01列出组织和代码仓库
- 02搜索易抖动测试清单
- 03查看测试及 CI 运行历史
- 04汇总近期测试失败
- 05检查仓库易抖动率和覆盖率
- 06打开 BuildPulse 结果链接
适用场景
- 01调查失败的 CI 运行
- 02查找反复出现的易抖动测试
- 03查看多次提交中的近期失败
- 04评估仓库的易抖动率和覆盖率
MCP 相关
向 MCP 客户端提供 BuildPulse 工具、引导提示词和资源模板。支持使用 OAuth 2.1 登录或令牌的托管 Streamable HTTP,也支持使用 API 令牌的本地 stdio。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.buildpulse.io/mcpclaude mcp add --transport http buildpulsellc-buildpulse https://mcp.buildpulse.io/mcp{"mcpServers":{"buildpulsellc-buildpulse":{"type":"http","url":"https://mcp.buildpulse.io/mcp"}}}在 Cursor 中打开{"servers":{"buildpulsellc-buildpulse":{"type":"http","url":"https://mcp.buildpulse.io/mcp"}}}在 VS Code 中打开{"mcpServers":{"buildpulsellc-buildpulse":{"type":"http","url":"https://mcp.buildpulse.io/mcp"}}}{"mcpServers":{"buildpulsellc-buildpulse":{"serverUrl":"https://mcp.buildpulse.io/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.buildpulse.io/mcp需要授权工具
详细介绍
适用于 BuildPulse Platform API 的 Model Context Protocol 服务。在 Claude Desktop、Cursor、ChatGPT、Cline、Windsurf、Continue、Zed、 VS Code Copilot 以及其他任何兼容 MCP 的 AI Agent 中查看不稳定测试、CI 运行历史和覆盖率健康状况。
快速开始
托管版(推荐)——无需安装,也无需 API 令牌。客户端 会打开浏览器,你只需使用 BuildPulse 账户登录(Google、 GitHub、Bitbucket、Apple 或电子邮件):
claude mcp add --transport http buildpulse https://mcp.buildpulse.io/mcp
Claude.ai、ChatGPT、Cursor、VS Code:添加 https://mcp.buildpulse.io/mcp
作为 HTTP/远程 MCP 服务,并按提示完成登录。
本地 stdio——适用于只能启动进程的客户端,或无法通过浏览器 登录的脚本和 CI。此方式需要 API 令牌:
BUILDPULSE_TOKEN=bp_... npx -y @buildpulse/mcp
请参阅身份验证,了解令牌的获取方式以及 何时需要使用令牌。
试着这样提问
- “为什么
web-client的 CI 是红色的?显示上次运行中的失败测试。” - “这周
platform-api中哪些测试最不稳定?它们在哪里失败?” - “
agents的测试覆盖得怎么样?给我不稳定性和覆盖率数据。” - “
api最近 10 次运行中,哪些测试失败过不止一次?” - “对
frontend中的不稳定测试进行分类,并告诉我哪些应该优先隔离。”
安装
npx -y @buildpulse/mcp
或者进行全局固定安装:
npm install -g @buildpulse/mcp
安装时,软件包会下载与你的平台匹配的原生二进制文件。支持的平台:macOS arm64/x64、Linux arm64/x64、Windows x64。
身份验证
有两种身份验证方式,大多数人只需要第一种。
| 登录方式 | 需要 API 令牌? | 适用场景 | |
|---|---|---|---|
托管 SSO (https://mcp.buildpulse.io/mcp) | OAuth 2.1:客户端会打开 BuildPulse 登录页面(Google、GitHub、Bitbucket、Apple 或电子邮件),并为你保存会话 | 不需要 | Claude Code、Claude.ai、ChatGPT、Cursor、VS Code,以及任何支持通过 OAuth 使用远程 MCP 服务的客户端 |
| API 令牌 | 用于 stdio 的 BUILDPULSE_TOKEN=bp_...,或发送到托管 URL 的 Authorization: Bearer bp_... 标头 | 需要 | 本地 npx stdio、不支持 OAuth 的客户端、脚本和 CI |
请前往 https://buildpulse.io → Organization Settings → API
Tokens 获取令牌。令牌格式为 bp_<64 hex chars>;旧版 40 位
十六进制令牌仍然有效。令牌可访问与你账户相同的组织。
配置
托管版配置片段通过 SSO 登录。stdio 配置片段需要
BUILDPULSE_TOKEN;请将 bp_... 替换为你的令牌。
Claude Code
托管版(SSO,无需令牌):
claude mcp add --transport http buildpulse https://mcp.buildpulse.io/mcp
stdio(令牌):
claude mcp add buildpulse -e BUILDPULSE_TOKEN=bp_... -- npx -y @buildpulse/mcp
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"buildpulse": {
"command": "npx",
"args": ["-y", "@buildpulse/mcp"],
"env": { "BUILDPULSE_TOKEN": "bp_..." }
}
}
}
Cursor
.cursor/mcp.json(每个项目)或 ~/.cursor/mcp.json(全局)。
通过 SSO 托管(Cursor 会在首次使用时提示你登录):
{
"mcpServers": {
"buildpulse": {
"url": "https://mcp.buildpulse.io/mcp"
}
}
}
若要使用令牌而非登录,请添加
"headers": { "Authorization": "Bearer bp_..." }。对于 stdio,请使用
Claude Desktop 代码片段中的 command / args / env 结构。
VS Code(GitHub Copilot Agent 模式)
.vscode/mcp.json。通过 SSO 托管(服务首次启动时,VS Code 会打开登录界面):
{
"servers": {
"buildpulse": {
"type": "http",
"url": "https://mcp.buildpulse.io/mcp"
}
}
}
若要改用令牌,请添加 "headers": { "Authorization": "Bearer bp_..." }。
对于 stdio,请使用 "type": "stdio",以及 Claude Desktop 代码片段中的
command / args / env 字段。
Windsurf
~/.codeium/windsurf/mcp_config.json — 使用与
Claude Desktop 相同的 mcpServers 块。
Cline
Cline → MCP 服务 → 配置 → 将相同的 mcpServers 块粘贴到
cline_mcp_settings.json 中。
ChatGPT
ChatGPT → 设置 → 连接器 → 创建 → URL
https://mcp.buildpulse.io/mcp。ChatGPT 会完成 SSO 登录;
无需粘贴令牌。
Claude.ai
设置 → 连接器 → 添加自定义连接器 → URL
https://mcp.buildpulse.io/mcp。按提示登录;无需令牌。
其他客户端
Continue、Zed 以及其他所有兼容 MCP 的客户端都使用相同的
command / args / env 字段。请参阅
安装中心,查看各客户端可直接复制粘贴的代码片段。
组织(多租户)
你的 BuildPulse 令牌可能允许访问多个组织。
每个作用于仓库的工具都接受可选的 organization_id 参数(组织的
id UUID,可通过 list_my_organizations 查找):
- 单组织令牌 — 省略
organization_id。系统会自动默认使用你唯一的组织。无需更改;你不必考虑组织问题。 - 多组织会话(
list_my_organizations返回 2 个或更多组织)— 每次调用作用于仓库的工具时,必须传入organization_id(list_repositories、find_flaky_tests、get_test_history、list_recent_submissions、get_submission_test_results、get_recent_failures、get_repo_flakiness、get_repo_coverage)。系统不会自动选择组织 — 省略该参数会返回一条错误,其中列出所有可访问的组织及其 UUID,以便 Agent 选择正确的组织并重试。请先调用list_my_organizations枚举组织。
这样可以避免系统悄悄查询错误的组织(通常是空组织),导致结果为空且令人困惑。
工具
| 工具 | 用途 |
|---|---|
list_my_organizations | 枚举此令牌可访问的组织;获取要作为 organization_id 传入的 id(UUID)。 |
list_repositories | 列出组织中的仓库。 |
find_flaky_tests | 搜索仓库中的不稳定测试清单;可按标签、最近程度和自由文本筛选。 |
get_test_history | 查看特定测试最近的中断事件。 |
list_recent_submissions | 查看仓库最近提交的测试结果(CI 运行)。 |
get_submission_test_results | 查看一次提交(一次 CI 运行)中每个测试的结果。 |
get_recent_failures | 查看最近几次提交中失败的测试,并按测试标识聚合。 |
get_repo_flakiness | 查看过去 14 天的当前不稳定率。-1 表示没有近期结果。 |
get_repo_coverage | 查看最新上传报告中的当前覆盖率。-1 表示没有报告。 |
作用于仓库的工具接受 organization_id 参数 — 多组织会话中必填,单组织令牌中可选(会自动默认)。请参阅上文的
组织。
所有包含测试或仓库名称的输出都带有指向 BuildPulse Web 应用的 web_url 深层链接 — 与 Sentry / Atlassian 在其 MCP 响应中采用的做法一样精致。
提示词
此服务还提供四个引导式提示词(在支持此功能的客户端中可通过斜杠菜单选择):
/triage_flaky_tests/ci_health_check/explain_test_failure/whats_red
两种传输方式
| 传输方式 | 二进制文件 | 运行位置 |
|---|---|---|
| stdio | cmd/mcp | npm → npx -y @buildpulse/mcp |
| Streamable HTTP | cmd/mcp-remote | 托管于 https://mcp.buildpulse.io/mcp |
工具接口相同;提示词相同;资源相同。请选择客户端支持的方式。stdio 方式通用;托管版本用于 Claude.ai 网页版和 ChatGPT,默认通过 OAuth 2.1 SSO 进行身份验证(PKCE + 动态客户端注册;发现端点为 /.well-known/oauth-authorization-server),也可使用 Bearer API 令牌。托管服务还会在主机根路径发布着陆页、robots.txt、sitemap.xml 和 llms.txt。
资源
该服务提供两个 MCP 资源模板,让 Agent 无需调用工具即可将状态载入上下文:
buildpulse://repos/{repo}/flaky-testsbuildpulse://repos/{owner}/{name}/submissions
环境变量
| 变量 | 必需 | 默认值 |
|---|---|---|
BUILDPULSE_TOKEN | 仅 stdio 需要(托管服务使用 SSO) | — |
PLATFORM_API_URL | 否 | https://platform.buildpulse.io |
托管服务(mcp-remote)只有在 PLATFORM_API_URL 指向生产环境或开发环境的 Platform API 时才会启动。本地 stdio(npx @buildpulse/mcp)不变。有关威胁模型、租户隔离、P1 速率限制(每个令牌每分钟 120 次工具调用)、工具审计日志、RFC 7009 /oauth/revoke,以及我们有意不加以限制的内容(读取操作的 HITL、隐藏工具、终止多步分诊),请参阅 SECURITY.md。
从源代码构建
git clone https://github.com/BuildPulseLLC/buildpulse-mcp
cd buildpulse-mcp
go build -o ./bin/buildpulse-mcp ./cmd/mcp
go build -o ./bin/buildpulse-mcp-remote ./cmd/mcp-remote
需要 Go 1.26+(参见 go.mod)。
运行测试
go test -race ./...
有关开发工作流,请参阅 CONTRIBUTING.md;有关发布历史,请参阅 CHANGELOG.md。
许可证
MIT — 参见 LICENSE。
相关链接
- BuildPulse Platform API — 底层公共 REST API
- npm 上的 @buildpulse/mcp
- 分发策略 — Claude、OpenAI、Smithery、Cursor 的发布详情
/docs/mcp— 带复制按钮的品牌安装中心- MCP 注册表条目 —
io.github.BuildPulseLLC/buildpulse-mcp
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。