Skip to main content
Glama
aashari

Atlassian Bitbucket MCP Server

by aashari

Atlassian Bitbucket MCP Server

Ein Node.js/TypeScript Model Context Protocol (MCP)-Server für Atlassian Bitbucket Cloud. Ermöglicht KI-Systemen (z. B. LLMs wie Claude oder Cursor AI) die sichere Interaktion mit Ihren Repositories, Pull Requests, Arbeitsbereichen und Ihrem Code in Echtzeit.

NPM-Version Build-Status

Warum diesen Server verwenden?

  • Minimaler Input, maximaler Output : Einfache Kennungen liefern umfassende Details, ohne dass zusätzliche Flags erforderlich sind.

  • Umfangreiche Code-Visualisierung : Erhalten Sie detaillierte Einblicke in Codeänderungen mit Dateistatistiken, Diff-Ansichten und intelligentem Kontext.

  • Sichere lokale Authentifizierung : Führen Sie die Authentifizierung lokal mit Ihren Anmeldeinformationen aus und speichern Sie Token niemals auf Remote-Servern.

  • Intuitive Markdown-Antworten : Gut strukturierte, konsistente Markdown-Formatierung für alle Ausgaben.

  • Vollständige Bitbucket-Integration : Zugriff auf Arbeitsbereiche, Repositories, Pull-Anfragen, Kommentare, Codesuche und mehr.

Related MCP server: GitHub MCP Tools

Was ist MCP?

Model Context Protocol (MCP) ist ein offener Standard für die sichere Verbindung von KI-Systemen mit externen Tools und Datenquellen. Dieser Server implementiert MCP für Bitbucket Cloud und ermöglicht KI-Assistenten die programmgesteuerte Interaktion mit Ihren Bitbucket-Daten.

Voraussetzungen

Aufstellen

Schritt 1: Authentifizieren

Wählen Sie eine der folgenden Authentifizierungsmethoden:

Option A: Bitbucket-App-Passwort (empfohlen)

Generieren Sie eines aus Bitbucket App Passwords . Mindestberechtigungen:

  • Arbeitsbereiche: Lesen

  • Repositories: Lesen

  • Pull Requests: Lesen

Sie können auch BITBUCKET_DEFAULT_WORKSPACE festlegen, um einen Standardarbeitsbereich anzugeben, wenn dieser nicht explizit angegeben ist.

Option B: Atlassian API Token

Generieren Sie eines aus Atlassian API-Tokens .

Hinweis: Es werden dringend Bitbucket-App-Passwörter empfohlen, da sie detailliertere, Bitbucket-spezifische Berechtigungen bieten.

Schritt 2: Anmeldeinformationen konfigurieren

Option A: MCP-Konfigurationsdatei (empfohlen)

Bearbeiten oder erstellen Sie ~/.mcp/configs.json :

Verwenden des Bitbucket-App-Passworts:

{
	"bitbucket": {
		"environments": {
			"ATLASSIAN_BITBUCKET_USERNAME": "<your_username>",
			"ATLASSIAN_BITBUCKET_APP_PASSWORD": "<your_app_password>"
		}
	}
}

Verwenden des Atlassian API-Tokens:

{
	"bitbucket": {
		"environments": {
			"ATLASSIAN_SITE_NAME": "bitbucket",
			"ATLASSIAN_USER_EMAIL": "<your_email>",
			"ATLASSIAN_API_TOKEN": "<your_api_token>"
		}
	}
}

Option B: Umgebungsvariablen

export ATLASSIAN_BITBUCKET_USERNAME="<your_username>"
export ATLASSIAN_BITBUCKET_APP_PASSWORD="<your_app_password>"

Schritt 3: Installieren und Ausführen

Schnellstart mit npx

npx -y @aashari/mcp-server-atlassian-bitbucket ls-workspaces

Globale Installation

npm install -g @aashari/mcp-server-atlassian-bitbucket
mcp-atlassian-bitbucket ls-workspaces

Schritt 4: Mit dem AI Assistant verbinden

Konfigurieren Sie Ihren MCP-kompatiblen Client (z. B. Claude, Cursor AI):

{
	"mcpServers": {
		"bitbucket": {
			"command": "npx",
			"args": ["-y", "@aashari/mcp-server-atlassian-bitbucket"]
		}
	}
}

MCP-Werkzeuge

MCP-Tools verwenden snake_case -Namen, camelCase -Parameter und geben Antworten im Markdown-Format zurück.

  • bb_ls_workspaces : Listet verfügbare Arbeitsbereiche auf ( query : str opt). Verwendung: Verfügbare Arbeitsbereiche anzeigen.

  • bb_get_workspace : Ruft Arbeitsbereichsdetails ab ( workspaceSlug : str req). Verwendung: Arbeitsbereichsinformationen anzeigen.

  • bb_ls_repos : Listet Repositories auf ( workspaceSlug : str opt, projectKey : str opt, query : str opt, role : str opt). Verwendung: Repositories suchen.

  • bb_get_repo : Ruft Repository-Details ab ( workspaceSlug : str req, repoSlug : str req). Verwendung: Zugriff auf Repository-Informationen.

  • bb_search : Durchsucht Bitbucket-Inhalte ( workspaceSlug : str req, query : str req, scope : str opt, language : str opt, extension : str opt). Verwendung: Code oder PRs finden.

  • bb_ls_prs : Listet Pull Requests auf ( workspaceSlug : str req, repoSlug : str req, state : str opt). Verwendung: Offene oder zusammengeführte PRs anzeigen.

  • bb_get_pr : Ruft PR-Details ab ( workspaceSlug : str req, repoSlug : str req, prId : str req). Verwendung: PR-Details mit Unterschieden anzeigen.

  • bb_ls_pr_comments : Listet PR-Kommentare auf ( workspaceSlug : str req, repoSlug : str req, prId : str req). Verwendung: PR-Diskussionen anzeigen.

  • bb_add_pr_comment : Fügt einen Kommentar zum PR hinzu ( workspaceSlug : str req, repoSlug : str req, prId : str req, content : str req, inline : obj opt). Verwendung: Feedback zu PRs hinzufügen.

  • bb_add_pr : Erstellt einen PR ( workspaceSlug : str req, repoSlug : str req, title : str req, sourceBranch : str req, targetBranch : str opt). Verwendung: Neue PRs erstellen.

  • bb_add_branch : Erstellt einen Zweig ( workspaceSlug : str req, repoSlug : str req, newBranchName : str req, sourceBranchOrCommit : str opt). Verwendung: Erstellt einen Feature-Zweig.

  • bb_clone_repo : Klont ein Repository ( workspaceSlug : str req, repoSlug : str req, targetPath : str req). Verwendung: Code lokal klonen.

  • bb_get_commit_history : Ruft den Commit-Verlauf ab ( workspaceSlug : str req, repoSlug : str req, revision : str opt, path : str opt). Verwendung: Codeverlauf anzeigen.

  • bb_get_file : Ruft den Dateiinhalt ab ( workspaceSlug : str req, repoSlug : str req, filePath : str req, revision : str opt). Verwendung: Bestimmte Datei anzeigen.

  • bb_diff_branches : Zeigt Unterschiede zwischen Zweigen an ( workspaceSlug : str req, repoSlug : str req, sourceBranch : str req, targetBranch : str req). Verwendung: Zweige vergleichen.

  • bb_diff_commits : Zeigt Unterschiede zwischen Commits an ( workspaceSlug : str req, repoSlug : str req, sourceCommit : str req, targetCommit : str req). Verwendung: Commits vergleichen.

  • bb_list_branches : Listet Zweige auf ( workspaceSlug : str req, repoSlug : str req, query : str opt, sort : str opt). Verwendung: Alle Zweige anzeigen.

bb_ls_workspaces

Alle Arbeitsbereiche auflisten:

{}

Arbeitsbereiche durchsuchen:

{ "query": "devteam" }

bb_get_workspace

Arbeitsbereichsdetails abrufen:

{ "workspaceSlug": "acme-corp" }

bb_ls_repos

Repos im Arbeitsbereich auflisten:

{ "workspaceSlug": "acme-corp", "projectKey": "PROJ" }

Repos mit Standardarbeitsbereich auflisten:

{ "projectKey": "PROJ" }

bb_get_repo

Repository-Details abrufen:

{ "workspaceSlug": "acme-corp", "repoSlug": "backend-api" }

Suchcode:

{
	"workspaceSlug": "acme-corp",
	"query": "Logger",
	"scope": "code",
	"language": "typescript"
}

bb_ls_prs

Liste offener PRs:

{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "state": "OPEN" }

bb_get_pr

PR-Details erhalten:

{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "prId": "42" }

bb_ls_pr_comments

PR-Kommentare auflisten:

{ "workspaceSlug": "acme-corp", "repoSlug": "frontend-app", "prId": "42" }

bb_add_pr_comment

Allgemeiner Kommentar hinzufügen:

{
	"workspaceSlug": "acme-corp",
	"repoSlug": "frontend-app",
	"prId": "42",
	"content": "Looks good."
}

Inline-Kommentar hinzufügen:

{
	"workspaceSlug": "acme-corp",
	"repoSlug": "frontend-app",
	"prId": "42",
	"content": "Consider refactoring.",
	"inline": { "path": "src/utils.js", "line": 42 }
}

bb_add_pr

Pull Request erstellen:

{
	"workspaceSlug": "acme-corp",
	"repoSlug": "frontend-app",
	"title": "Add login screen",
	"sourceBranch": "feature/login"
}

bb_add_branch

Neuen Zweig erstellen:

{
	"workspaceSlug": "acme-corp",
	"repoSlug": "frontend-app",
	"newBranchName": "feature/new-feature",
	"sourceBranchOrCommit": "main"
}

bb_clone_repo

Repository klonen:

{
	"workspaceSlug": "acme-corp",
	"repoSlug": "backend-api",
	"targetPath": "/Users/me/projects"
}

bb_get_commit_history

Commit-Verlauf anzeigen:

{
	"workspaceSlug": "acme-corp",
	"repoSlug": "backend-api"
}

Gefilterter Commit-Verlauf:

{
	"workspaceSlug": "acme-corp",
	"repoSlug": "backend-api",
	"revision": "develop",
	"path": "src/main/java/com/acme/service/UserService.java"
}

bb_get_file

Dateiinhalt abrufen:

{
	"workspaceSlug": "acme-corp",
	"repoSlug": "backend-api",
	"filePath": "src/main/java/com/acme/service/Application.java",
	"revision": "main"
}

bb_diff_branches

Branchen vergleichen:

{
	"workspaceSlug": "acme-corp",
	"repoSlug": "web-app",
	"sourceBranch": "develop",
	"targetBranch": "main"
}

bb_diff_commits

Commits vergleichen:

{
	"workspaceSlug": "acme-corp",
	"repoSlug": "web-app",
	"sourceCommit": "a1b2c3d",
	"targetCommit": "e4f5g6h"
}

bb_list_branches

Alle Zweige auflisten:

{
	"workspaceSlug": "acme-corp",
	"repoSlug": "frontend-app"
}

Gefilterte Zweige:

{
	"workspaceSlug": "acme-corp",
	"repoSlug": "frontend-app",
	"query": "feature/",
	"sort": "name"
}

CLI-Befehle

CLI-Befehle verwenden kebab-case . Führen Sie --help aus, um Details zu erhalten (z. B. mcp-atlassian-bitbucket ls-workspaces --help ).

  • ls-workspaces : Listet Arbeitsbereiche auf ( --query ). Beispiel: mcp-atlassian-bitbucket ls-workspaces .

  • get-workspace : Ruft Arbeitsbereichsdetails ab ( --workspace-slug ). Beispiel: mcp-atlassian-bitbucket get-workspace --workspace-slug acme-corp .

  • ls-repos : Listet Repos auf ( --workspace-slug , --project-key , --query ). Beispiel: mcp-atlassian-bitbucket ls-repos --workspace-slug acme-corp .

  • get-repo : Ruft Repo-Details ab ( --workspace-slug , --repo-slug ). Beispiel: mcp-atlassian-bitbucket get-repo --workspace-slug acme-corp --repo-slug backend-api .

  • search : Durchsucht Code ( --workspace-slug , --query , --scope , --language ). Beispiel: mcp-atlassian-bitbucket search --workspace-slug acme-corp --query "auth" .

  • ls-prs : Listet PRs auf ( --workspace-slug , --repo-slug , --state ). Beispiel: mcp-atlassian-bitbucket ls-prs --workspace-slug acme-corp --repo-slug backend-api .

  • get-pr : Ruft PR-Details ab ( --workspace-slug , --repo-slug , --pr-id ). Beispiel: mcp-atlassian-bitbucket get-pr --workspace-slug acme-corp --repo-slug backend-api --pr-id 42 .

  • ls-pr-comments : Listet PR-Kommentare auf ( --workspace-slug , --repo-slug , --pr-id ). Beispiel: mcp-atlassian-bitbucket ls-pr-comments --workspace-slug acme-corp --repo-slug backend-api --pr-id 42 .

  • add-pr-comment : Fügt einen PR-Kommentar hinzu ( --workspace-slug , --repo-slug , --pr-id , --content ). Beispiel: mcp-atlassian-bitbucket add-pr-comment --workspace-slug acme-corp --repo-slug backend-api --pr-id 42 --content "Looks good" .

  • add-pr : Erstellt PR ( --workspace-slug , --repo-slug , --title , --source-branch ). Beispiel: mcp-atlassian-bitbucket add-pr --workspace-slug acme-corp --repo-slug backend-api --title "New feature" --source-branch feature/login .

  • get-file : Ruft den Dateiinhalt ab ( --workspace-slug , --repo-slug , --file-path ). Beispiel: mcp-atlassian-bitbucket get-file --workspace-slug acme-corp --repo-slug backend-api --file-path src/main.js .

  • add-branch : Erstellt einen Zweig ( --workspace-slug , --repo-slug , --new-branch-name ). Beispiel: mcp-atlassian-bitbucket add-branch --workspace-slug acme-corp --repo-slug backend-api --new-branch-name feature/new .

Auflisten und Anzeigen von Arbeitsbereichen/Repositorys

# List all workspaces
mcp-atlassian-bitbucket ls-workspaces

# Get details of a specific workspace
mcp-atlassian-bitbucket get-workspace --workspace-slug acme-corp

# List repositories in a workspace
mcp-atlassian-bitbucket ls-repos --workspace-slug acme-corp --project-key PROJ

# Get details of a specific repository
mcp-atlassian-bitbucket get-repo --workspace-slug acme-corp --repo-slug backend-api

Arbeiten mit Pull Requests

# List open pull requests in a repository
mcp-atlassian-bitbucket ls-prs --workspace-slug acme-corp --repo-slug frontend-app --state OPEN

# Get details of a specific pull request with code changes
mcp-atlassian-bitbucket get-pr --workspace-slug acme-corp --repo-slug frontend-app --pr-id 42

# List comments on a pull request
mcp-atlassian-bitbucket ls-pr-comments --workspace-slug acme-corp --repo-slug frontend-app --pr-id 42

# Add a comment to a pull request
mcp-atlassian-bitbucket add-pr-comment --workspace-slug acme-corp --repo-slug frontend-app --pr-id 42 --content "Looks good to merge."

# Create a new pull request
mcp-atlassian-bitbucket add-pr --workspace-slug acme-corp --repo-slug frontend-app --title "Add login screen" --source-branch feature/login

Code und Commits

# Search for code
mcp-atlassian-bitbucket search --workspace-slug acme-corp --query "Logger" --scope code --language typescript

# View commit history
mcp-atlassian-bitbucket get-commit-history --workspace-slug acme-corp --repo-slug backend-api --revision develop

# Get file content
mcp-atlassian-bitbucket get-file --workspace-slug acme-corp --repo-slug backend-api --file-path "src/Application.java" --revision main

# Compare branches
mcp-atlassian-bitbucket diff-branches --workspace-slug acme-corp --repo-slug web-app --source-branch develop --target-branch main

# Compare commits
mcp-atlassian-bitbucket diff-commits --workspace-slug acme-corp --repo-slug web-app --source-commit a1b2c3d --target-commit e4f5g6h

Filialleitung

# List branches
mcp-atlassian-bitbucket list-branches --workspace-slug acme-corp --repo-slug frontend-app --query "feature/" --sort name

# Create a new branch
mcp-atlassian-bitbucket add-branch --workspace-slug acme-corp --repo-slug frontend-app --new-branch-name feature/new-feature --source-branch-or-commit main

# Clone a repository
mcp-atlassian-bitbucket clone --workspace-slug acme-corp --repo-slug backend-api --target-path ./cloned-projects

Antwortformat

Alle Antworten sind im Markdown-Format, einschließlich:

  • Titel : Durchgeführte Operation oder angezeigte Entität.

  • Kontext : Arbeitsbereich, Repository, Pull-Anfrage oder Zweiginformationen.

  • Inhalt : Primärdaten wie Dateiinhalte, PR-Details oder Suchergebnisse.

  • Metadaten : Zeitstempel, Autoren und Statistiken.

  • Unterschiede : Codeänderungen mit Syntaxhervorhebung für Unterschiede zwischen Zweigen/Commits.

Repository-Details

# Repository: backend-api

**Workspace:** acme-corp
**Full Name:** acme-corp/backend-api
**Language:** Java
**Created:** 2024-01-15 by John Smith
**Updated:** 2025-05-10 (2 days ago)

## Overview
Spring Boot backend API for the ACME product suite.

## Statistics
- **Default Branch:** main
- **Size:** 24.5 MB
- **Commits:** 358
- **Open PRs:** 4
- **Forks:** 3

## Recent Activity
- PR #42: "Add OAuth2 support" by Jane Doe (Open)
- PR #41: "Fix pagination bug" by Alex Kim (Merged)
- PR #40: "Update dependencies" by John Smith (Merged)

*Repository URL: https://bitbucket.org/acme-corp/backend-api*

Pull Request-Überprüfung

# Pull Request #42: Add OAuth2 support

**Repository:** acme-corp/backend-api
**Author:** Jane Doe
**State:** OPEN
**Created:** 2025-05-15 (4 days ago)
**Updated:** 2025-05-18 (yesterday)

## Description
Implements OAuth2 authentication flow with support for:
- Authorization code grant
- Refresh tokens
- Token caching

## Changes
- **Files changed:** 7
- **Additions:** 245 lines
- **Deletions:** 32 lines

## Diff for src/auth/OAuthService.java


	@@ -10,6 +10,25 @@ public class OAuthService {
		private final TokenRepository tokenRepository;
		private final HttpClient httpClient;
	
	+    @Autowired
	+    public OAuthService(
	+            TokenRepository tokenRepository,
	+            HttpClient httpClient) {
	+        this.tokenRepository = tokenRepository;
	+        this.httpClient = httpClient;
	+    }
	+
	+    public TokenResponse refreshToken(String refreshToken) {
	+        // Validate refresh token
	+        if (StringUtils.isEmpty(refreshToken)) {
	+            throw new InvalidTokenException("Refresh token cannot be empty");
	+        }
	+        
	+        // Call OAuth server for new access token
	+        return httpClient.post("/oauth/token")
	+            .body(Map.of("grant_type", "refresh_token", "refresh_token", refreshToken))
	+            .execute()
	+            .as(TokenResponse.class);
	+    }

## Comments (3)
1. **John Smith** (2 days ago):
   > Please add unit tests for the refresh token flow

2. **Jane Doe** (yesterday):
   > Added tests in the latest commit

3. **Approval by:** Alex Kim (yesterday)

*Pull Request URL: https://bitbucket.org/acme-corp/backend-api/pull-requests/42*

Entwicklung

# Clone repository
git clone https://github.com/aashari/mcp-server-atlassian-bitbucket.git
cd mcp-server-atlassian-bitbucket

# Install dependencies
npm install

# Run in development mode
npm run dev:server

# Run tests
npm test

Beitragen

Beiträge sind willkommen! Bitte:

  1. Forken Sie das Repository.

  2. Erstellen Sie einen Feature-Zweig ( git checkout -b feature/xyz ).

  3. Änderungen festschreiben ( git commit -m "Add xyz feature" ).

  4. Pushen Sie zum Zweig ( git push origin feature/xyz ).

  5. Öffnen Sie eine Pull-Anfrage.

Weitere Einzelheiten finden Sie unter CONTRIBUTING.md .

Lizenz

ISC-Lizenz

Latest Blog Posts

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/aashari/mcp-server-atlassian-bitbucket'

If you have feedback or need assistance with the MCP directory API, please join our Discord server