{"openapi":"3.1.0","info":{"title":"Bitbucket Pipelines (BYOK) API","version":"0.1.0","description":"Bitbucket Pipelines (BYOK) lets an AI assistant read your own Bitbucket Pipelines data through the Bitbucket Pipelines API with a key you supply (Atlassian API token with Bitbucket read scopes (pipeline and repository)). Read-only: 12 tools (get_pipeline, list_pipeline_steps, get_pipeline_step, get_pipelines_config, list_pipeline_schedules, list_pipeline_caches, list_repository_runners,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-bitbucket-pipelines.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-bitbucket-pipelines/docs"},"termsOfService":"https://connectorbay.com/byok-bitbucket-pipelines/terms"},"servers":[{"url":"https://byok-bitbucket-pipelines.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-bitbucket-pipelines/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/get_pipeline":{"post":{"operationId":"get_pipeline","summary":"Get one pipeline run: build number, state and result, branch or tag, trigger, creator, times and build minutes used. Use","description":"Get one pipeline run: build number, state and result, branch or tag, trigger, creator, times and build minutes used. Use for \"How did pipeline {1b2c3d4e-0000-4000-8000-000000000001} of myteam/my-repo end\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"repo_slug":{"description":"Repository slug, for example 'my-repo'.","maxLength":200,"title":"Repo Slug","type":"string"},"pipeline_uuid":{"description":"UUID of the pipeline including its curly braces, for example '{1b2c3d4e-0000-4000-8000-000000000001}' (from the pipeline list).","maxLength":200,"title":"Pipeline Uuid","type":"string"}},"required":["workspace","repo_slug","pipeline_uuid"],"title":"get_pipelineArguments","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_steps":{"post":{"operationId":"list_pipeline_steps","summary":"List the steps of a pipeline run with UUID, state, result and times; commands and images are left out. Use for \"Which st","description":"List the steps of a pipeline run with UUID, state, result and times; commands and images are left out. Use for \"Which steps did pipeline {1b2c3d4e-0000-4000-8000-000000000001} of myteam/my-repo run and which failed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"repo_slug":{"description":"Repository slug, for example 'my-repo'.","maxLength":200,"title":"Repo Slug","type":"string"},"pipeline_uuid":{"description":"UUID of the pipeline including its curly braces, for example '{1b2c3d4e-0000-4000-8000-000000000001}' (from the pipeline list).","maxLength":200,"title":"Pipeline Uuid","type":"string"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace","repo_slug","pipeline_uuid"],"title":"list_pipeline_stepsArguments","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_step":{"post":{"operationId":"get_pipeline_step","summary":"Get one pipeline step: state, result and start and completion time; commands and images are left out. Use for \"Show step","description":"Get one pipeline step: state, result and start and completion time; commands and images are left out. Use for \"Show step {2c3d4e5f-0000-4000-8000-000000000002} of pipeline {1b2c3d4e-0000-4000-8000-000000000001} in myteam/my-repo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"repo_slug":{"description":"Repository slug, for example 'my-repo'.","maxLength":200,"title":"Repo Slug","type":"string"},"pipeline_uuid":{"description":"UUID of the pipeline including its curly braces, for example '{1b2c3d4e-0000-4000-8000-000000000001}' (from the pipeline list).","maxLength":200,"title":"Pipeline Uuid","type":"string"},"step_uuid":{"description":"UUID of the pipeline step including its curly braces, for example '{2c3d4e5f-0000-4000-8000-000000000002}'.","maxLength":200,"title":"Step Uuid","type":"string"}},"required":["workspace","repo_slug","pipeline_uuid","step_uuid"],"title":"get_pipeline_stepArguments","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_pipelines_config":{"post":{"operationId":"get_pipelines_config","summary":"Show whether Bitbucket Pipelines is enabled for a repository. Use for \"Are Pipelines turned on for myteam/my-repo\".","description":"Show whether Bitbucket Pipelines is enabled for a repository. Use for \"Are Pipelines turned on for myteam/my-repo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"repo_slug":{"description":"Repository slug, for example 'my-repo'.","maxLength":200,"title":"Repo Slug","type":"string"}},"required":["workspace","repo_slug"],"title":"get_pipelines_configArguments","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 repository's scheduled pipelines with cron pattern, target and enabled flag. Use for \"Which scheduled pipelines d","description":"List a repository's scheduled pipelines with cron pattern, target and enabled flag. Use for \"Which scheduled pipelines does myteam/my-repo have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"repo_slug":{"description":"Repository slug, for example 'my-repo'.","maxLength":200,"title":"Repo Slug","type":"string"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace","repo_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/list_pipeline_caches":{"post":{"operationId":"list_pipeline_caches","summary":"List a repository's pipeline caches with name, path, size in bytes and creation time. Use for \"How big are the pipeline ","description":"List a repository's pipeline caches with name, path, size in bytes and creation time. Use for \"How big are the pipeline caches of myteam/my-repo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"repo_slug":{"description":"Repository slug, for example 'my-repo'.","maxLength":200,"title":"Repo Slug","type":"string"}},"required":["workspace","repo_slug"],"title":"list_pipeline_cachesArguments","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_repository_runners":{"post":{"operationId":"list_repository_runners","summary":"List the self-hosted Pipelines runners registered to a repository with labels, status and version. Use for \"Are the self","description":"List the self-hosted Pipelines runners registered to a repository with labels, status and version. Use for \"Are the self-hosted runners of myteam/my-repo online\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"repo_slug":{"description":"Repository slug, for example 'my-repo'.","maxLength":200,"title":"Repo Slug","type":"string"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace","repo_slug"],"title":"list_repository_runnersArguments","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_workspace_runners":{"post":{"operationId":"list_workspace_runners","summary":"List the self-hosted Pipelines runners registered to a workspace with labels, status and version. Use for \"Which workspa","description":"List the self-hosted Pipelines runners registered to a workspace with labels, status and version. Use for \"Which workspace-level runners does myteam have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace"],"title":"list_workspace_runnersArguments","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_deployments":{"post":{"operationId":"list_deployments","summary":"List a repository's deployments with environment, release name, state and deploy dates. Use for \"What was deployed recen","description":"List a repository's deployments with environment, release name, state and deploy dates. Use for \"What was deployed recently in myteam/my-repo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"repo_slug":{"description":"Repository slug, for example 'my-repo'.","maxLength":200,"title":"Repo Slug","type":"string"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace","repo_slug"],"title":"list_deploymentsArguments","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_deployment":{"post":{"operationId":"get_deployment","summary":"Get one deployment by UUID: state and status, environment, release and dates. Use for \"Show deployment {60718293-0000-40","description":"Get one deployment by UUID: state and status, environment, release and dates. Use for \"Show deployment {60718293-0000-4000-8000-000000000006} of myteam/my-repo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"repo_slug":{"description":"Repository slug, for example 'my-repo'.","maxLength":200,"title":"Repo Slug","type":"string"},"deployment_uuid":{"description":"UUID of the deployment including its curly braces (from the deployment list).","maxLength":200,"title":"Deployment Uuid","type":"string"}},"required":["workspace","repo_slug","deployment_uuid"],"title":"get_deploymentArguments","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_environments":{"post":{"operationId":"list_environments","summary":"List a repository's deployment environments (for example Test, Staging, Production) with name and UUID. Use for \"Which d","description":"List a repository's deployment environments (for example Test, Staging, Production) with name and UUID. Use for \"Which deployment environments does myteam/my-repo define\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"repo_slug":{"description":"Repository slug, for example 'my-repo'.","maxLength":200,"title":"Repo Slug","type":"string"},"pagelen":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100, default 25).","title":"Pagelen"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. The answer's next field holds the link to the following page when there is one.","title":"Page"}},"required":["workspace","repo_slug"],"title":"list_environmentsArguments","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_environment":{"post":{"operationId":"get_environment","summary":"Get one deployment environment by UUID with its name. Use for \"What is environment {718293a4-0000-4000-8000-000000000007","description":"Get one deployment environment by UUID with its name. Use for \"What is environment {718293a4-0000-4000-8000-000000000007} of myteam/my-repo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace":{"description":"Workspace slug (the first part of repository URLs on bitbucket.org), for example 'myteam'.","maxLength":200,"title":"Workspace","type":"string"},"repo_slug":{"description":"Repository slug, for example 'my-repo'.","maxLength":200,"title":"Repo Slug","type":"string"},"environment_uuid":{"description":"UUID of the environment including its curly braces (from the environment list).","maxLength":200,"title":"Environment Uuid","type":"string"}},"required":["workspace","repo_slug","environment_uuid"],"title":"get_environmentArguments","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}}}}