MCP server by zach-snell
Bitbucket Go MCP Server
A Model Context Protocol (MCP) server written in Go that provides programmatic integration with Bitbucket workspaces and repositories.
Features
- Read Capabilities: View branches, commits, PRs, pipelines, diffs, and repositories.
- Write Capabilities: Create/merge PRs, add PR comments, resolve PR threads, and trigger pipelines.
- Authentication: Supports standard
app_passwordcredentials or an interactive OAuth 2.0 flow if no credentials are provided.
Installation
From Source
# Clone the repository
git clone https://github.com/zach-snell/bitbucket-go-mcp.git
cd bitbucket-go-mcp
# Run the install script (builds and moves to ~/.local/bin)
./install.sh
Ensure ~/.local/bin is added to your system $PATH for the executable to be universally available.
From GitHub Releases
Download the appropriate binary for your system (Linux, macOS, Windows) from the Releases page.
Configuration & Usage
The server supports two protocols: Stdio (default) and the official Streamable Transport API over HTTP.
Stdio Transport (Default)
If you intend to use this with an MCP client (such as Claude Desktop or Cursor), add it to your client's configuration file as a local command:
{
"mcpServers": {
"bitbucket": {
"command": "/absolute/path/to/bitbucket-mcp",
"env": {
"BITBUCKET_USERNAME": "your-username",
"BITBUCKET_APP_PASSWORD": "your-app-password"
}
}
}
}
Streamable Transport (HTTP)
You can run the server as a long-lived HTTP process serving the Streamable Transport API (which uses Server-Sent Events underneath). This is useful for remote network clients.
bitbucket-mcp --port 8080
Environment Variables
| Variable | Description | Required |
|----------|-------------|----------|
| BITBUCKET_USERNAME | Your Bitbucket username | No (but recommended for App Passwords) |
| BITBUCKET_APP_PASSWORD | An app password with api access | No (If omitted, triggers OAuth 2.0 browser flow) |
| BITBUCKET_CLIENT_ID | OAuth 2.0 Client ID | Only if using OAuth |
| BITBUCKET_CLIENT_SECRET | OAuth 2.0 Client Secret | Only if using OAuth |
Tools Provided
list_repositories: List repositories in a workspace.list_pull_requests: List pull requests for a repository.create_pull_request: Open a new pull request.merge_pull_request: Merge an existing pull request.approve_pull_request: Approve a pull request.create_pr_comment: Reply to or add an inline comment on a pull request.list_pr_commits: See exactly which commits are included in a PR.list_pipelines: View build/deployment pipelines across a repository.get_pipeline: Fetch specific details about a pipeline run.list_branches: View existing branches.list_commits: View recent commits to a repository.get_diffstat: See file additions and deletions for a specific commit or PR.
Development
Requirements:
- Go 1.25+
# Run tests
go test ./...
# Run the linter
golangci-lint run ./...