Bitbucket MCP Server
Bitbucket MCP Server
Ein auf den Produktionseinsatz ausgerichteter Model Context Protocol-Server zum Abrufen von Pull-Request-Metadaten und Diffs aus Bitbucket Cloud und Bitbucket Server/Data Center, mit Pull-Request-Kommentaren als Opt-in-Funktion.
Funktionen
Unterstützt Bitbucket Cloud und selbst gehostetes Bitbucket Server/Data Center.
Stellt fokussierte Tools für Pull-Request-Metadaten, Diffs, Review-Diskussionen sowie allgemeine oder Inline-Kommentare bereit.
Unterstützt Bearer-Tokens und Basic-Authentifizierung.
Gibt rohe Diffs sowie strukturierte Daten zu geänderten Dateien zurück, sofern Bitbucket sie bereitstellt.
Schließt generierte Dateien, Ordner oder Dateitypen über konfigurierbare Glob-Muster aus.
Begrenzt große Diffs, ohne UTF-8-Zeichen zu beschädigen.
Verwendet stdio, ohne protokollverletzende Logs in stdout zu schreiben.
Lässt die Kommentarerstellung standardmäßig deaktiviert und genehmigt, merged oder verändert Pull Requests nicht.
Related MCP server: Atlassian Bitbucket MCP Server
Schnellstart
Erfordert eine unterstützte Node.js-LTS-Version (Node.js 22 oder neuer).
git clone https://github.com/inceon/bitbucket-mcp.git
cd bitbucket-mcp
npm install
npm run build
cp .env.example .envSetzen Sie BITBUCKET_URL und BITBUCKET_TOKEN in Ihrer MCP-Client-Konfiguration und starten Sie dann den kompilierten Server mit node dist/index.js. Der Server lädt bewusst keine .env-Dateien selbst; MCP-Clients sollten Umgebungsvariablen direkt übergeben.
Authentifizierung
Die Bearer-Authentifizierung ist die Standardmethode und wird für persönliche Zugriffstokens von Bitbucket Server/Data Center empfohlen:
BITBUCKET_URL=https://bitbucket.example.com/bitbucket
BITBUCKET_TOKEN=your-personal-access-token
BITBUCKET_AUTH_TYPE=bearerFür Bitbucket-Cloud-API-Tokens oder App-Passwörter, die eine Basic-Authentifizierung erfordern:
BITBUCKET_URL=https://api.bitbucket.org
BITBUCKET_TOKEN=your-api-token-or-app-password
BITBUCKET_AUTH_TYPE=basic
BITBUCKET_USERNAME=your-bitbucket-usernameGewähren Sie der Anmeldeinformation nur die Berechtigungen, die für die von Ihnen aktivierten Tools erforderlich sind. Die Kommentarerstellung erfordert die Berechtigung, Pull-Request-Kommentare zu erstellen. Committen Sie niemals Anmeldedaten und geben Sie keine echten Tokens in Issue-Meldungen an.
Umgebungsvariablen
Variable | Erforderlich | Standard | Beschreibung |
| Ja | - | Basis-URL von Bitbucket, z. B. |
| Ja | - | API-Token, App-Passwort oder persönliches Zugriffstoken |
| Nein |
|
|
| Für Basic-Auth | - | Benutzername, der zusammen mit dem Token für die Basic-Auth verwendet wird |
| Nein |
| Maximale UTF-8-Bytegröße, die in |
| Nein |
| Maximale Anzahl an Bytes, die aus einem vorgelagerten Raw-Diff gelesen werden, bevor abgebrochen wird |
| Nein |
| Maximale Anzahl an Bytes, die aus einer beliebigen Bitbucket-JSON-Antwort gelesen werden |
| Nein |
| Maximale Anzahl an Pull-Request-Kommentaren, die über Seiten hinweg gesammelt werden |
| Nein |
| Maximale Anzahl verfolgter Pull-Request-Kommentarseiten |
| Nein |
| Maximale Anzahl an Pull-Request-Commits, die über Seiten hinweg gesammelt werden |
| Nein |
| Maximale Anzahl verfolgter Pull-Request-Commit-Seiten |
| Nein |
| Maximale Anzahl strukturierter Einträge zu geänderten Dateien, die über Seiten hinweg gesammelt werden |
| Nein |
| Maximale Anzahl verfolgter strukturierter Seiten zu geänderten Dateien |
| Nein |
| Frist in Millisekunden für jede Bitbucket-HTTP-Anfrage |
| Nein | - | Durch Kommas getrennte Datei-Globs, die aus jedem PR-Diff ausgeschlossen werden |
| Nein |
| Auf |
Der Server schreibt Startfehler nur nach stderr und schwärzt konfigurierte Anmeldedaten in Bitbucket-HTTP-Fehlerausschnitten.
MCP-Konfiguration
Claude-Desktop-Konfiguration:
{
"mcpServers": {
"bitbucket": {
"command": "node",
"args": ["/absolute/path/to/my-bitbucket-mcp/dist/index.js"],
"env": {
"BITBUCKET_URL": "https://api.bitbucket.org",
"BITBUCKET_TOKEN": "your-token"
}
}
}
}Codex-config.toml-Konfiguration:
[mcp_servers.bitbucket]
command = "node"
args = ["/absolute/path/to/my-bitbucket-mcp/dist/index.js"]
[mcp_servers.bitbucket.env]
BITBUCKET_URL = "https://api.bitbucket.org"
BITBUCKET_TOKEN = "your-token"Verfügbare Tools
get_pull_request
Gibt Pull-Request-Metadaten zurück, einschließlich Beschreibung, Status, Autor, Reviewer, Branches, Zeitstempel und Links.
{
"name": "get_pull_request",
"arguments": {
"workspace": "my-workspace",
"repository": "my-repository",
"pull_request_id": 123
}
}get_pull_request_comments
Gibt vorhandene allgemeine und Inline-Diskussionen als native Kommentarobjekte des Anbieters zurück. Nutzen Sie es, bevor Sie einen Review-Befund posten, um vorhandenes Feedback zu berücksichtigen. commentsStatus.complete ist false mit dem Grund max_comments oder max_pages, wenn die konfigurierten Abrufgrenzen erreicht sind.
get_pull_request_commits
Gibt die derzeit im Pull Request enthaltenen natives Commits des Anbieters zurück. Nutzen Sie es, um einen Befund bis zu seinem Ursprungs-Commit zurückzuverfolgen oder zu prüfen, ob spätere Arbeiten ihn aufgreifen. commitsStatus.complete ist false mit dem Grund max_commits oder max_pages, wenn die konfigurierten Abrufgrenzen erreicht sind.
get_pull_request_diff
Gibt einen Review-Diff im Git-Stil und, sofern verfügbar, strukturierte geänderte Dateien zurück.
{
"name": "get_pull_request_diff",
"arguments": {
"workspace": "PROJECT_KEY",
"repository": "my-repository",
"pull_request_id": 123,
"ignore_patterns": ["dist/**", "**/*.generated.ts", "package-lock.json"],
"path": "src/service.ts",
"context": 5,
"ignore_whitespace": true,
"renames": true
}
}Die Diff-Ausgabe ist sowohl als abwärtskompatibler JSON-Text als auch als MCP-structuredContent mit einem deklarierten Ausgabeschema verfügbar. Sie enthält:
provider,pull_request_id,rawDiff,rawDiffBytesundrawDiffSource.rawDiffSourceistprovider_rawfür Cloud oderserver_structuredfür eine lokal normalisierte Antwort von Server/Data Center.truncatedplustruncationReason:input_limit, wenn das vorgelagerte Cloud-Leselimit erreicht wurde,output_limit, wenn das gefilterte ErgebnisBITBUCKET_MAX_DIFF_BYTESüberschritt, oderprovider_limit, wenn Server/Data Center seinen strukturierten Diff als abgeschnitten markiert hat.Optionale kompakte
files-Einträge enthalten nurpath, normalisiertenstatusundoldPathfür Umbenennungen oder Kopien. Das erforderlichefilesStatusmeldet die Vollständigkeit;completeistfalsemit dem Grundmax_files,max_pagesoderunsupported, undreturnedspiegelt die tatsächlich zurückgegebenen gefilterten Einträge wider.Optionale
ignored-Metadaten, wenn Ausschlüsse aktiv sind.
Vollständiges Ergebnis:
{
"provider": "cloud",
"pull_request_id": 123,
"rawDiff": "diff --git ...",
"rawDiffBytes": 128,
"rawDiffSource": "provider_raw",
"files": [],
"filesStatus": { "available": true, "complete": true, "returned": 0 },
"truncated": false
}Begrenztes Teilergebnis:
{
"provider": "cloud",
"pull_request_id": 123,
"rawDiff": "diff --git ...",
"rawDiffBytes": 200000,
"rawDiffSource": "provider_raw",
"files": [{ "path": "src/service.ts", "status": "modified" }],
"filesStatus": {
"available": true,
"complete": false,
"returned": 1,
"reason": "max_pages"
},
"truncated": true,
"truncationReason": "output_limit"
}Ein abgeschnittenes rawDiff ist ein UTF-8-sicheres Review-Präfix, nicht unbedingt eine vollständige Zeile, ein vollständiger Hunk oder ein anwendbarer Patch.
Strukturierte Dateiseiten werden verfolgt, bis sie vollständig sind oder bis eine konfigurierte Datei-/Seitengrenze erreicht ist, und dann zu kompakten Review-Metadaten normalisiert, anstatt Anbieter-Hashes, Links und doppelte Pfadstrukturen zurückzugeben. Ein nicht verfügbarer diffstat- oder changes-Endpunkt wird erst nach HTTP 404 gemeldet. Autorisierungs-, Rate-Limit-, Server-, Fehlantwort-, Timeout- und Transportfehler lassen den Tool-Aufruf fehlschlagen, anstatt Metadaten stillschweigend wegzulassen.
Cloud-rawDiff bewahrt die rohe Antwort des Anbieters. Server/Data Center verwendet die strukturierte /diff-Antwort und normalisiert deren Dateien, Hunks, Segmente und Zeilen zu Review-Text im Git-Stil; dies vermeidet versionsspezifische Fehler des separaten .diff-Exportwegs. rawDiffSource macht diese Unterscheidung explizit.
path wird für beide Anbieter unterstützt und ist der bevorzugte Weg, große Pull Requests dateiweise zu prüfen; die zurückgegebenen files-Metadaten sind auf denselben Pfad beschränkt. renames gibt es nur in Cloud. context wird auf Cloud-context und die contextLines von Server/Data Center abgebildet. ignore_whitespace wird auf Cloud-ignore_whitespace und whitespace=ignore-all von Server/Data Center abgebildet. Wenn diese Steuerelemente fehlen, ändern sie die Anbieterstandardwerte nicht.
Muster verwenden repository-relative Pfade und unterstützen *, ** und ?. Ein Muster ohne /, wie package-lock.json oder *.png, findet diesen Dateinamen überall. Ein abschließender Schrägstrich schließt ein Verzeichnis rekursiv aus. Wenn Ausschlüsse aktiv sind, enthält die Antwort ignored.patterns, ignored.files und ignored.rawDiffFiltered. Ein false-Wert bei rawDiffFiltered bedeutet, dass ein Cloud-Anbieter ein Nicht-Git-Diff-Format zurückgegeben hat, das nicht sicher gefiltert werden konnte; die Antwort wird beibehalten, anstatt Inhalte stillschweigend zu verwerfen.
add_pull_request_comment
Erstellt einen allgemeinen Kommentar, einen Kommentar auf Dateiebene oder einen Inline-Zeilenkommentar zu einem Pull Request. Dieser Schreibvorgang ist nur verfügbar, wenn BITBUCKET_ENABLE_WRITE_TOOLS=true in der MCP-Serverumgebung gesetzt ist.
Allgemeiner Kommentar:
{
"name": "add_pull_request_comment",
"arguments": {
"workspace": "my-workspace",
"repository": "my-repository",
"pull_request_id": 123,
"comment": "The implementation looks good. Please add a regression test for the empty input case."
}
}Inline-Kommentar zu einer hinzugefügten Zeile:
{
"name": "add_pull_request_comment",
"arguments": {
"workspace": "my-workspace",
"repository": "my-repository",
"pull_request_id": 123,
"comment": "Please handle an empty value here.",
"file_path": "src/service.ts",
"line": 42,
"line_type": "added"
}
}Verwenden Sie die line_type-Werte added, removed oder context. Hinzugefügte Zeilen verwenden standardmäßig die new-Seite, entfernte Zeilen die old-Seite und Kontextzeilen new; setzen Sie line_side explizit, um einen Kontextkommentar auf old zu platzieren. Geben Sie file_path ohne Zeilenfelder für einen Kommentar auf Dateiebene an. Bei umbenannten Dateien in Server/Data Center kann source_file_path den vorherigen Pfad angeben.
Der authentifizierte Bitbucket-Benutzer wird zum Kommentarautor. Prüfen Sie den Ziel-Workspace, das Repository, die Pull-Request-ID und den Kommentartext, bevor Sie den Tool-Aufruf in Ihrem MCP-Client genehmigen.
Anbieterverhalten
Der URL-Host bestimmt den Anbieter. bitbucket.org und api.bitbucket.org verwenden Bitbucket Cloud; alle anderen Hosts verwenden Server/Data Center.
Cloud-URLs werden auf ein /2.0-API-Präfix normalisiert und verwenden:
/repositories/{workspace}/{repository}/pullrequests/{id}/repositories/{workspace}/{repository}/pullrequests/{id}/diff/repositories/{workspace}/{repository}/pullrequests/{id}/diffstat/repositories/{workspace}/{repository}/pullrequests/{id}/comments(GET;POST, wenn aktiviert)/repositories/{workspace}/{repository}/pullrequests/{id}/commits(GET)
Die URLs von Server/Data Center erhalten einen Kontextpfad wie /bitbucket, normalisieren auf ein /rest/api/1.0-Präfix und verwenden:
/projects/{project}/repos/{repository}/pull-requests/{id}/projects/{project}/repos/{repository}/pull-requests/{id}/diff(strukturierter Diff, zu Review-Text im Git-Stil normalisiert)/projects/{project}/repos/{repository}/pull-requests/{id}/diff/{path}(pfadbezogener strukturierter Diff)/projects/{project}/repos/{repository}/pull-requests/{id}/changes/projects/{project}/repos/{repository}/pull-requests/{id}/comments(GET;POST, wenn aktiviert)/projects/{project}/repos/{repository}/pull-requests/{id}/commits(GET)
Die optionale diffstat- oder changes-Anfrage meldet nach HTTP 404 filesStatus.reason: "unsupported". Andere HTTP-, Timeout-, Transport- und Parsing-Fehler lassen den Tool-Aufruf fehlschlagen, sodass unvollständige Metadaten nicht für eine vollständige Antwort gehalten werden.
Atlassian Rovo MCP
Atlassian dokumentiert die nur in der Cloud verfügbare Aktion bitbucketPullRequest.diff, veröffentlicht aber weder das Argumentschema noch die Ausgabestruktur noch einen Vertrag über Paginierung, Filterung oder Kürzung. Dieser Server behandelt deshalb die direkten Bitbucket-APIs weiterhin als maßgeblich. Ein Rovo-Adapter sollte erst nach der Validierung eines live abgefragten tools/list-Schemas und einer kontrollierten diff-Antwort hinzugefügt werden; er muss weiterhin explizit konfiguriert sein und kann die Unterstützung von Server/Data Center nicht ersetzen. Siehe Atlassians Seite zu unterstützten Tools.
Roadmap
Geplante Bereiche für zukünftige Versionen:
Retry-Handling und klarere Rate-Limit-Diagnostik hinzufügen.
Normalisierte Pull-Request-Ausgabe liefern, wobei der Zugriff auf anbieterspezifische Felder erhalten bleibt.
Schreibgeschützte Tools zum Auflisten von Pull Requests und zum Abrufen der Build-Status hinzufügen.
Optionalen Streamable-HTTP-Transport anbieten, wobei stdio weiterhin Standard ist.
Versionierte Releases mit einfacheren Installations- und Upgrade-Pfaden veröffentlichen.
Schreiboperationen bleiben standardmäßig deaktiviert. Das Genehmigen, Zusammenführen und weitere Bitbucket-Operationen mit großer Auswirkung sind nicht geplant. Ideen und Implementierungsvorschläge sind über GitHub Issues willkommen.
Entwicklung
npm run dev # Run directly from TypeScript
npm run build # Compile to dist/
npm test # Run the test suite once
npm run test:watch # Run tests in watch mode
npm run check # Build and test, matching CIDie Befehlsregistrierung hält jedes MCP-Tool unter src/tools isoliert. Siehe CONTRIBUTING.md, bevor du einen Pull Request eröffnest.
Sicherheit
Dieser Server verarbeitet Zugangsdaten und sendet sie ausschließlich an die konfigurierte BITBUCKET_URL. Prüfe diese URL sorgfältig, bevor du den Server startest. Wenn die Schreib-Tools aktiviert sind, können verbundene MCP-Clients PR-Kommentare als authentifizierter Bitbucket-Benutzer veröffentlichen. Um eine Sicherheitslücke vertraulich zu melden, folge den Anweisungen in SECURITY.md.
Lizenz
Veröffentlicht unter der MIT-Lizenz.
Available Tools
3 toolsadd_pull_request_commentA
Creates a general, file, or inline line comment on a Bitbucket pull request. This is a write operation and requires BITBUCKET_ENABLE_WRITE_TOOLS=true.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | Bitbucket Cloud workspace ID or Bitbucket Server/Data Center project key | |
| repository | Yes | Repository slug or repository name | |
| pull_request_id | Yes | Pull request ID | |
| comment | Yes | Comment text. Bitbucket Cloud renders supported Markdown. | |
| file_path | No | Optional destination-side repository path for a file or line comment. | |
| source_file_path | No | Optional previous path for a renamed or copied file. Used by Server/Data Center. | |
| line | No | Optional 1-based diff line number. Requires file_path and line_type. | |
| line_type | No | Kind of diff line. Requires file_path and line. | |
| line_side | No | Diff side. Defaults to old for removed lines and new otherwise. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description declares write operation and environment variable requirement, but omits details on side effects, permissions, rate limits, or comment management (editing/deletion).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one sentence plus a note on prerequisites. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing explanation of return values (no output schema), no guidance on combining file_path, line, line_type, line_side for inline comments. Given 9 parameters and write nature, more context needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; each parameter is documented in the schema. The description adds no extra semantic value beyond summarizing the tool's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it creates a comment on a Bitbucket pull request, specifying three types: general, file, or inline line comment. Different from sibling read-only tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly identifies it as a write operation requiring BITBUCKET_ENABLE_WRITE_TOOLS=true. Does not explicitly state when to use versus siblings, but the read-only nature of siblings implies the writing use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pull_requestA
Retrieves metadata, description, state/status, author, reviewers, source branch, destination branch, timestamps, and links for a specific Bitbucket pull request.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | Bitbucket Cloud workspace ID or Bitbucket Server/Data Center project key | |
| repository | Yes | Repository slug or repository name | |
| pull_request_id | Yes | Pull request ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes what data is retrieved but does not mention any behavioral traits such as authentication requirements, rate limits, or potential performance implications. For a simple read operation, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently lists the retrieved data without any fluff. Every phrase adds value, and the structure is front-loaded with the verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does a good job of listing the expected return fields (metadata, description, state, author, reviewers, branches, timestamps, links). It is fairly comprehensive, though it could be improved by noting if any fields are nested or if there are pagination details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, meaning all parameters are described in the schema. The description adds no extra meaning beyond the schema; it simply restates that the tool retrieves for a specific pull request. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Retrieves' and clearly lists the resource ('metadata, description, state/status, author, reviewers, source branch, destination branch, timestamps, and links for a specific Bitbucket pull request'). It distinguishes from sibling tools (add_pull_request_comment and get_pull_request_diff) by focusing on retrieval of metadata, not adding comments or getting diffs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool vs alternatives. While the purpose is clear, there is no guidance on when not to use it or which sibling tool to choose for other tasks. The agent must rely on tool names and context, which is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pull_request_diffA
Retrieves the raw diff and, when available, a structured list of changed files for a specific Bitbucket pull request.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | Yes | Bitbucket Cloud workspace ID or Bitbucket Server/Data Center project key | |
| repository | Yes | Repository slug or repository name | |
| pull_request_id | Yes | Pull request ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions return content (raw diff and structured files) but does not discuss side effects, authentication needs, or limitations such as file size constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is direct and waste-free, conveying the essential information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a retrieval tool with three fully described parameters and no output schema, the description adequately states what is returned. Slightly incomplete in not mentioning that diff may be large or truncated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all three parameters with descriptions (100% coverage). The tool description adds no extra meaning beyond the schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'retrieves' and resources 'raw diff' and 'structured list of changed files' for a specific Bitbucket pull request, distinguishing it from sibling tools like add_pull_request_comment and get_pull_request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs siblings; usage is implied by the name and description but not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.0- First observed
add_pull_request_comment - First observed
get_pull_request - First observed
get_pull_request_diff
TDQS
Scored across 3 tools
Each tool targets a distinct aspect of pull requests: commenting, metadata retrieval, and diff retrieval. No functional overlap, making selection clear.
All tool names follow a consistent verb_noun snake_case pattern (add_*, get_*, get_*), which is predictable and easy to follow.
Three tools is minimal for a Bitbucket server; it covers only basic pull request read operations and commenting, missing core CRUD operations, but it is not extreme.
The toolset lacks essential operations like listing, creating, updating, or merging pull requests. Agents cannot perform a full workflow, leaving significant gaps.
Related MCP Connectors
Human-authenticated setup for routing GitHub pull requests into the right Slack channel.
A Model Context Protocol (MCP) application for automated GitHub PR analysis and issue management.…
Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.
Manage repositories, users, releases, and automate GitHub workflows
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables management of Bitbucket Cloud pull requests through natural language, including creating, reviewing, approving, and commenting on PRs with automatic default reviewer support.791MIT
- AlicenseBqualityBmaintenanceEnables 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
- AlicenseAqualityDmaintenanceEnables LLMs to review Bitbucket pull requests with custom checklists and API token authentication.51MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to read Bitbucket Cloud pull requests and diffs through natural conversation.228 npmMIT