- buildkite-mcp-server
buildkite-mcp-server
buildkite-mcp-server
This is an Model Context Protocol (MCP) server for Buildkite. The goal is to provide access to information from buildkite about pipelines, builds and jobs to tools such as Claude Desktop, GitHub Copilot and other tools, or editors.
Tools
get_cluster- Get details of a buildkite cluster in an organizationlist_clusters- List all buildkite clusters in an organizationget_cluster_queue- Get details of a buildkite cluster queue in an organizationlist_cluster_queues- List all buildkite queues in a clusterget_pipeline- Get details of a specific pipeline in Buildkitelist_pipelines- List all pipelines in a buildkite organizationlist_builds- List all builds in a pipeline in Buildkiteget_build- Get a build in Buildkitecurrent_user- Get the current useruser_token_organization- Get the organization associated with the user token used for this requestget_jobs- Get a list of jobs for a buildget_job_logs- Get the logs of a job in a Buildkite buildaccess_token- Get the details for the API access token that was used to authenticate the requestlist_artifacts- List the artifacts for a Buildkite buildget_artifact- Get an artifact from a Buildkite buildlist_annotations- List the annotations for a Buildkite buildlist_test_runs- List all test runs for a test suite in Test Engineget_test_run- Get a specific test run in Test Engineget_failed_test_executions- Get a list of the failed test executions for a run in Test Engineget_test- Get a test in Test Engine
Example of the get_pipeline tool in action.

Production
To ensure the MCP server is run in a secure environment, we recommend running it in a container.
Pull the pre-built image (recommended):
docker pull ghcr.io/buildkite/buildkite-mcp-server
Or build it yourself using GoReleaser and copy the binary into your path:
goreleaser build --snapshot --clean
configuration
Create a buildkite api token with read access to pipelines.
Claude Desktop Configuration
Use this configuration if you want to run the server buildkite-mcp-server Docker (recommended):
{
"mcpServers": {
"buildkite": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BUILDKITE_API_TOKEN",
"ghcr.io/buildkite/buildkite-mcp-server",
"stdio"
],
"env": {
"BUILDKITE_API_TOKEN": "bkua_xxxxxxxx"
}
}
}
}
Configuration if you have buildkite-mcp-server installed locally.
{
"mcpServers": {
"buildkite": {
"command": "buildkite-mcp-server",
"args": [
"stdio"
],
"env": {
"BUILDKITE_API_TOKEN": "bkua_xxxxxxxx"
}
}
}
}
Goose Configuration
For Docker with Goose (recommended):
extensions:
fetch:
name: Buildkite
cmd: docker
args: ["run", "-i", "--rm", "-e", "BUILDKITE_API_TOKEN", "ghcr.io/buildkite/buildkite-mcp-server", "stdio"]
enabled: true
envs: { "BUILDKITE_API_TOKEN": "bkua_xxxxxxxx" }
type: stdio
timeout: 300
Local configuration for Goose:
extensions:
fetch:
name: Buildkite
cmd: buildkite-mcp-server
args: [stdio]
enabled: true
envs: { "BUILDKITE_API_TOKEN": "bkua_xxxxxxxx" }
type: stdio
timeout: 300
VSCode Configuration
VSCode supports interactive inputs for variables. To get the API token interactively on MCP startup, put the following in .vscode/mcp.json
{
"inputs": [
{
"id": "BUILDKITE_API_TOKEN",
"type": "promptString",
"description": "Enter your BuildKite Access Token (https://buildkite.com/user/api-access-tokens)",
"password": true
}
],
"servers": {
"buildkite": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BUILDKITE_API_TOKEN",
"ghcr.io/buildkite/buildkite-mcp-server",
"stdio"
],
"env": {
"BUILDKITE_API_TOKEN": "${input:BUILDKITE_API_TOKEN}"
}
}
}
}
Security
This container image is built using cgr.dev/chainguard/static base image and is configured to run the MCP server as a non-root user.
Contributing
Notes on building this project are in the DEVELOPMENT.md
Disclaimer
This project is in the early stages of development and is not yet ready for use.
License
This project is released under MIT license.
