bitbucket-mcp
bitbucket-mcp
MCP-Server für Bitbucket Cloud. Pull Requests, Code-Review, Branches, Source, Pipelines, Webhooks und Variablen – bereitgestellt als kontrollierte Tool-Oberfläche statt roher REST-Aufrufe.
Warum es das gibt
Der offizielle Atlassian MCP deckt nur Jira und Confluence ab. Bitbucket bleibt außen vor, sodass jede Repository-Operation auf handgeschriebene REST-Aufrufe zurückfällt: ausführliche Payloads, keine Leitplanken und ein Token, das alles erreichen kann, was der Scope erlaubt.
Dieser Server schließt diese Lücke an drei Fronten:
Reduzierte Payloads. Antworten werden auf die Felder normalisiert, die du tatsächlich nutzt, sodass ein PR-Review nur einen Bruchteil des Kontexts einer rohen REST-Antwort verbraucht.
Leitplanken im Server, nicht im Prompt. Geschützte Branches,
confirmbei destruktiven Aktionen und ein Nur-Lese-Modus werden durchgesetzt, bevor der HTTP-Aufruf abgeht.Ein Tool pro Absicht. 55 Tools für die Review-, Branch-, Pipeline- und Webhook-Workflows statt eines generischen HTTP-Notausgangs.
flowchart LR
A["MCP client<br/>(Claude Code, Inspector)"] -->|stdio| B["bitbucket-mcp"]
B --> C{"Guards"}
C -->|"read only, confirm,<br/>protected branch,<br/>workspace lock"| D["Bitbucket Cloud<br/>REST API"]
C -.->|refused before<br/>the HTTP call| A
B --> E["git over SSH<br/>or HTTPS"]
E --> F["Repository"]
D -->|normalized,<br/>trimmed response| ARelated MCP server: Bitbucket MCP
Installation
Das Paket ist auf npm veröffentlicht als
@marcusyoda/bitbucket-mcp.
Voraussetzungen
Node >= 20
Ein Atlassian-API-Token mit eingeschränktem Scope (siehe Auth)
Ein auf Bitbucket registrierter SSH-Schlüssel für die
git_*-Tools über SSH. Optional, wenn du stattdessen die HTTPS-Varianten verwendest.
Option 1: npx, nichts zu installieren
Der schnellste Weg. Richte deinen MCP-Client auf das Paket aus und lass npx es auflösen:
npx -y @marcusyoda/bitbucket-mcpOption 2: globale Installation
npm install -g @marcusyoda/bitbucket-mcp
# or: pnpm add -g @marcusyoda/bitbucket-mcp
bitbucket-mcpOption 3: aus dem Quellcode
git clone https://github.com/marcusyoda/bitbucket-mcp.git
cd bitbucket-mcp
pnpm install
pnpm build # dist/index.jsIn deinem MCP-Client registrieren
Claude Code, über die CLI
claude mcp add bitbucket \
--env BITBUCKET_EMAIL=you@example.com \
--env BITBUCKET_API_TOKEN=your-token \
--env BITBUCKET_WORKSPACE=your-workspace \
-- npx -y @marcusyoda/bitbucket-mcpBeliebiger Client, über .mcp.json
{
"mcpServers": {
"bitbucket": {
"command": "npx",
"args": ["-y", "@marcusyoda/bitbucket-mcp"],
"env": {
"BITBUCKET_EMAIL": "you@example.com",
"BITBUCKET_API_TOKEN": "your-token",
"BITBUCKET_WORKSPACE": "your-workspace",
"BITBUCKET_DEFAULT_REPO": "your-repo-optional"
}
}
}
}Stattdessen aus dem Quellcode ausführen? Ersetze den Befehl durch den gebauten Einstiegspunkt:
{ "command": "node", "args": ["/abs/path/to/bitbucket-mcp/dist/index.js"] }Überprüfe die Verbindung, indem du get_current_user aufrufst: Er sendet das Token im
Roundtrip und gibt deine Bitbucket-Identität zurück.
Authentifizierung
Die Authentifizierung erfolgt per HTTP Basic mit email:api_token. Erstelle ein API-Token
mit eingeschränktem Scope unter id.atlassian.com > Manage account > Security > API tokens.
Token-Scopes (granularer Picker, erstelle nur, was du verwendest):
Fähigkeit | Scopes |
Authentifizierung und Identität prüfen |
|
Source, Branches und Repository lesen |
|
Branches und Repos per API erstellen |
|
PRs und Kommentare überprüfen, genehmigen, ablehnen, mergen |
|
Pipelines (lesen, auslösen, stoppen) |
|
Webhooks |
|
Optional: Pipeline- und Deployment-Variablen lesen |
|
Die Variablen-Tools (*_variable*, list_deployment_*) benötigen admin:repository:bitbucket.
Diesen Scope wegzulassen ist in Ordnung: Diese Tools geben einen 403 zurück und alles andere
funktioniert weiter.
Die Begründung und der vollständige Berechtigungs-Entscheidungsbericht befinden sich in PERMISSIONS.md.
Umgebungsvariablen
Kopiere .env.example für lokale Ausführungen nach .env. Committe sie niemals.
Env var | Zweck |
| Atlassian-Konto-E-Mail, verwendet von der REST-API |
| API-Token mit eingeschränktem Scope |
| Workspace-Slug (erforderlich) |
| Bitbucket-Benutzername, nicht die E-Mail. Nur für die HTTPS-Git-Tools |
| Optional. Nicht gesetzt bedeutet, dass |
|
|
| Kommasepariert, Standard |
|
|
Die .env des Pakets wird nur geladen, wenn BITBUCKET_API_TOKEN in der Umgebung fehlt.
So gewinnt immer ein Launcher, der pro Projekt Anmeldedaten injiziert, und eine verirrte .env
aus einem anderen Workspace kann das injizierte Token niemals überschreiben.
Sicherheitsmodell
BITBUCKET_READ_ONLY=trueblockiert jedes Schreib- und destruktive Tool, bevor es die API erreicht.Destruktive Tools (
merge,decline,delete_*,stop_pipeline,git_commit,git_push, Inline-PR-Kommentare) erfordernconfirm: true.Das Erstellen einer
secured-Variable erfordert ebenfallsconfirm: true.Werte gesicherter Variablen sind in der API nur schreibbar und werden niemals zurückgegeben oder protokolliert.
Geschützte Branches (
BITBUCKET_PROTECTED_BRANCHES, Standardmain,dev) sind gegen direkte Änderungen hart gesperrt:git_push,git_rebase(wenn ausgecheckt),delete_branchundcreate_branchweigern sich, sie anzusteuern, selbst mitconfirm. Bringe Änderungen dort über einen PR ein:merge_pull_requestin einen geschützten Branch ist mitconfirm: trueerlaubt.Workspace-Sperre. Mit
BITBUCKET_LOCK_WORKSPACE=truewird jeder Aufruf abgelehnt, der einen anderen Workspace nennt. Entwickelt für Maschinen, die mehrere Clients aus einer Installation bedienen.
Tools
Jedes Tool akzeptiert optionale workspace- und repo-Angaben, um die Standardwerte aus der
Umgebung zu überschreiben.
Repo und Meta: get_current_user, list_repositories, get_repository,
create_repository
Pull Requests: list_pull_requests, get_pull_request, get_pull_request_diff,
get_pull_request_activity, create_pull_request, update_pull_request,
approve_pull_request, unapprove_pull_request, request_changes_pull_request,
decline_pull_request (confirm), merge_pull_request (confirm), list_pr_commits,
get_diff
Kommentare: list_pr_comments, add_pr_comment (inline benötigt confirm),
reply_pr_comment, update_pr_comment, delete_pr_comment (confirm),
resolve_comment, react_pr_comment (experimentell)
Branches, Source und Git: list_branches, get_branch, create_branch,
delete_branch (confirm), get_file_source, list_directory, clone_repo,
clone_repo_https, git_commit (confirm), git_rebase, git_push (confirm),
git_push_https (confirm). Alle Push- und Branch-Tools verweigern geschützte Branches.
Pipelines: list_pipelines, get_pipeline, get_pipeline_steps,
get_pipeline_step_log, trigger_pipeline, stop_pipeline (confirm)
Variablen: list_repo_pipeline_variables, upsert_repo_pipeline_variable,
delete_repo_pipeline_variable (confirm), list_workspace_variables,
list_deployment_environments, list_deployment_variables,
upsert_deployment_variable, delete_deployment_variable (confirm)
Webhooks: list_webhooks, get_webhook, create_webhook, update_webhook,
delete_webhook (confirm)
SSH oder HTTPS für Git
clone_repo, git_commit, git_rebase und git_push verwenden deinen SSH-Schlüssel,
nicht das Token. Wenn SSH keine Option ist, authentifizieren sich clone_repo_https und
git_push_https mit username:token und benötigen BITBUCKET_USERNAME. Der Schutz für
geschützte Branches gilt für beide Übertragungswege.
Bekannte Einschränkungen
react_pr_commentist experimentell. Emoji-Reaktionen auf PR-Kommentaren sind für Bitbucket Data Center dokumentiert, nicht für Cloud. Das Tool zielt auf einen Best-Effort-Endpunkt und kann einen Fehler zurückgeben, wenn dein Workspace dies nicht unterstützt.resolve_commenthängt davon ab, dass die Auflösung von Kommentarthreads für das Repository verfügbar ist.Es gibt keinen Endpunkt, der auflistet, welche Variablen eine benutzerdefinierte Pipeline erwartet. Diese Informationen stammen aus
bitbucket-pipelines.yml; lies sie mitget_file_source.Gespeicherte Variablenwerte erfordern Admin-Scope, um sie wieder auslesen zu können.
Entwicklung
pnpm install
pnpm dev # tsx watch
pnpm typecheck
pnpm build # tsup, ESM
pnpm inspect # build and open the MCP InspectorProjektregeln und Konventionen stehen in CLAUDE.md. Beiträge folgen dem
Issue-First-Workflow: Jeder Commit verlinkt in seiner Kopfzeile ein Issue, als
type(scope): subject [#N].
Nutzung
MIT-lizenziert, und das ist wörtlich gemeint: Nutze es bei der Arbeit, nutze es kommerziell, forke es, binde es in deine eigenen Tools ein, benenne es um. Keine Erlaubnis nötig und kein Attributionsritual außer dem Beibehalten des Lizenzhinweises. Wenn es dir einen Nachmittag voller handgeschriebener REST-Aufrufe erspart, hat es sich bereits bezahlt gemacht.
Fehlt ein Tool, oder triffst du auf einen Bitbucket-Endpunkt, den dies nicht abdeckt?
Öffne ein Issue. Pull Requests sind
willkommen: Die einzige Hausregel ist, dass jeder Commit in seiner Kopfzeile ein Issue
verlinkt, als type(scope): subject [#N].
Siehe LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
Governed app access for AI agents: 1,000+ apps & 12,000+ tools via Code Mode MCP.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
The Buildkite MCP server exposes Buildkite product data (pipelines, builds, jobs, and test data) to AI tools, editors, and agents through the Model Context Protocol. It provides capabilities including pipeline creation and management, build monitoring with specialized tools like 'wait_for_build', efficient log querying using Apache Parquet conversion and caching, and OAuth-based authentication for both read-write and read-only access to Buildkite's REST API.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with Bitbucket Cloud repositories, allowing users to manage pull requests, comments, tasks, and branches through natural language commands.5,0331MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Bitbucket Cloud repositories, pull requests, branches, commits, pipelines, issues, and webhooks through the Model Context Protocol.81,058MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with Bitbucket Cloud and self-hosted instances for pull request reviews, code search, repository operations, and managing PR comments and approvals.19GPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to programmatically manage Bitbucket Cloud resources, including pull requests, repositories, and branches, automating code review workflows.189MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marcusyoda/bitbucket-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server