# Buildkite MCP connector

The Buildkite connector lets Claude, ChatGPT, Cursor and the Elaichi Agent read and update your Buildkite pipelines, agents, clusters and queues through one governed endpoint, with every call running as the person who signed in.

Source: https://elaichi.ai/connectors/buildkite/

## Facts

| | |
| --- | --- |
| Application | Buildkite |
| Category | CI |
| AI tools | 50 |
| Authentication | Connects over OAuth |
| Bring your own OAuth app | No |
| Native MCP | Yes. Buildkite builds and runs this MCP server. Elaichi adds sign-in, access controls and an audit log on top |
| Support for its tools | support@buildkite.com |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Buildkite is connected

- Which agents are online in the production cluster right now?
- Pause dispatch on the deploy queue while we patch the hosts.
- List the pipeline schedules that fire tonight.

## Connect Buildkite in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Buildkite.
2. Optionally set Share with, then press Connect.
3. Approve it in Buildkite. Buildkite's own window opens. Whoever approves it decides what this connection can reach.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Buildkite tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Buildkite MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Buildkite MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Buildkite MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Buildkite to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Buildkite tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Buildkite through Elaichi

### Check which agents are online before a release

Platform. Ask which agents are connected to a cluster and what they are running right now. Spot a queue with nothing picking up jobs before the release train reaches it.

### Pause a queue during a maintenance window

Infrastructure. Pause dispatch on a cluster queue while you patch the hosts behind it, then resume it when they are back. Nobody has to find the right screen in Buildkite at midnight.

### Set up a pipeline for a new repository

Engineering. Create the pipeline, point it at the right cluster and describe how it should be configured in one plain request. Update the description or default branch later the same way.

### See what is scheduled to run tonight

Release. List the pipeline schedules across the organization and check which ones fire overnight. Confirm the nightly build is still on before you sign off.

### Add a cluster secret without opening a ticket

Security. Store a new cluster secret and confirm which secrets a cluster already holds. The audit log records who created it and when.

### Answer why a build is stuck in a minute

Developer experience. Find the queue a pipeline dispatches to, see whether dispatch is paused and check how many agents are serving it. Give the developer an answer instead of a link.

## Elaichi vs Zapier MCP vs Composio for Buildkite

All three can connect Buildkite to an AI assistant, and all three have admin controls. They differ in where access lives and how you pay.

| What to check | Elaichi | Zapier MCP | Composio |
| --- | --- | --- | --- |
| Where the AI connects | One address for the whole organization. Endpoint: https://api.elaichi.ai/mcp | A server per member, created at sign-in. | An MCP endpoint per team, or an SDK. |
| Control over Buildkite tools | Allow or restrict single Buildkite tools, per role or user. | App and action restrictions on the account. | Role permissions, down to the action. |
| Record of calls | One audit entry per Buildkite call. | A History tab of tool calls. | A log of every tool call. |
| Single sign-on | SAML or OIDC, plus SCIM, on Gold. | SAML on Enterprise. | SAML and OIDC on Enterprise. |
| Price | $15 per user per month. | 2 tasks per successful call. | Billed per tool call. |

Sources: Zapier MCP [docs](https://docs.zapier.com/mcp/get-started/quickstart), [security](https://docs.zapier.com/mcp/manage/security), [usage](https://docs.zapier.com/mcp/features/usage); Composio [docs](https://docs.composio.dev/docs/composio-connect), [gateway](https://composio.dev/mcp-gateway), [enterprise](https://composio.dev/enterprise), [pricing](https://composio.dev/pricing). Checked September 2026.

Longer take: [Zapier MCP alternative](/blog/zapier-mcp-alternative/) and [when you don't need an MCP gateway](/blog/when-you-dont-need-an-mcp-gateway/).

## Frequently asked questions

### How do I connect Buildkite to Claude?

Connect Buildkite in Elaichi first: pick it from the catalog and sign in with your Buildkite account over OAuth. There is no OAuth application to register and no client ID or secret to generate. Then open Claude, go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Claude signs you in to Elaichi and your Buildkite pipelines, agents and clusters are available in the chat.

### Does Buildkite work with ChatGPT and Cursor as well as Claude?

Yes. Once Buildkite is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Buildkite once and every client uses it.

### What can an AI agent actually do with my Buildkite data?

It can list and look up Buildkite pipelines, agents, clusters, cluster queues, cluster secrets and pipeline schedules, and it can create or update pipelines, clusters and queues, pause or resume dispatch on a queue, and add a cluster secret. In practice you ask things like which agents are online in the production cluster or whether the nightly schedule is still set. Short concrete asks like these work better than long sentences.

### Does connecting Buildkite give the AI access to my whole organization?

No. Every call runs inside the Buildkite access of the person who signed in, so the AI sees the organizations, clusters and pipelines that person can already see in Buildkite and nothing more. Elaichi can narrow that access further with roles and restrictions, and it never widens it.

### Can my team share one Buildkite connection?

Yes. One person connects Buildkite and shares the connection with a team in Elaichi, and nobody else handles a token or sees a credential. Each teammate still signs in to Elaichi as themselves, so the audit log names the actual person who paused a queue or updated a pipeline.

### Can I stop an agent from changing or pausing things in Buildkite?

Yes. Restrictions in Elaichi apply per action, so you can allow reading Buildkite pipelines and agents while blocking creating pipelines, updating clusters or pausing queue dispatch. A restricted action is never advertised to Claude, ChatGPT or Cursor at all, so no prompt can reach it.

### What happens to a Buildkite connection when someone leaves?

Offboarding that person in Elaichi ends their access to Buildkite through every client at once. A Buildkite connection they shared keeps working for everyone else on the team. If you ever want to remove Buildkite entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client.

### Does the Buildkite MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Buildkite is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

### Is Elaichi an alternative to Zapier MCP for Buildkite?

Yes. Both let Claude, ChatGPT or Cursor use Buildkite. Zapier MCP fits a team that already automates in Zapier, since each person signs in and acts as themselves in that account. Elaichi fits when IT wants one address for the whole company, per-tool rules by role, and a record of every Buildkite call.

### How is Elaichi different from Composio for Buildkite?

Composio gives AI agents tools and sign-in handling across 1,000+ apps, for developers building agents or people using an assistant, billed per tool call. Elaichi gives a company's own people governed access to Buildkite: one address, restrictions per role or user, and $15 per user per month. Both have role permissions and a log of every call.

## All 50 Buildkite tools

Every tool below is callable through https://api.elaichi.ai/mcp once Buildkite is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Access token** (Action). Uses the Get the current token REST API endpoint to retrieve information about the current API access token, including its scopes and UUID.
- **Current user** (Action). Uses the Get the current user REST API endpoint to retrieve details about the user account that owns the API token, including name, email, avatar, and account creation date. Required token scope: read_user.
- **User token organization** (Action). Uses the Get an organization REST API endpoint to retrieve details about the Buildkite organization associated with the user token used for this request. Required token scope: read_organizations.
- **List clusters** (List). Uses the List clusters REST API endpoint to list all clusters in an organization with their names, descriptions, default queues, and creation details. Required token scope: read_clusters.
- **Get cluster** (Get). Uses the Get a cluster REST API endpoint to retrieve detailed information about a specific cluster including its name, description, default queue, and configuration. Required token scope: read_clusters.
- **Create cluster** (Create). Uses the Create a cluster REST API endpoint to create a new cluster in an organization. Required token scope: write_clusters.
- **Update cluster** (Update). Uses the Update a cluster REST API endpoint to update an existing cluster's name, description, emoji, color, or default queue. Required token scope: write_clusters.
- **List cluster queues** (List). Uses the List queues REST API endpoint to list all queues in a cluster with their keys, descriptions, dispatch status, and agent configuration. Required token scope: read_clusters.
- **Get cluster queue** (Get). Uses the Get a queue REST API endpoint to retrieve detailed information about a specific queue including its key, description, dispatch status, and hosted agent configuration. Required token scope: read_clusters.
- **Create cluster queue** (Create). Uses the Create a self-hosted queue REST API endpoint to create a new queue in a cluster. Required token scope: write_clusters.
- **Update cluster queue** (Update). Uses the Update a queue REST API endpoint to update an existing queue's description or retry agent affinity. Required token scope: write_clusters.
- **Pause cluster queue dispatch** (Pause). Uses the Pause a queue REST API endpoint to pause dispatch on a queue, preventing new jobs from being dispatched to agents. Required token scope: write_clusters.
- **Resume cluster queue dispatch** (Resume). Uses the Resume a paused queue REST API endpoint to resume dispatch on a paused queue, allowing jobs to be dispatched to agents again. Required token scope: write_clusters.
- **List cluster secrets** (List). Uses the List secrets REST API endpoint to list a cluster's secrets and their details. Required token scope: read_secrets_details.
- **Get cluster secret** (Get). Uses the Get a secret REST API endpoint to retrieve details about a specific secret. Required token scope: read_secrets_details.
- **Create cluster secret** (Create). Uses the Create a secret REST API endpoint to create a secret with an optional description and access policy. Required token scope: write_secrets.
- **List agents** (List). Uses the List agents REST API endpoint to list agents in an organization with their connection state, host details, version, current job, and pause status. Required token scope: read_agents.
- **Get agent** (Get). Uses the Get an agent REST API endpoint to retrieve details about a specific agent including its connection state, host details, current job, metadata, and pause status. Required token scope: read_agents.
- **List pipelines** (List). Uses the List pipelines REST API endpoint to list all pipelines in an organization with their basic details, build counts, and current status. Required token scope: read_pipelines.
- **Get pipeline** (Get). Uses the Get a pipeline REST API endpoint to retrieve detailed information about a specific pipeline including its configuration, steps, environment variables, and build statistics. Required token scope: read_pipelines.
- **Create pipeline** (Create). Uses the Create a YAML pipeline REST API endpoint to set up a new CI/CD pipeline in Buildkite with YAML configuration, repository connection, and cluster assignment. Required token scope: write_pipelines.
- **Update pipeline** (Update). Uses the Update a pipeline REST API endpoint to modify an existing Buildkite pipeline's configuration, repository, settings, or metadata. Required token scope: write_pipelines.
- **List pipeline schedules** (List). Uses the List pipeline schedules REST API endpoint to list the pipeline schedules for a pipeline, including cron expression, target branch, environment variables, enabled state, and next scheduled build time. Required token scope: read_pipelines.
- **Get pipeline schedule** (Get). Uses the Get a pipeline schedule REST API endpoint to retrieve details about a single pipeline schedule including its cron expression, target branch, environment variables, enabled state, last failure, and next build time. Required token scope: read_pipelines.
- **Create pipeline schedule** (Create). Uses the Create a pipeline schedule REST API endpoint to create a new pipeline schedule that triggers builds on a cron-driven interval. Required token scope: write_pipelines.
- **Update pipeline schedule** (Update). Uses the Update a pipeline schedule REST API endpoint to modify an existing pipeline schedule's cron expression, branch, environment variables, or enabled state. Required token scope: write_pipelines.
- **List builds** (List). Uses the List builds for an organization REST API endpoint when pipeline_slug is omitted, or the List builds for a pipeline endpoint when it is provided. Both modes return lightweight summaries with each build's state, branch, commit, message, URL, and creation time. The…
- **Get build** (Get). Uses the Get a build REST API endpoint to retrieve metadata for a specific build without jobs or expanded pipeline information. Use list_jobs or get_job when you need job information. Required token scope: read_builds.
- **Get build test engine runs** (Get). Gets Test Engine runs data for a specific Buildkite Pipelines build, which can be used to look up test runs. Required token scope: read_builds.
- **Create build** (Create). Uses the Create a build REST API endpoint to trigger a new build on a Buildkite pipeline for a specific commit and branch, with optional environment variables, metadata, and author information. Required token scope: write_builds.
- **Cancel build** (Cancel). Uses the Cancel a build REST API endpoint to cancel a running build on a Buildkite pipeline. Required token scope: write_builds.
- **Rebuild build** (Action). Uses the Rebuild a build REST API endpoint to rebuild or retry an entire build on a Buildkite pipeline. Required token scope: write_builds.
- **List jobs** (List). Uses the List jobs REST API endpoint to list jobs for a build, with optional state filtering and cursor-based pagination. Required token scope: read_builds.
- **Get job** (Get). Uses the Get a job REST API endpoint to retrieve a job by UUID. Provide pipeline_slug and build_number for a build-scoped lookup, or omit both for an organization-scoped lookup. Required token scope: read_builds.
- **Unblock job** (Unblock). Uses the Unblock a job REST API endpoint to unblock a blocked job in a Buildkite build to allow it to continue execution. Required token scope: write_builds.
- **Retry job** (Action). Uses the Retry a job REST API endpoint to retry a specific job that failed or timed out in a Buildkite build. Required token scope: write_builds.
- **Get job env** (Get). Uses the Get a job's environment variables REST API endpoint to retrieve the environment variables for a specific job in a Buildkite build. Required token scope: read_job_env.
- **Search logs** (Search). Search log entries using regex patterns with optional context lines.
- **Tail logs** (Action). Show the last N entries from the log file (that is, N lines for recent errors and status checks).
- **Read logs** (Action). Read log entries from the file, optionally starting from a specific row number.
- **List artifacts for build** (List). Uses the List artifacts for a build REST API endpoint to list a build's artifacts across all of its jobs, including file details, paths, sizes, MIME types, and download URLs. Required token scope: read_artifacts.
- **List artifacts for job** (List). Uses the List artifacts for a job REST API endpoint to list an individual job's artifacts, including file details, paths, sizes, MIME types, and download URLs. Required token scope: read_artifacts.
- **Get artifact** (Get). Uses the Download an artifact REST API endpoint to download a specific artifact's content. The content is returned base64-encoded. Required token scope: read_artifacts.
- **List annotations** (List). Uses the List annotations for a build or List annotations for a job REST API endpoint to list annotations for a build or specific job. Required token scope: read_builds.
- **Create annotation** (Create). Uses the Create an annotation on a build or Create an annotation on a job REST API endpoint to create an annotation on a build or specific job. Required token scope: write_builds.
- **List tests** (List). Uses the List tests REST API endpoint to list tests in a Buildkite Test Engine test suite, with execution metrics aggregated over a selected time range. Supports filtering, metric sorting, and pagination. Required token scope: read_suites.
- **Get test** (Get). Uses the Get a test REST API endpoint to retrieve a specific test in Buildkite Test Engine. This provides additional metadata for failed test executions. Required token scope: read_suites.
- **List test runs** (List). Uses the List all runs REST API endpoint to list all test runs for a test suite in Buildkite Test Engine. Required token scope: read_suites.
- **Get test run** (Get). Uses the Get a run REST API endpoint to retrieve a specific test run in Buildkite Test Engine. Required token scope: read_suites.
- **Get failed executions** (Get). Uses the Get failed execution data REST API endpoint to retrieve failed test executions for a specific test run in Buildkite Test Engine. Optionally retrieves the expanded failure details such as full error messages and stack traces. Required token scope: read_suites.
