mcp-bitbucket
mcp-bitbucket
Bitbucket Server für KI-Agenten und die Menschen daneben. Pull-Requests und ihre Diffs ohne Klon lesen, eine Review entwerfen und mit einem Urteil veröffentlichen, blockierende Aufgaben posten, Code und Commits durchsuchen, Pull-Requests öffnen, zusammenführen oder ablehnen – von einem MCP-Client, von einer Shell oder aus Ihrem eigenen TypeScript.
Nur Bitbucket Server / Data Center. Bitbucket Cloud wird nicht unterstützt.
Pakete
Paket | Was es ist | Bin |
Bitbucket-Client, Operationen, Formatierer – alles andere ist ein dünner Adapter darüber | — | |
MCP-Server, 29 Tools über stdio oder Streamable HTTP |
| |
Shell-Client für dieselben Operationen, leitet das Repo aus Ihrem Git-Remote ab |
| |
Claude-Code-Skill, der einem Agenten die | — |
Claude Code / Claude Desktop Tool-Nutzung → mcp. Terminal, Skripte, CI, Agenten, die Befehle ausführen → cli. Wenn Sie etwas anderes bauen → core. Sie lesen dieselben Anmeldeinformationen und installieren sich nebeneinander.
Related MCP server: mcp-server-atlassian-bitbucket
Voraussetzungen
Node.js 18+, pnpm 10+ (
corepack enable)Ein Bitbucket-Server-Personal-Access-Token – Profil → Konto verwalten → HTTP-Zugriffstokens, mit Repository-Lesen + Pull-Request-Schreiben
Nur für
bb login(OS-Schlüsselbund):sudo apt install -y libsecret-1-0 gnome-keyring. Jeder Befehl funktioniert auch mitBITBUCKET_TOKEN.
Installation
pnpm install
pnpm build # core first, then mcp and cliEinstiegspunkte: packages/mcp/dist/index.js, packages/cli/dist/index.js.
Schnellstart
MCP-Server
claude mcp add mcp-bitbucket \
-e BITBUCKET_URL=https://bitbucket.example.com \
-e BITBUCKET_TOKEN=your-personal-access-token \
-- node /absolute/path/to/mcp-bitbucket/packages/mcp/dist/index.jsOder in .mcp.json (${VAR} wird von Claude Code expandiert, sodass kein Geheimnis committet wird):
{
"mcpServers": {
"mcp-bitbucket": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/mcp-bitbucket/packages/mcp/dist/index.js"],
"env": {
"BITBUCKET_URL": "${BITBUCKET_URL}",
"BITBUCKET_TOKEN": "${BITBUCKET_TOKEN}"
}
}
}
}HTTP-Transport statt stdio: node packages/mcp/dist/index.js --http (Port 3000) oder MCP_HTTP_PORT=8080 node …. Routen: POST /mcp, GET /mcp (SSE), DELETE /mcp.
bb-CLI
pnpm --filter @mcp-bitbucket/cli link --global
bb login # or export BITBUCKET_URL / BITBUCKET_TOKEN
bb whoami # proves authentication — `bb ping` only proves reachability
bb pr get 42 # repository comes from the git origin remoteBefehlsübersicht: packages/cli/README.md oder bb --help.
Claude-Code-Skill
bash packages/skill/scripts/install.sh # ~/.claude/skills/bitbucket-review
bash packages/skill/scripts/install.sh ./.claude # project scopeBenötigt bb im PATH und eine auflösbare Anmeldeinformation.
Konfiguration
Umgebungsvariablen, .env im Repository-Stamm wird automatisch geladen (cp .env.example .env). Der MCP-Server validiert sie beim Start; die CLI akzeptiert auch --url / --token, die über allem stehen.
Variable | Standard | Effekt |
| — | Basis-URL der Instanz. Erforderlich für den MCP-Server. |
| — | Personal Access Token. Erforderlich für den MCP-Server. |
|
| Welche Verben der MCP-Server bereitstellt – siehe Berechtigungen. |
| nicht gesetzt (alle) | Repository-Zulassungsliste – siehe Berechtigungen. |
| nicht gesetzt | Aktiviert HTTP-Transport auf diesem Port statt stdio. |
|
|
|
|
| REST-Modul und -Version. |
| aufgelöst | Benutzer-Slug, unter dem die Review-Tools handeln, wenn ein Proxy |
| nicht gesetzt | Nur CLI: Standard für |
Grenzen
Jede numerische Obergrenze lebt in packages/core/src/operations/caps.ts und ist per Umgebungsvariable überschreibbar: BITBUCKET_DIFF_MAX_CHARS (60000), BITBUCKET_DIFF_HEAD_RATIO (0.6), BITBUCKET_DIFF_CONTEXT_LINES (3), BITBUCKET_DIFF_FETCH_MAX_CHARS (12000000), BITBUCKET_DIFF_CACHE_ENTRIES (4), BITBUCKET_CHANGED_FILES_MAX_ITEMS (1000), BITBUCKET_CHANGED_FILES_STATS_MAX_FILES (500). Die Kürzung ist nie still – der Hinweis nennt den Parameter und die Variable, die die Obergrenze anheben, und listet jeden ausgelassenen Hunk-Header auf.
Berechtigungen
Zwei unabhängige Schutzmechanismen.
MCP_PERMISSION_MODE – nur MCP-Server. Jedes Tool ist in packages/mcp/src/permissions.ts als read, write oder destructive klassifiziert; ein verbotenes Tool wird sowohl in ListTools versteckt als auch bei Aufruf mit Namen abgelehnt.
Modus | Tools |
nicht gesetzt / | 29 |
| 26 – kein |
| 17 |
alles andere | 0 – ein Tippfehler schlägt fehl, mit einer Warnung auf stderr |
Die CLI liest es nicht. Eine readonly-Bereitstellung stoppt bb review merge nicht.
Repository-Zulassungsliste – beide Einstiegspunkte. BITBUCKET_ALLOWED_PROJECTS / BITBUCKET_ALLOWED_REPOS akzeptieren durch Komma, Semikolon oder Leerzeichen getrennte Muster: PROJ, PROJ/*, PROJ/repo-a. Die Prüfung läuft im gemeinsamen Client, bevor ein Socket geöffnet wird, sodass jedes Tool und jeder bb-Befehl sie erbt. Nicht gesetzt bedeutet jedes Repository. Groß-/Kleinschreibung wird ignoriert; persönliche Repos sind Projekt ~username. Ein fehlerhaftes Muster wird verworfen, nie erweitert – ein Wert, der nur aus fehlerhaften Mustern besteht, erlaubt nichts.
Tools
29 MCP-Tools: 17 lesend, 9 schreibend, 3 destruktiv. Vollständige Parameter in docs/tools.md.
Gruppe | Tools |
Diagnose |
|
Repository |
|
Pull-Request |
|
Kommentar |
|
Kontext |
|
Diff |
|
Commit |
|
Durchsuchen |
|
Suche |
|
Review |
|
Bemerkenswerte Standardeinstellungen
Aufgelöste Diskussionen sind verborgen.
get_pull_request_comments/bb comment lsbenötigenincludeResolved(--include-resolved), um aufgelöste Threads und Aufgaben zu zeigen; die Antwort sagt, wie viele verborgen wurden. Ein expliziterstate-Filter überschreibt den Standard.Reviews werden entworfen, nicht veröffentlicht.
add_pr_draft_comment/bb review draftspeichern einen unsichtbaren Kommentar;submit_pr_reviewveröffentlicht jeden ausstehenden Kommentar mit einem Urteil als eine Benachrichtigung.pending: false(--no-pending) postet sofort;discard_pr_draft_reviewverwirft den Entwurf.bb ping≠ Authentifizierung./application-propertiesantwortet auf vielen Instanzen anonym mit 200.bb whoamiist die Authentifizierungsprüfung.
Entwicklung
pnpm build | typecheck | test | lint | format | clean
pnpm dev:mcp # MCP server from source (tsx)
pnpm cli pr ls # bb from source
pnpm --filter @mcp-bitbucket/core testDie Schichtungsregel, die verhindert, dass die Adapter auseinanderdriften:
core weiß nichts über MCP oder die CLI – kein MCP-SDK, kein yargs, kein stdout. Operationen nehmen einen Client plus Parameter und geben strukturierte Daten zurück oder werfen eine Ausnahme.
Adapter besitzen Eingabevalidierung und Ausgabeform – zod plus die MCP-Ergebnisform in
mcp, yargs plus Text/--jsonincli. Keines davon leckt in core.Fehlermeldungen werden einmal in core geschrieben, mit Platzhaltern im Stil von
{projects}/{login}, die jeder Adapter in seiner eigenen Vokabular rendert – derselbe Fehler sagt einem Modell „verwendelist_projects“ und Ihnen „verwendebb project ls“.Eine neue Fähigkeit ist eine Operation plus ein Formatierer in core, dann ein dünner Adapter in jedem von
mcpundcli.
Docker
Das Image enthält nur den MCP-Server.
docker build -t mcp-bitbucket .
docker run -i --rm -e BITBUCKET_URL=… -e BITBUCKET_TOKEN=… mcp-bitbucket
docker run --rm -p 3000:3000 -e BITBUCKET_URL=… -e BITBUCKET_TOKEN=… -e MCP_HTTP_PORT=3000 mcp-bitbucketFehlerbehebung
docs/troubleshooting.md. Die drei häufigsten: Ein Tool, das in der Client-Liste fehlt, bedeutet, dass MCP_PERMISSION_MODE es versteckt hat (ein nicht erkannter Wert versteckt alle 29); Refused: … outside the configured repository allowlist bedeutet, dass die Zulassungsliste dieses Repo nicht abdeckt; weniger Kommentare als in der Web-UI bedeutet, dass aufgelöste Threads verborgen sind.
Einschränkungen
Nur Bitbucket Server; kein Bitbucket Cloud, kein OAuth/SSO/App-Passwörter.
bb loginspeichert Anmeldeinformationen nur im OS-Schlüsselbund – kein Klartextspeicher, kein--password.Keine Webhooks oder ereignisgesteuerter Modus; der Server beantwortet Tool-Aufrufe.
Diffs sind serverseitig gerenderter Unified-Diff-Text; Inline-Kommentare, die im Diff verankert sind, werden nicht offengelegt.
search_codebenötigt den Code-Index der Instanz: Standard-Branch, ganze Wörter, kein Regex.MCP_PERMISSION_MODEbeschränkt nur den MCP-Server; die Zulassungsliste beschränkt beide.
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with Bitbucket Cloud workspaces, repositories, branches, commits, and pull requests through MCP tools for listing, fetching, searching, commenting, reviewing diffs, and managing repository workflows such as cloning and PR operations.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with Bitbucket workspaces, repositories, and pull requests via MCP tools for listing, retrieving, commenting, searching, cloning, and managing code-review workflows.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with Bitbucket Cloud workspaces, repositories, pull requests, branches, commits, and code through MCP tools for listing, retrieving, searching, commenting, and managing version control workflows.-
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with Atlassian Bitbucket Cloud workspaces, repositories, and pull requests through MCP tools for listing, getting, commenting, searching, and managing version control workflows.MIT