Skip to content

Releases: lahma/bitbucket-mcp

Release list

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Aug 11:47
0e74dba

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

  • updatePullRequest takes closeSourceBranch and draft. Both fields existed on the request model and were serialised correctly, but the tool bound neither, so passing one was accepted, answered 200 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=false marks a draft ready for review, and closeSourceBranch=true makes 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 forcing false.
  • A flag-only update is one PUT carrying one field. Bitbucket documents the endpoint as a partial update but publishes no example without a title, so a 400 on 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 fallback updatePullRequestTask already makes for a state-only update.
  • createPullRequest's closeSourceBranch and draft are nullable too. As plain booleans they defaulted to false and 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.
  • listPullRequests reports closeSourceBranch on 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 one getPullRequest per 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 --version

NuGet. 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 status

Published 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

Choose a tag to compare

@github-actions github-actions released this 09 Aug 11:25

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 links noise, 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)

  • ExplorelistPullRequests (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
  • ReviewaddPullRequestComment with inline comments anchored by code snippet instead of brittle line numbers, resolvePullRequestComment, addPullRequestTask / updatePullRequestTask, setPullRequestReviewStatus (approve / request changes / unapprove)
  • ShipcreatePullRequest, 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 login once; tokens are cached encrypted (DPAPI on Windows, 0600 elsewhere) and refreshed silently.
  • Atlassian API token — set BITBUCKET_EMAIL + BITBUCKET_API_TOKEN and 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 --yes runs 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.