bb_cloneClone a Bitbucket repository to your local filesystem using SSH (preferred) or HTTPS.
Provide repoSlug and targetPath (absolute path). Clones into targetPath/repoSlug. SSH keys must be configured; falls back to HTTPS if unavailable.
Let your assistant read and change anything in Bitbucket Cloud, from pull requests to branches, through the Bitbucket API, and clone repositories to your computer.
LABSCO SUMMARY
For people who keep their code in Bitbucket Cloud, it lets an assistant make any call the Bitbucket API allows, from listing open pull requests to merging one or deleting a branch. Atlassian's own hosted server also covers Bitbucket, with its own ready-made tools, for workspaces linked to an Atlassian organization where an admin has turned on API-token access; this one runs on your computer and can reach any part of the Bitbucket API.
A server that runs on your own computer and connects your assistant to Bitbucket Cloud. Instead of one tool per task, it hands the assistant the Bitbucket API itself, so it can read, create, change or delete anything the API reaches, and clone a repository. It is built by an independent developer, aashari, not by Atlassian.
ATLASSIAN_API_TOKEN and your Atlassian email in ATLASSIAN_USER_EMAIL.One command plus a key — npx -y @aashari/mcp-server-atlassian-bitbucket, then supply credentials
USE CASES
Ask for the open pull requests in a repository, read the changes in the one you pick, then approve it.
Ask it to open a pull request from feature-login into main, then add a comment saying the tests passed.
Compare your feature branch with main, or two commits with each other, and get the differences back.
Change a pull request's title or reviewers, and delete its branch once the work is merged.
Name the repository and a folder, and it is cloned there, over SSH if your keys are set up and HTTPS if not.
Measured by connecting to the server and asking it what it exposes.
bb_cloneClone a Bitbucket repository to your local filesystem using SSH (preferred) or HTTPS.
Provide repoSlug and targetPath (absolute path). Clones into targetPath/repoSlug. SSH keys must be configured; falls back to HTTPS if unavailable.
bb_deleteDelete Bitbucket resources. Returns TOON format by default.
Output format: TOON (default) or JSON (outputFormat: "json")
Common operations:
/repositories/{workspace}/{repo}/refs/branches/{branch_name}/repositories/{workspace}/{repo}/pullrequests/{pr_id}/comments/{comment_id}/repositories/{workspace}/{repo}/pullrequests/{id}/decline/repositories/{workspace}/{repo}/pullrequests/{id}/approve/repositories/{workspace}/{repo} (caution: irreversible)Note: Most DELETE endpoints return 204 No Content on success.
The /2.0 prefix is added automatically. API reference: https://developer.atlassian.com/cloud/bitbucket/rest/
bb_getRead any Bitbucket data. Returns TOON format by default (30-60% fewer tokens than JSON).
IMPORTANT - Cost Optimization:
jq param to filter response fields. Unfiltered responses are very expensive!pagelen query param to restrict result count (e.g., pagelen: "5")pagelen: "1" and NO jq filter to explore the schema, then use jq in subsequent callsSchema Discovery Pattern:
path: "/workspaces", queryParams: {"pagelen": "1"} (no jq) - explore available fieldsjq: "values[*].{slug: slug, name: name, uuid: uuid}" - extract only what you needOutput format: TOON (default, token-efficient) or JSON (outputFormat: "json")
Common paths:
/workspaces - list workspaces/repositories/{workspace} - list repos in workspace/repositories/{workspace}/{repo} - get repo details/repositories/{workspace}/{repo}/pullrequests - list PRs/repositories/{workspace}/{repo}/pullrequests/{id} - get PR details/repositories/{workspace}/{repo}/pullrequests/{id}/comments - list PR comments/repositories/{workspace}/{repo}/pullrequests/{id}/diff - get PR diff/repositories/{workspace}/{repo}/refs/branches - list branches/repositories/{workspace}/{repo}/commits - list commits/repositories/{workspace}/{repo}/src/{commit}/{filepath} - get file content/repositories/{workspace}/{repo}/diff/{source}..{destination} - compare branches/commitsQuery params: pagelen (page size), page (page number), q (filter), sort (order), fields (sparse response)
Example filters (q param): state="OPEN", source.branch.name="feature", title~"bug"
JQ examples: values[*].slug, values[0], values[*].{name: name, uuid: uuid}
The /2.0 prefix is added automatically. API reference: https://developer.atlassian.com/cloud/bitbucket/rest/
bb_patchPartially update Bitbucket resources. Returns TOON format by default.
IMPORTANT - Cost Optimization: Use jq param to filter response fields.
Output format: TOON (default) or JSON (outputFormat: "json")
Common operations:
/repositories/{workspace}/{repo}/pullrequests/{id} body: {"title": "New title", "description": "Updated description"}/repositories/{workspace}/{repo}/pullrequests/{id} body: {"reviewers": [{"uuid": "{user-uuid}"}]}/repositories/{workspace}/{repo} body: {"description": "New description"}/repositories/{workspace}/{repo}/pullrequests/{pr_id}/comments/{comment_id} body: {"content": {"raw": "Updated comment"}}The /2.0 prefix is added automatically. API reference: https://developer.atlassian.com/cloud/bitbucket/rest/
bb_postCreate Bitbucket resources. Returns TOON format by default (token-efficient).
IMPORTANT - Cost Optimization:
jq param to extract only needed fields from response (e.g., jq: "{id: id, title: title}")Output format: TOON (default) or JSON (outputFormat: "json")
Common operations:
/repositories/{workspace}/{repo}/pullrequests body: {"title": "...", "source": {"branch": {"name": "feature"}}, "destination": {"branch": {"name": "main"}}}/repositories/{workspace}/{repo}/pullrequests/{id}/comments body: {"content": {"raw": "Comment text"}}/repositories/{workspace}/{repo}/pullrequests/{id}/approve body: {}/repositories/{workspace}/{repo}/pullrequests/{id}/request-changes body: {}/repositories/{workspace}/{repo}/pullrequests/{id}/merge body: {"merge_strategy": "squash"} (strategies: merge_commit, squash, fast_forward)The /2.0 prefix is added automatically. API reference: https://developer.atlassian.com/cloud/bitbucket/rest/
bb_putReplace Bitbucket resources (full update). Returns TOON format by default.
IMPORTANT - Cost Optimization:
jq param to extract only needed fields from responsejq: "{uuid: uuid, name: name}"Output format: TOON (default) or JSON (outputFormat: "json")
Common operations:
/repositories/{workspace}/{repo} body: {"description": "...", "is_private": true, "has_issues": true}/repositories/{workspace}/{repo}/src Note: Use multipart form data for file uploads (complex - prefer PATCH for metadata)/repositories/{workspace}/{repo}/branch-restrictions/{id} body: {"kind": "push", "pattern": "main", "users": [{"uuid": "..."}]}The /2.0 prefix is added automatically. API reference: https://developer.atlassian.com/cloud/bitbucket/rest/
BEFORE YOU INSTALL
6 tools when we connected. Four of its six tools can create, change or delete Bitbucket data, and deleting a repository cannot be undone. For an assistant that only reads, give the token read scopes only.
INSTALLATION
Add the block to your client, or run the command directly.
{
"mcpServers": {
"bitbucket": {
"command": "npx",
"args": [
"-y",
"@aashari/mcp-server-atlassian-bitbucket"
],
"env": {
"ATLASSIAN_USER_EMAIL": "your.email@company.com",
"ATLASSIAN_API_TOKEN": "your_scoped_api_token"
}
}
}
}npx -y @aashari/mcp-server-atlassian-bitbucketThe author's launch command
Manage Bitbucket repositories, pull requests, and pipelines via the Bitbucket API for both Cloud and Server.
The GitHub API as MCP tools over HTTP/SSE — repositories, issues, pull requests, search and users, from a Spring AI server.
Manage pull requests on Bitbucket Server.
Interact with GitLab repositories, issues, and merge requests through an MCP-compliant server.