{"openapi":"3.1.0","info":{"title":"Buildkite Config (BYOK) API","version":"0.1.0","description":"Buildkite Config (BYOK) lets an AI assistant read your own Buildkite Config data through the Buildkite Config API with a key you supply (API access token (with read_pipelines, read_teams and read_rules scopes)). Read-only: 8 tools (list_pipeline_templates, get_pipeline_template, list_pipeline_schedules, get_pipeline_schedule, list_teams, get_team, list_rules, get_rule). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-buildkite-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-buildkite-config/docs"},"termsOfService":"https://connectorbay.com/byok-buildkite-config/terms"},"servers":[{"url":"https://byok-buildkite-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-buildkite-config/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_pipeline_templates":{"post":{"operationId":"list_pipeline_templates","summary":"List an organization's pipeline templates with name, description and whether each is available for new pipelines. Use fo","description":"List an organization's pipeline templates with name, description and whether each is available for new pipelines. Use for \"What pipeline templates does my-great-org have in Buildkite\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_slug":{"description":"Buildkite organization slug, the part of the Buildkite URL after buildkite.com/, for example 'my-great-org'.","maxLength":100,"title":"Org Slug","type":"string"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many results to return (1 to 100; Buildkite's default is 30). If fewer come back than asked for, there is no next page.","title":"Per Page"},"page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["org_slug"],"title":"list_pipeline_templatesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_pipeline_template":{"post":{"operationId":"get_pipeline_template","summary":"Get one pipeline template including its YAML step configuration. Use for \"Show the steps of Buildkite pipeline template ","description":"Get one pipeline template including its YAML step configuration. Use for \"Show the steps of Buildkite pipeline template 018a86cc-db73-7d15-8c68-5023cf8d64c3\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_slug":{"description":"Buildkite organization slug, the part of the Buildkite URL after buildkite.com/, for example 'my-great-org'.","maxLength":100,"title":"Org Slug","type":"string"},"template_uuid":{"description":"UUID of the template (the uuid field from list_pipeline_templates).","maxLength":64,"title":"Template Uuid","type":"string"}},"required":["org_slug","template_uuid"],"title":"get_pipeline_templateArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_pipeline_schedules":{"post":{"operationId":"list_pipeline_schedules","summary":"List a pipeline's scheduled builds with cron line, branch, commit, enabled flag and next run time (schedule environment ","description":"List a pipeline's scheduled builds with cron line, branch, commit, enabled flag and next run time (schedule environment variables are not returned). Use for \"When do the scheduled builds of my-pipeline run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_slug":{"description":"Buildkite organization slug, the part of the Buildkite URL after buildkite.com/, for example 'my-great-org'.","maxLength":100,"title":"Org Slug","type":"string"},"pipeline_slug":{"description":"Pipeline slug, for example 'my-pipeline', as returned by list_pipelines in the Buildkite connector.","maxLength":100,"title":"Pipeline Slug","type":"string"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many results to return (1 to 100; Buildkite's default is 30). If fewer come back than asked for, there is no next page.","title":"Per Page"},"page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["org_slug","pipeline_slug"],"title":"list_pipeline_schedulesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_pipeline_schedule":{"post":{"operationId":"get_pipeline_schedule","summary":"Get one scheduled build of a pipeline. Use for \"Show schedule b3a1e9f2-7c4d-4f1a-9e6c-2d8a5f7b1c3d of my-pipeline\".","description":"Get one scheduled build of a pipeline. Use for \"Show schedule b3a1e9f2-7c4d-4f1a-9e6c-2d8a5f7b1c3d of my-pipeline\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_slug":{"description":"Buildkite organization slug, the part of the Buildkite URL after buildkite.com/, for example 'my-great-org'.","maxLength":100,"title":"Org Slug","type":"string"},"pipeline_slug":{"description":"Pipeline slug, for example 'my-pipeline', as returned by list_pipelines in the Buildkite connector.","maxLength":100,"title":"Pipeline Slug","type":"string"},"schedule_id":{"description":"UUID of the schedule (the id field from list_pipeline_schedules).","maxLength":64,"title":"Schedule Id","type":"string"}},"required":["org_slug","pipeline_slug","schedule_id"],"title":"get_pipeline_scheduleArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_teams":{"post":{"operationId":"list_teams","summary":"List an organization's teams with privacy setting and whether each is a default team for new members. Use for \"What team","description":"List an organization's teams with privacy setting and whether each is a default team for new members. Use for \"What teams does my-great-org have in Buildkite\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_slug":{"description":"Buildkite organization slug, the part of the Buildkite URL after buildkite.com/, for example 'my-great-org'.","maxLength":100,"title":"Org Slug","type":"string"},"user_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only teams this user UUID belongs to.","title":"User Id"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many results to return (1 to 100; Buildkite's default is 30). If fewer come back than asked for, there is no next page.","title":"Per Page"},"page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["org_slug"],"title":"list_teamsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_team":{"post":{"operationId":"get_team","summary":"Get one team by UUID. Use for \"Show Buildkite team c5e09619-8648-4896-a936-9d0b8b7b3fe9\".","description":"Get one team by UUID. Use for \"Show Buildkite team c5e09619-8648-4896-a936-9d0b8b7b3fe9\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_slug":{"description":"Buildkite organization slug, the part of the Buildkite URL after buildkite.com/, for example 'my-great-org'.","maxLength":100,"title":"Org Slug","type":"string"},"team_uuid":{"description":"UUID of the team (the id field from list_teams).","maxLength":64,"title":"Team Uuid","type":"string"}},"required":["org_slug","team_uuid"],"title":"get_teamArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_rules":{"post":{"operationId":"list_rules","summary":"List an organization's access rules (which pipelines may trigger or artifact-share with which others) with source, targe","description":"List an organization's access rules (which pipelines may trigger or artifact-share with which others) with source, target, effect and action. Use for \"Which Buildkite pipeline access rules exist in my-great-org\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_slug":{"description":"Buildkite organization slug, the part of the Buildkite URL after buildkite.com/, for example 'my-great-org'.","maxLength":100,"title":"Org Slug","type":"string"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many results to return (1 to 100; Buildkite's default is 30). If fewer come back than asked for, there is no next page.","title":"Per Page"},"page":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["org_slug"],"title":"list_rulesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_rule":{"post":{"operationId":"get_rule","summary":"Get one access rule by UUID. Use for \"Show Buildkite rule 42f1a7da-812d-4430-93d8-1cc7c33a6bcf\".","description":"Get one access rule by UUID. Use for \"Show Buildkite rule 42f1a7da-812d-4430-93d8-1cc7c33a6bcf\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_slug":{"description":"Buildkite organization slug, the part of the Buildkite URL after buildkite.com/, for example 'my-great-org'.","maxLength":100,"title":"Org Slug","type":"string"},"rule_uuid":{"description":"UUID of the rule (the uuid field from list_rules).","maxLength":64,"title":"Rule Uuid","type":"string"}},"required":["org_slug","rule_uuid"],"title":"get_ruleArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}