NewAgent Observability is live.
Back to directory
BuildPulse logo

BuildPulse MCP server: 5 tools for flaky tests

A narrow connector for flaky-test triage, why the registry entry and the wire disagree, and what the tools do not cover.

Connector
Official, self-hosted
Coverage
Flaky tests, coverage, test history, CI submissions
Tools
5, all on by default
Biggest risk for an agent
Three of the five tools cover a fixed fourteen-day window

Last verified 1 September 2026 · from The BuildPulse repository, npm and the server's own tools/list response

This page is one of 90 in a directory of monitoring and developer tools. Each page checks what an AI coding agent can get out of the tool through its MCP server, the connector that lets the agent query the tool directly.

Summary

BuildPulse publishes a deliberately narrow MCP server. A connection registers 5 tools, all about flaky tests: the flaky inventory, a repository flakiness score, a coverage percentage, one test's failure history and the recent CI submissions.

Fifteen connectors measured in this guide cost less than BuildPulse does. The definitions cost between 686 and 1,463 tokens, which is 0.3% to 0.7% of a 200,000-token window.

Three of the five tools describe a fixed fourteen-day window, so an answer is about the last fourteen days rather than about all history.

What is the BuildPulse MCP server?

It is BuildPulse's server for the Model Context Protocol. BuildPulse tracks flaky and disruptive tests across CI runs, so a connected agent can tell a real regression from a known flake.

The five tools follow one workflow. list_recent_submissions shows which CI runs uploaded results, get_repo_flakiness gives a health score, find_flaky_tests lists the offenders and get_test_history shows one test's recent failures with build URLs and commit hashes.

get_repo_coverage is the odd one out. It returns the coverage percentage from the most recent coverage report rather than anything about flakiness.

BuildPulse's five tools stay deliberately close to flaky-test evidence: inventory, score, coverage, history and CI submissions. That narrow focus does not make it an operational, agent-observability or cost connector.

Part of the workWhat BuildPulse has hereCan an agent reach it
Code, tests & reviewFlaky test inventory, coverage, test historyYes. Core strength, within a fourteen-day window on three of the five tools
CI & releaseCI submissionsPartial. list_recent_submissions shows which CI runs uploaded results; there are no pipeline tools
Production observabilityNoneNo metrics, logs or traces from running services
Agent observability & evalsNoneNo traces, evaluations or prompt versioning for your own agents
AI cost managementNoneNo spend data of any kind

For an agent, that means BuildPulse answers one question well: is this failure new, or is this test always like that. It cannot show the code, the pipeline configuration or the running service, so it is a companion to a repository connector rather than a replacement for one.

What can an AI agent do with BuildPulse?

TaskToolsWorksWatch out for
Ask why CI is redlist_recent_submissionsYesIts own description names this as the first call for that question
Take a health snapshotget_repo_flakiness get_repo_coverageYesFlakiness covers fourteen days; coverage is from the most recent report
List the worst offendersfind_flaky_testsYesTwo sort orders: BuildPulse's own disruptiveness ranking, which is the default, and recency
Check one test's recordget_test_historyYesUp to ten events from the last fourteen days, keyed by BuildPulse test ID
Get from a flake to the build that failedget_test_historyYesEach event carries the CI build URL and the commit hash
See the test codeGitHubNo, separate serverBuildPulse holds outcomes, never source
Re-run a failing jobCircleCI, GitHub or HarnessNo, separate serverNothing here triggers CI; every tool reads

find_flaky_tests returns BuildPulse test IDs, and get_test_history needs one. Running them in that order is the whole workflow.

5 tools registered, all on by default, all read-only

Orientation1
list_recent_submissions
Health2
get_repo_flakinessget_repo_coverage
Inventory1
find_flaky_tests
Detail1
get_test_history

No tool writes, triggers a build or changes state. Counted on 24 August 2026 from the released npm package.

What connecting costs before the first question

A context window is the amount of text a model can hold at once, and connecting uses some of it before the agent asks anything. Every tool the server registers sends its name, description and input schema to the model when the session starts. The tool list is charged whether or not a single tool is called.

5 tools cost between 686 and 1,463 tokens, among the smallest figures measured in this guide; fifteen connectors cost less.

The proportions are unremarkable, which is the point. Descriptions average 221 characters and schemas 336, so a narrow server with ordinary text costs almost nothing to keep connected.

Tool setToolsTokens (GPT-5.6, GPT-5.5)Tokens (GPT-4, GPT-3.5)Tokens (Claude Haiku 4.5 to Opus 5)Share of a 200,000-token window
Every tool, as registered5696 to 982686 to 9841,411 to 1,4630.3% to 0.7%

Encodings: GPT-5.6, GPT-5.5 o200k_base; GPT-4, GPT-3.5 cl100k_base; Claude Haiku 4.5 to Opus 5 count_tokens. Counted 24 August 2026 from tools/list on the released npm package 0.1.5. It was run locally with a placeholder token.

Registration is static, so no BuildPulse account was involved. Figures cover name, description and input schema. The two models in column one share the o200k_base encoding, so they get one count. The spread is formatting, about 43%. Reasoning tokens are output, spent per request. This count is input, charged once at connection.

The Claude figures are measured rather than encoded. Anthropic publishes no local tokenizer. The definitions were sent to the API's count_tokens endpoint, and a no-tools baseline was subtracted. The range covers two tokenizer generations rather than two serializations. Haiku 4.5 and Opus 4.6 sit at the low end. Opus 5 and Sonnet 5 sit at the high end. The gap between them is a small fraction.

BuildPulse MCP server limits: where answers come back incomplete

Both limits below come from a bounded window that the results themselves do not mention.

The agent says: This test has never been flaky. It means not in fourteen days.

find_flaky_tests returns tests that failed intermittently in the last fourteen days, get_repo_flakiness scores the same period, and get_test_history returns up to ten events from it.

None of the results restates the window, so an absence reads as a permanent fact rather than a recent one.

Guard: Require the agent to state the fourteen-day window whenever it reports an absence.

The agent says: Coverage is at 74%. That is the most recent report, not a trend.

get_repo_coverage returns the current coverage percentage from the most-recent coverage report. There is no history tool for coverage, unlike for flakiness.

Guard: Have the agent say that a coverage figure comes from one report rather than a period.

The registry entry and the released package disagree on how many tools exist.

The published 0.1.5 package registers five tools in its tools/list response, captured on 24 August 2026. A registry listing is metadata submitted at publication and is not re-derived from the running server.

Guard: Count tools from tools/list on the version you actually run, not from a catalog entry.

How to configure BuildPulse MCP for agents

  1. 1

    Expect a fourteen-day horizon

    find_flaky_tests, get_repo_flakiness and get_test_history all describe that window, so nothing older is reachable.

  2. 2

    Get the token from the right place

    The server's own startup error names the path: the BuildPulse app, then Organization Settings, then API Tokens.

  3. 3

    Pair it with a repository connector

    The tools return build URLs and commit hashes, and something else has to open them.

  4. 4

    Do not budget context for it

    At 686 tokens this is among the cheapest connections measured here, so there is no reason to disconnect it between tasks.

Paste this into your agent’s instructions

Every headline number here is bounded by a fourteen-day window that does not appear in the result. The block makes the agent say so.

Terminal
When you answer using BuildPulse MCP tools, state:
- The repository the numbers cover.
- The window. find_flaky_tests, get_repo_flakiness and
  get_test_history all report the last fourteen days.
- Whether a coverage figure came from get_repo_coverage, which
  reads the most recent report rather than a period.
Never state that data does not exist. State that no results
were returned for the repository and window above.
Write your answer in ASD-STE100 Simplified Technical
English. Use short sentences with one idea in each.

Do you need the MCP server at all?

Yes, during triage. For a weekly review the BuildPulse web application is the better surface, and reading a dashboard costs no context at all.

The connector earns its place inside a failing build. An agent that can ask whether this failure is known, and get a commit hash back, saves the round trip to a browser.

For CI itself, a pipeline connector answers what ran and lets you re-run it. This one only reports on test outcomes.

Connect it during triage. Use the web application for periodic review of the same numbers.

BuildPulse MCP server setup

The package runs with npx and needs one token in BUILDPULSE_TOKEN. Without it the server exits before registering anything.

The startup message names where to find a token, which is unusual and worth using rather than searching the documentation.

Claude Code

One token. The tool list is small enough that it costs under a thousand tokens.

Terminal
claude mcp add-json "buildpulse" '{"command":"npx",
  "args":["-y","@buildpulse/mcp"],
  "env":{"BUILDPULSE_TOKEN":"<your-token>"}}'

Cursor

In ~/.cursor/mcp.json. The token is the only credential involved.

Terminal
{"mcpServers":{"buildpulse":{"command":"npx",
  "args":["-y","@buildpulse/mcp"],
  "env":{"BUILDPULSE_TOKEN":"<your-token>"}}}}

Codex CLI

Codex reads TOML, so the JSON blocks above will not transfer. The token still applies.

Terminal
[mcp_servers.buildpulse]
command = "npx"
args = ["-y", "@buildpulse/mcp"]
env = { BUILDPULSE_TOKEN = "<your-token>" }

Every other client

Each block below is the configuration for one client, with the file path and the key that client expects.

Claude Desktop

macOS ~/Library/Application Support/Claude/claude_desktop_config.json. Windows %APPDATA%\Claude\claude_desktop_config.json. There is no CLI. Edit through Settings, Developer, Edit Config.

Quit and restart fully for changes to load. Paths in args must be absolute. Logs at ~/Library/Logs/Claude/mcp.log.

Terminal
{"mcpServers":{"buildpulse":{"command":"npx",
  "args":["-y","@buildpulse/mcp"],
  "env":{"BUILDPULSE_TOKEN":"<your-token>"}}}}
Gemini CLI

~/.gemini/settings.json globally, or .gemini/settings.json per project. Key mcpServers. CLI: gemini mcp add.

Terminal
{"mcpServers":{"buildpulse":{"command":"npx",
  "args":["-y","@buildpulse/mcp"],
  "env":{"BUILDPULSE_TOKEN":"<your-token>"}}}}
VS Code Copilot

.vscode/mcp.json per workspace, or your user profile. CLI: code --add-mcp.

Terminal
{"servers":{"buildpulse":{"command":"npx",
  "args":["-y","@buildpulse/mcp"],
  "env":{"BUILDPULSE_TOKEN":"<your-token>"}}}}

The key is `servers`, not `mcpServers`. VS Code is the only client that uses that name, and copying a config from anywhere else fails silently.

Windsurf

~/.codeium/windsurf/mcp_config.json, which is the path Windsurf documents. Key mcpServers, the same JSON shape as Cursor, carrying the same API token.

Zed

~/.config/zed/settings.json, carrying the same API token as the blocks above.

The key is `context_servers`. Zed does not call them MCP servers in config, so searching its settings for mcp finds nothing.

Google Antigravity

~/.gemini/config/mcp_config.json globally, or .agents/mcp_config.json per project. Key mcpServers. There is no CLI. Use the /mcp overlay in the editor. Supports stdio, streamable HTTP, SSE and websocket.

Terminal
{"mcpServers":{"buildpulse":{"command":"npx",
  "args":["-y","@buildpulse/mcp"],
  "env":{"BUILDPULSE_TOKEN":"<your-token>"}}}}
Amp (Sourcegraph)

~/.config/amp/settings.json or .amp/settings.json, carrying the same API token. The amp mcp CLI covers approve, doctor and oauth.

The key is `amp.mcpServers`, namespaced. A bare mcpServers block is ignored.

Cline

~/.cline/mcp.json per the docs. The source also reads ~/.cline/data/settings/cline_mcp_settings.json. Key mcpServers, standard JSON shape, carrying the same API token. Supports stdio, streamable HTTP and SSE.

Goose (Block)

~/.config/goose/config.yaml, carrying the same API token.

YAML, and servers are called `extensions`. Goose does not use the MCP vocabulary in config at all. Add one interactively with goose configure, or per session with goose session --with-extension.

Kiro (AWS)

.kiro/settings/mcp.json per workspace, or ~/.kiro/settings/mcp.json globally. Key mcpServers, standard JSON shape, carrying the same API token.

Warp

~/.warp/.mcp.json or .warp/.mcp.json. Key mcpServers, standard shape, carrying the same API token. Also addable through the /agent-add-mcp skill.

JetBrains Junie

.junie/mcp/mcp.json per project, or ~/.junie/mcp/mcp.json. Key mcpServers, carrying the same API token. Use /mcp in the CLI to manage.

Roo Code

.roo/mcp.json per project. The global file is mcp_settings.json, opened from the Roo Code MCP settings view with Edit Global MCP. Key mcpServers, carrying the same API token.

Continue

.continue/mcpServers/*.yaml, one file per server, carrying the same API token.

YAML, and `mcpServers` is a list, not an object. Every JSON client keys servers by name. Continue takes an array, so a converted config will not parse.

Trae

.trae/mcp.json per project, or paste into the UI under Raw Config (JSON). Key mcpServers, standard shape, carrying the same API token.

Devin

Devin has no config file to edit. Servers are added through a web form in the settings UI, and Devin's documentation states you do not need to write or paste JSON. The block below is the shape those fields describe, shown for reference. Either route uses the same API token.

Pinned version

Pinning avoids a tool list changing under you between sessions. The token is unchanged.

Terminal
{"mcpServers":{"buildpulse":{"command":"npx",
  "args":["-y","@buildpulse/mcp@0.1.5"],
  "env":{"BUILDPULSE_TOKEN":"<your-token>"}}}}

Read-only access, permissions and security

  • BuildPulse exposes test evidence only

    None of its five tools creates, updates, deletes or triggers a build.

  • The token is the whole boundary

    There is no scoping inside the server, so what the token can see is what the agent can see.

  • Results carry links outward

    get_test_history returns CI build URLs and commit hashes, which points the agent at systems this connector does not cover.

  • The tool list is small enough to audit

    Five names and five schemas can be read in full before connecting, which is not true of most servers here.

Troubleshooting

The server exits immediately
BUILDPULSE_TOKEN is not set. The server prints the requirement and names the path to a token: the BuildPulse app, Organization Settings, then API Tokens.
A known flaky test is missing
find_flaky_tests covers tests that failed intermittently in the last fourteen days. A test that was quiet for fourteen days is outside the window.
`get_test_history` returns nothing
It needs a BuildPulse test ID rather than a test name. Run find_flaky_tests first and pass the identifier it returns.
The registry lists a different tool count
Trust the wire. The released 0.1.5 package registers five tools, which is what was captured for this page on 24 August 2026.

BuildPulse MCP server: Reference

ItemValue
Statusnpm 0.1.5, published 17 May 2026 · repository pushed 19 August 2026
Adoption0 stars · 0 forks · 3 releases · repository created 17 May 2026
LicenseMIT
Package@buildpulse/mcp on npm, binary buildpulse-mcp
AuthBUILDPULSE_TOKEN, required at startup
Tools5, all on by default, all read-only
WindowFourteen days on three of the five tools
Context cost686 to 1,463 tokens

What engineers report

BuildPulse published @buildpulse/mcp to npm on 17 May 2026 and pushed the repository on 19 August 2026. It has no stars and little public discussion, so the figures below come from the package and the wire rather than from community reports.

What was checkedWhat it shows
Stars0
Last push19 August 2026
Latest release0.1.5 on npm, 17 May 2026
LicenseMIT
Tools returned by tools/list5
Average description221 characters per tool
Average schema size336 characters per tool

Repository facts from the GitHub API and npm, retrieved 24 August 2026. Tool counts and sizes come from the released package's own tools/list response, which is the figure this page uses wherever a catalog disagrees.

Should you connect an agent to BuildPulse?

Yes. Best for leaving connected permanently, given that it costs under a thousand tokens to do so.

Strongest fit
Teams already uploading test results to BuildPulse who want flake triage without leaving the editor.
Main advantage
One of the cheapest connections measured here, with a workflow that runs in two calls.
Main weakness
A fourteen-day horizon on the tools that matter, and no way to reach further back.
Operational risk
None from the tools themselves. Every one reads, and nothing triggers a build.

From Oodle

One platform for agent traces and infrastructure

Agent traces usually sit in a different product from the rest of your telemetry, so when a slow database makes an agent slow the symptom is in one tool and the cause is in another. Oodle keeps both in one query surface, from $10 per million spans.

See agent observability

Frequently asked questions

How many tools does the BuildPulse MCP server have?

The released 0.1.5 npm package registers five read-only tools by default. Counted from its own tools/list response on 24 August 2026.

What do the tool definitions cost?

Between 686 and 1,463 tokens, or 0.3% to 0.7% of a 200,000-token window. Fifteen connectors measured cheaper.

How far back can it see?

Fourteen days for flaky tests, repository flakiness and test history. Coverage comes from the most recent report rather than a period.

Can an agent re-run a failing job?

No. Every tool reads. Test history returns the CI build URL, and a pipeline connector is needed to act on it.

Where do I get a token?

The server's own startup message names the path: the BuildPulse app, then Organization Settings, then API Tokens.

Changelog

  • 6 June 2026. BuildPulseLLC/buildpulse-mcp tagged mcp-v0.1.6. The npm package measured for this page is 0.1.5, published 17 May 2026.
  • 17 May 2026. First release, mcp-v0.1.5.

Sources

Every number on this page traces to one of these

  1. Repository facts from the GitHub API · BuildPulseLLC/buildpulse-mcp, retrieved 24 August 2026
  2. Package and publication facts from npm · @buildpulse/mcp 0.1.5
  3. Tool counts, descriptions, schema sizes and the fourteen-day window from the server's own tools/list response

BuildPulse’s own MCP documentation

Also code, tests and review:

For the build a flake came from: