Skip to main content
Glama
aashari

Atlassian Bitbucket MCP Server

by aashari

Сервер Atlassian Bitbucket MCP

Сервер Node.js/TypeScript Model Context Protocol (MCP) для Atlassian Bitbucket Cloud. Позволяет системам ИИ (например, LLM, таким как Claude или Cursor AI) безопасно взаимодействовать с вашими репозиториями, запросами на извлечение, рабочими пространствами и кодом в режиме реального времени.

Версия НПМ Статус сборки

Зачем использовать этот сервер?

  • Минимальный ввод, максимальный вывод : простые идентификаторы предоставляют исчерпывающую информацию без необходимости дополнительных флагов.

  • Расширенная визуализация кода : получите подробную информацию об изменениях кода с помощью статистики файлов, представлений различий и интеллектуального контекста.

  • Безопасная локальная аутентификация : работайте локально с вашими учетными данными, никогда не храня токены на удаленных серверах.

  • Интуитивно понятные ответы Markdown : хорошо структурированное, единообразное форматирование Markdown для всех выходных данных.

  • Полная интеграция с Bitbucket : доступ к рабочим областям, репозиториям, запросам на извлечение, комментариям, поиску кода и многому другому.

Related MCP server: GitHub MCP Tools

Что такое МКП?

Model Context Protocol (MCP) — открытый стандарт для безопасного подключения систем ИИ к внешним инструментам и источникам данных. Этот сервер реализует MCP для Bitbucket Cloud, позволяя помощникам ИИ взаимодействовать с вашими данными Bitbucket программным способом.

Предпосылки

Настраивать

Шаг 1: Аутентификация

Выберите один из следующих методов аутентификации:

Вариант A: Пароль приложения Bitbucket (рекомендуется)

Сгенерируйте один из Bitbucket App Passwords . Минимальные разрешения:

  • Рабочие пространства: Читать

  • Репозитории: Читать

  • Запросы на извлечение: Читать

Вы также можете задать BITBUCKET_DEFAULT_WORKSPACE , чтобы указать рабочее пространство по умолчанию, если оно не указано явно.

Вариант B: токен API Atlassian

Сгенерируйте его с помощью токенов API Atlassian .

Примечание: настоятельно рекомендуется использовать пароли приложений Bitbucket, поскольку они обеспечивают более детальные разрешения, специфичные для Bitbucket.

Шаг 2: Настройте учетные данные

Вариант A: Файл конфигурации MCP (рекомендуется)

Отредактируйте или создайте ~/.mcp/configs.json :

Использование пароля приложения Bitbucket:

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

Использование токена API Atlassian:

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

Вариант B: Переменные среды

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

Шаг 3: Установка и запуск

Быстрый старт с npx

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

Глобальная установка

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

Шаг 4: Подключитесь к AI Assistant

Настройте MCP-совместимый клиент (например, Claude, Cursor AI):

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

Инструменты МКП

Инструменты MCP используют имена snake_case , параметры camelCase и возвращают ответы в формате Markdown.

  • bb_ls_workspaces : Список доступных рабочих пространств ( query : str opt). Использование: Просмотр доступных рабочих пространств.

  • bb_get_workspace : Получает сведения о рабочей области ( workspaceSlug : str req). Использование: Просмотр информации о рабочей области.

  • bb_ls_repos : Список репозиториев ( workspaceSlug : str opt, projectKey : str opt, query : str opt, role : str opt). Использование: Поиск репозиториев.

  • bb_get_repo : Получает данные репозитория ( workspaceSlug : str req, repoSlug : str req). Использование: Доступ к информации о репозитории.

  • bb_search : Поиск содержимого Bitbucket ( workspaceSlug : str req, query : str req, scope : str opt, language : str opt, extension : str opt). Использование: Поиск кода или PR.

  • bb_ls_prs : Список запросов на извлечение ( workspaceSlug : str req, repoSlug : str req, state : str opt). Использование: Просмотр открытых или объединенных PR.

  • bb_get_pr : Получает сведения о PR ( workspaceSlug : str req, repoSlug : str req, prId : str req). Использование: Просмотр сведений о PR с различиями.

  • bb_ls_pr_comments : Список комментариев PR ( workspaceSlug : str req, repoSlug : str req, prId : str req). Использование: Просмотр обсуждений PR.

  • bb_add_pr_comment : Добавляет комментарий к PR ( workspaceSlug : str req, repoSlug : str req, prId : str req, content : str req, inline : obj opt). Использование: Добавить отзыв к PR.

  • bb_add_pr : Создает PR ( workspaceSlug : str req, repoSlug : str req, title : str req, sourceBranch : str req, targetBranch : str opt). Использование: Создание новых PR.

  • bb_add_branch : Создает ветку ( workspaceSlug : str req, repoSlug : str req, newBranchName : str req, sourceBranchOrCommit : str opt). Использование: Создать ветку функции.

  • bb_clone_repo : Клонирует репозиторий ( workspaceSlug : str req, repoSlug : str req, targetPath : str req). Использование: Клонировать код локально.

  • bb_get_commit_history : Получает историю коммитов ( workspaceSlug : str req, repoSlug : str req, revision : str opt, path : str opt). Использование: Просмотр истории кода.

  • bb_get_file : Получает содержимое файла ( workspaceSlug : str req, repoSlug : str req, filePath : str req, revision : str opt). Использование: Просмотр определенного файла.

  • bb_diff_branches : Показывает разницу между ветвями ( workspaceSlug : str req, repoSlug : str req, sourceBranch : str req, targetBranch : str req). Использование: Сравнение ветвей.

  • bb_diff_commits : Показывает разницу между коммитами ( workspaceSlug : str req, repoSlug : str req, sourceCommit : str req, targetCommit : str req). Использование: Сравнение коммитов.

  • bb_list_branches : Список ветвей ( workspaceSlug : str req, repoSlug : str req, query : str opt, sort : str opt). Использование: Просмотр всех ветвей.

bb_ls_workspaces

Список всех рабочих пространств:

{}

Поиск рабочих пространств:

{ "query": "devteam" }

bb_get_workspace

Получить сведения о рабочем пространстве:

{ "workspaceSlug": "acme-corp" }

bb_ls_repos

Список репозиториев в рабочей области:

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

Список репозиториев с использованием рабочего пространства по умолчанию:

{ "projectKey": "PROJ" }

bb_get_repo

Получить данные репозитория:

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

Поисковый код:

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

bb_ls_prs

Список открытых PR:

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

bb_get_pr

Получить PR-подробности:

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

bb_ls_pr_comments

Список PR-комментариев:

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

bb_add_pr_comment

Добавить общий комментарий:

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

Добавить встроенный комментарий:

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

bb_add_pr

Создать запрос на извлечение:

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

bb_add_branch

Создать новую ветку:

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

bb_clone_repo

Клонировать репозиторий:

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

bb_get_commit_history

Просмотреть историю коммитов:

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

Отфильтрованная история коммитов:

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

bb_get_file

Получить содержимое файла:

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

bb_diff_branches

Сравнить ветки:

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

bb_diff_commits

Сравнить коммиты:

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

bb_list_branches

Список всех филиалов:

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

Отфильтрованные ветки:

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

Команды CLI

Команды CLI используют kebab-case . Запустите --help для получения подробной информации (например, mcp-atlassian-bitbucket ls-workspaces --help ).

  • ls-workspaces : Выводит список рабочих пространств ( --query ). Пример: mcp-atlassian-bitbucket ls-workspaces .

  • get-workspace : Получает сведения о рабочей области ( --workspace-slug ). Пример: mcp-atlassian-bitbucket get-workspace --workspace-slug acme-corp .

  • ls-repos : Выводит список репозиториев ( --workspace-slug , --project-key , --query ). Пример: mcp-atlassian-bitbucket ls-repos --workspace-slug acme-corp .

  • get-repo : Получает сведения о репозитории ( --workspace-slug , --repo-slug ). Пример: mcp-atlassian-bitbucket get-repo --workspace-slug acme-corp --repo-slug backend-api .

  • search : Поиск кода ( --workspace-slug , --query , --scope , --language ). Пример: mcp-atlassian-bitbucket search --workspace-slug acme-corp --query "auth" .

  • ls-prs : выводит список PR ( --workspace-slug , --repo-slug , --state ). Пример: mcp-atlassian-bitbucket ls-prs --workspace-slug acme-corp --repo-slug backend-api .

  • get-pr : Получает сведения о PR ( --workspace-slug , --repo-slug , --pr-id ). Пример: mcp-atlassian-bitbucket get-pr --workspace-slug acme-corp --repo-slug backend-api --pr-id 42 .

  • ls-pr-comments : выводит список комментариев PR ( --workspace-slug , --repo-slug , --pr-id ). Пример: mcp-atlassian-bitbucket ls-pr-comments --workspace-slug acme-corp --repo-slug backend-api --pr-id 42 .

  • add-pr-comment : Добавляет комментарий PR ( --workspace-slug , --repo-slug , --pr-id , --content ). Пример: mcp-atlassian-bitbucket add-pr-comment --workspace-slug acme-corp --repo-slug backend-api --pr-id 42 --content "Looks good" .

  • add-pr : Создает PR ( --workspace-slug , --repo-slug , --title , --source-branch ). Пример: mcp-atlassian-bitbucket add-pr --workspace-slug acme-corp --repo-slug backend-api --title "New feature" --source-branch feature/login .

  • get-file : Получает содержимое файла ( --workspace-slug , --repo-slug , --file-path ). Пример: mcp-atlassian-bitbucket get-file --workspace-slug acme-corp --repo-slug backend-api --file-path src/main.js .

  • add-branch : Создает ветку ( --workspace-slug , --repo-slug , --new-branch-name ). Пример: mcp-atlassian-bitbucket add-branch --workspace-slug acme-corp --repo-slug backend-api --new-branch-name feature/new .

Список и просмотр рабочих пространств/репозиториев

# 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

Работа с запросами на извлечение

# 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

Код и коммиты

# 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

Управление филиалом

# 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

Формат ответа

Все ответы отформатированы в формате Markdown, включая:

  • Заголовок : Выполненная операция или просмотренный объект.

  • Контекст : рабочая область, репозиторий, запрос на извлечение или информация о ветке.

  • Контент : основные данные, такие как содержимое файла, сведения о PR или результаты поиска.

  • Метаданные : временные метки, авторы и статистика.

  • Различия : изменения кода с подсветкой синтаксиса для различий между ветками/коммитами.

Подробности репозитория

# 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 #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*

Разработка

# 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

Внося вклад

Вклады приветствуются! Пожалуйста:

  1. Создайте форк репозитория.

  2. Создайте ветку функций ( git checkout -b feature/xyz ).

  3. Зафиксируйте изменения ( git commit -m "Add xyz feature" ).

  4. Отправьте изменения в ветку ( git push origin feature/xyz ).

  5. Откройте запрос на извлечение.

Подробности смотрите на сайте CONTRIBUTING.md .

Лицензия

Лицензия ISC

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