
Connects to the Buildkite API to surface your CI/CD data directly in Claude. You get access to pipelines, builds, jobs, and test analytics without switching contexts. Useful when debugging failing builds, investigating flaky tests, or checking deployment status during development conversations. The server runs in a container built on Chainguard's minimal static image for security. Buildkite maintains this officially, so it tracks their API changes. If you're already using Buildkite for CI/CD and want your AI assistant to help troubleshoot pipeline issues or query build history, this bridges that gap cleanly.
Public tool metadata for what this MCP can expose to an agent.
access_tokenGet information about the current API access token including its scopes and UUIDGet information about the current API access token including its scopes and UUID
No parameter schema in public metadata yet.
create_buildTrigger a new build on a Buildkite pipeline for a specific commit and branch, with optional environment variables, metadata, and author information8 paramsTrigger a new build on a Buildkite pipeline for a specific commit and branch, with optional environment variables, metadata, and author information
branchstringcommitstringenvironmentarrayignore_branch_filtersbooleanmessagestringmetadataarrayorg_slugstringpipeline_slugstringcreate_clusterCreate a new cluster in an organization5 paramsCreate a new cluster in an organization
colorstringdescriptionstringemojistringnamestringorg_slugstringcreate_cluster_queueCreate a new queue in a cluster4 paramsCreate a new queue in a cluster
cluster_idstringdescriptionstringkeystringorg_slugstringcreate_pipelineSet up a new CI/CD pipeline in Buildkite with YAML configuration, repository connection, and cluster assignment11 paramsSet up a new CI/CD pipeline in Buildkite with YAML configuration, repository connection, and cluster assignment
cancel_running_branch_buildsbooleancluster_idstringconfigurationstringcreate_webhookbooleandefault_branchstringdescriptionstringnamestringorg_slugstringrepository_urlstringskip_queued_branch_buildsbooleantagsarraycurrent_userGet details about the user account that owns the API token, including name, email, avatar, and account creation dateGet details about the user account that owns the API token, including name, email, avatar, and account creation date
No parameter schema in public metadata yet.
get_artifactGet detailed information about a specific artifact including its metadata, file size, SHA-1 hash, and download URL1 paramsGet detailed information about a specific artifact including its metadata, file size, SHA-1 hash, and download URL
urlstringget_buildGet build information including job IDs, names, and states. Use job_state to filter (e.g. 'failed,broken'). Returns enough detail to identify which jobs to investigate with log and artifact tools6 paramsGet build information including job IDs, names, and states. Use job_state to filter (e.g. 'failed,broken'). Returns enough detail to identify which jobs to investigate with log and artifact tools
build_numberstringdetail_levelstringinclude_agentbooleanjob_statestringorg_slugstringpipeline_slugstringget_build_test_engine_runsGet test engine runs data for a specific build in Buildkite. This can be used to look up Test Runs.3 paramsGet test engine runs data for a specific build in Buildkite. This can be used to look up Test Runs.
build_numberstringorg_slugstringpipeline_slugstringget_clusterGet detailed information about a specific cluster including its name, description, default queue, and configuration2 paramsGet detailed information about a specific cluster including its name, description, default queue, and configuration
cluster_idstringorg_slugstringget_cluster_queueGet detailed information about a specific queue including its key, description, dispatch status, and hosted agent configuration3 paramsGet detailed information about a specific queue including its key, description, dispatch status, and hosted agent configuration
cluster_idstringorg_slugstringqueue_idstringget_failed_executionsGet failed test executions for a specific test run in Buildkite Test Engine. Optionally get the expanded failure details such as full error messages and stack traces.6 paramsGet failed test executions for a specific test run in Buildkite Test Engine. Optionally get the expanded failure details such as full error messages and stack traces.
include_failure_expandedbooleanorg_slugstringpageintegerper_pageintegerrun_idstringtest_suite_slugstringget_pipelineGet detailed information about a specific pipeline including its configuration, steps, environment variables, and build statistics3 paramsGet detailed information about a specific pipeline including its configuration, steps, environment variables, and build statistics
detail_levelstringorg_slugstringpipeline_slugstringget_testGet a specific test in Buildkite Test Engine. This provides additional metadata for failed test executions3 paramsGet a specific test in Buildkite Test Engine. This provides additional metadata for failed test executions
org_slugstringtest_idstringtest_suite_slugstringget_test_runGet a specific test run in Buildkite Test Engine3 paramsGet a specific test run in Buildkite Test Engine
org_slugstringrun_idstringtest_suite_slugstringlist_annotationsList all annotations for a build, including their context, style (success/info/warning/error), rendered HTML content, and creation timestamps5 paramsList all annotations for a build, including their context, style (success/info/warning/error), rendered HTML content, and creation timestamps
build_numberstringorg_slugstringpageintegerper_pageintegerpipeline_slugstringlist_artifacts_for_buildList all artifacts for a build across all jobs, including file details, paths, sizes, MIME types, and download URLs5 paramsList all artifacts for a build across all jobs, including file details, paths, sizes, MIME types, and download URLs
build_numberstringorg_slugstringpageintegerper_pageintegerpipeline_slugstringlist_artifacts_for_jobList all artifacts for an individual job, including file details, paths, sizes, MIME types, and download URLs6 paramsList all artifacts for an individual job, including file details, paths, sizes, MIME types, and download URLs
build_numberstringjob_idstringorg_slugstringpageintegerper_pageintegerpipeline_slugstringlist_buildsList builds for a pipeline or across all pipelines in an organization. When pipeline_slug is omitted, lists builds across all pipelines in the organization9 paramsList builds for a pipeline or across all pipelines in an organization. When pipeline_slug is omitted, lists builds across all pipelines in the organization
branchstringcommitstringcreatorstringdetail_levelstringorg_slugstringpageintegerper_pageintegerpipeline_slugstringstatestringlist_cluster_queuesList all queues in a cluster with their keys, descriptions, dispatch status, and agent configuration4 paramsList all queues in a cluster with their keys, descriptions, dispatch status, and agent configuration
cluster_idstringorg_slugstringpageintegerper_pageintegerlist_clustersList all clusters in an organization with their names, descriptions, default queues, and creation details3 paramsList all clusters in an organization with their names, descriptions, default queues, and creation details
org_slugstringpageintegerper_pageintegerlist_pipelinesList all pipelines in an organization with their basic details, build counts, and current status6 paramsList all pipelines in an organization with their basic details, build counts, and current status
detail_levelstringnamestringorg_slugstringpageintegerper_pageintegerrepositorystringlist_test_runsList all test runs for a test suite in Buildkite Test Engine4 paramsList all test runs for a test suite in Buildkite Test Engine
org_slugstringpageintegerper_pageintegertest_suite_slugstringpause_cluster_queue_dispatchPause dispatch on a cluster queue, preventing new jobs from being dispatched to agents4 paramsPause dispatch on a cluster queue, preventing new jobs from being dispatched to agents
cluster_idstringnotestringorg_slugstringqueue_idstringread_logsRead log entries from the file, optionally starting from a specific row number. ALWAYS use 'limit' parameter to avoid excessive tokens. For recent failures, use 'tail_logs' instead. Recommended limits: investigation (100-500), exploration (use seek + small limits). The json fo...8 paramsRead log entries from the file, optionally starting from a specific row number. ALWAYS use 'limit' parameter to avoid excessive tokens. For recent failures, use 'tail_logs' instead. Recommended limits: investigation (100-500), exploration (use seek + small limits). The json fo...
build_numberstringcache_ttlstringforce_refreshbooleanjob_idstringlimitintegerorg_slugstringpipeline_slugstringseekintegerresume_cluster_queue_dispatchResume dispatch on a paused cluster queue, allowing jobs to be dispatched to agents again3 paramsResume dispatch on a paused cluster queue, allowing jobs to be dispatched to agents again
cluster_idstringorg_slugstringqueue_idstringsearch_logsSearch log entries using regex patterns with optional context lines. For recent failures, try 'tail_logs' first, then use search_logs with patterns like 'error|failed|exception' and limit: 10-20. The json format: {ts: timestamp_ms, c: content, rn: row_number}.15 paramsSearch log entries using regex patterns with optional context lines. For recent failures, try 'tail_logs' first, then use search_logs with patterns like 'error|failed|exception' and limit: 10-20. The json format: {ts: timestamp_ms, c: content, rn: row_number}.
after_contextintegerbefore_contextintegerbuild_numberstringcache_ttlstringcase_sensitivebooleancontextintegerforce_refreshbooleaninvert_matchbooleanjob_idstringlimitintegerorg_slugstringpatternstringpipeline_slugstringreversebooleanseek_startintegertail_logsShow the last N entries from the log file. RECOMMENDED for failure diagnosis - most build failures appear in the final log entries. More token-efficient than read_logs for recent issues. The json format: {ts: timestamp_ms, c: content, rn: row_number}.7 paramsShow the last N entries from the log file. RECOMMENDED for failure diagnosis - most build failures appear in the final log entries. More token-efficient than read_logs for recent issues. The json format: {ts: timestamp_ms, c: content, rn: row_number}.
build_numberstringcache_ttlstringforce_refreshbooleanjob_idstringorg_slugstringpipeline_slugstringtailintegerunblock_jobUnblock a blocked job in a Buildkite build to allow it to continue execution5 paramsUnblock a blocked job in a Buildkite build to allow it to continue execution
build_numberstringfieldsobjectjob_idstringorg_slugstringpipeline_slugstringupdate_clusterUpdate an existing cluster's name, description, emoji, color, or default queue7 paramsUpdate an existing cluster's name, description, emoji, color, or default queue
cluster_idstringcolorstringdefault_queue_idstringdescriptionstringemojistringnamestringorg_slugstringupdate_cluster_queueUpdate an existing cluster queue's description or retry agent affinity5 paramsUpdate an existing cluster queue's description or retry agent affinity
cluster_idstringdescriptionstringorg_slugstringqueue_idstringretry_agent_affinitystringupdate_pipelineModify an existing Buildkite pipeline's configuration, repository, settings, or metadata11 paramsModify an existing Buildkite pipeline's configuration, repository, settings, or metadata
cancel_running_branch_buildsbooleancluster_idstringconfigurationstringdefault_branchstringdescriptionstringnamestringorg_slugstringpipeline_slugstringrepository_urlstringskip_queued_branch_buildsbooleantagsarrayuser_token_organizationGet the organization associated with the user token used for this requestGet the organization associated with the user token used for this request
No parameter schema in public metadata yet.
Model Context Protocol (MCP) server exposing Buildkite data (pipelines, builds, jobs, tests) to AI tooling and editors.
Full documentation is available at buildkite.com/docs/apis/mcp-server.
The exported Go API of this module should be considered unstable, and subject to breaking changes as we evolve this project.
To ensure the MCP server is run in a secure environment, we recommend running it in a container.
This image is built from cgr.dev/chainguard/static and runs as an unprivileged user.
Self-hosted HTTP deployments can forward selected headers from each inbound MCP request to the Buildkite API:
BUILDKITE_API_TOKEN=bkua_xxx \
buildkite-mcp-server http \
--passthrough-http-header X-User-Identity
Repeat --passthrough-http-header to allow more than one header, or set a comma-separated BUILDKITE_PASSTHROUGH_HTTP_HEADERS value. Only explicitly allowed headers are forwarded, and only to the origin configured by BUILDKITE_BASE_URL. They are removed from requests redirected elsewhere.
To authenticate each MCP request with its own Buildkite API token, allow Authorization and omit the process-wide token:
BUILDKITE_PASSTHROUGH_HTTP_HEADERS=Authorization \
buildkite-mcp-server http
In this mode every /mcp request must contain exactly one non-empty Authorization header. Missing credentials return HTTP 401; the server never falls back to a shared API token. The reverse proxy in front of the MCP server is responsible for authenticating callers and setting or validating any forwarded identity headers.
Header passthrough is not available in stdio mode. Before serving job logs, the server verifies that the current caller can access the job log. This check is performed for every log-tool request, including when the log data is already cached.
Development guidelines are in DEVELOPMENT.md.
MIT © Buildkite
SPDX-License-Identifier: MIT
BUILDKITE_API_TOKEN*secretBuildkite API token for authentication. Get one from https://buildkite.com/user/api-access-tokens