Releases: lahma/bitbucket-mcp
Release list
v1.1.0
Closes the updatePullRequest gap reported in #1, together with two omissions of the same shape found while tracing it. Every change is additive — no tool was removed, renamed or given a new required argument, so upgrading from 1.0.0 needs nothing but the new version number.
Changes
updatePullRequesttakescloseSourceBranchanddraft. Both fields existed on the request model and were serialised correctly, but the tool bound neither, so passing one was accepted, answered200 OK, and changed nothing — and the arity guard counted only the four fields it did bind, so the flag on its own was refused as "nothing to update" (#1). They are the only way to reach either setting once a pull request is open:draft=falsemarks a draft ready for review, andcloseSourceBranch=truemakes the merge delete the branch on a pull request opened without it. Both are nullable, so an omitted flag keeps the current value rather than forcingfalse.- A flag-only update is one
PUTcarrying one field. Bitbucket documents the endpoint as a partial update but publishes no example without atitle, so a400on a body that named no title — and only that combination — is answered by fetching the pull request and resending its own title with the change, the same fallbackupdatePullRequestTaskalready makes for a state-only update. createPullRequest'scloseSourceBranchanddraftare nullable too. As plain booleans they defaulted tofalseand were therefore written into every create body, forcing a value where the caller had expressed no opinion; omitting them now leaves the field out and lets Bitbucket apply its own default.listPullRequestsreportscloseSourceBranchon each entry. The field set had always requested it and the wire model had always deserialised it — only the summary result lacked the property, so the value was fetched and discarded, and "which of these open pull requests will leave their branch behind?" cost onegetPullRequestper entry to answer.
Install
Native AOT binary — recommended. Self-contained, nothing to install, roughly ten milliseconds to start. Every archive below was built and smoke-tested on its own architecture: each release leg publishes the binary and drives a real initialize / tools/list exchange over stdio before uploading, so no binary ships without having answered a handshake on the hardware it targets.
| Platform | RID | Archive |
|---|---|---|
| Windows x64 | win-x64 |
bitbucket-mcp-1.1.0-win-x64.zip |
| Windows ARM64 | win-arm64 |
bitbucket-mcp-1.1.0-win-arm64.zip |
| Linux x64 | linux-x64 |
bitbucket-mcp-1.1.0-linux-x64.tar.gz |
| Linux ARM64 | linux-arm64 |
bitbucket-mcp-1.1.0-linux-arm64.tar.gz |
| macOS Apple silicon | osx-arm64 |
bitbucket-mcp-1.1.0-osx-arm64.tar.gz |
tar -xzf bitbucket-mcp-1.1.0-linux-x64.tar.gz
./bitbucket-mcp --versionNuGet. The same server is on nuget.org as bitbucket-mcp, a .NET tool package carrying the McpServer package type, so dnx (part of the .NET 10 SDK) fetches and runs it in one step:
dnx bitbucket-mcp@1.1.0 --yes statusPublished by trusted publishing — the workflow exchanges its GitHub OIDC token for an API key that lives minutes, so no nuget.org key exists in this repository or in its secrets.
Claude Code plugin. Delivers the server and the pull-request skill together:
/plugin marketplace add lahma/bitbucket-mcp
/plugin install bitbucket-mcp@bitbucket-mcp
Upgrading from 1.0.0
Change the version you pin and nothing else. Both new updatePullRequest arguments are optional and default to leaving the current value alone, and the new closeSourceBranch field on a listPullRequests entry is additive.
One behaviour change worth naming: createPullRequest no longer writes close_source_branch: false and draft: false into every request body. Passing either argument explicitly behaves exactly as before; omitting it now lets Bitbucket apply its own default instead of having false forced on it.
v1.0.0
A Bitbucket Cloud MCP server you can actually audit: every dependency comes from Microsoft or the official Model Context Protocol SDK — no third-party packages, no generated client, ~30 hand-written source files. Built for the full pull-request lifecycle, from opening a PR to reviewing, commenting, and merging it.
Why this one
- Trustable by inspection. The whole dependency tree is Microsoft + the official MCP SDK, pinned exactly. One person can read everything this server runs.
- Instant startup. Native AOT binaries for five platforms — the server cold-starts in about 10 ms, so your editor never waits on it.
- Built for AI context economy. Results are shaped, not echoed: no
linksnoise, no repository payloads, nulls omitted. Diffs follow a diffstat-first workflow with per-file retrieval and visible truncation, so a large PR never floods the model's context.
Pull-request tools (16)
- Explore —
listPullRequests(filter by state, author, or source branch),getPullRequest,getPullRequestDiff(diffstat or targeted per-file diffs),getPullRequestComments,listPullRequestStatuses(is CI green before you merge?),listDefaultReviewers,listPullRequestTasks - Review —
addPullRequestCommentwith inline comments anchored by code snippet instead of brittle line numbers,resolvePullRequestComment,addPullRequestTask/updatePullRequestTask,setPullRequestReviewStatus(approve / request changes / unapprove) - Ship —
createPullRequest,updatePullRequest,mergePullRequest(merge commit, squash, or fast-forward),declinePullRequest
Every result that names a PR or comment carries its web URL, ready to hand to a human.
Sign in your way
- OAuth 2.0 browser flow — run
bitbucket-mcp loginonce; tokens are cached encrypted (DPAPI on Windows,0600elsewhere) and refreshed silently. - Atlassian API token — set
BITBUCKET_EMAIL+BITBUCKET_API_TOKENand it just works; ideal for CI or when you can't create an OAuth consumer.
Get it
-
Binaries (recommended — fastest startup): download the archive for your platform below and point your MCP client at the executable.
-
NuGet:
dnx bitbucket-mcp@1.0.0 --yesruns it with no download step. -
Claude Code, one command for everything — server, credential prompts, and a PR-workflow skill:
/plugin marketplace add lahma/bitbucket-mcp /plugin install bitbucket-mcp@bitbucket-mcp
An agent skill teaching the review and creation playbooks ships in the repo and works with Cursor, VS Code, Codex, and Gemini CLI too.
See the README for the OAuth consumer walkthrough, all environment variables, and client configuration examples.