bitbucket-mcp
bitbucket-mcp
MCP-сервер для Bitbucket Cloud. Пул-реквесты, ревью кода, ветки, исходники, пайплайны, вебхуки и переменные, представленные в виде контролируемого набора инструментов вместо сырых REST-вызовов.
Зачем это нужно
Официальный MCP от Atlassian покрывает только Jira и Confluence. Bitbucket остаётся без внимания, поэтому каждая операция с репозиторием сводится к написанным вручную REST-вызовам: громоздкие полезные нагрузки, отсутствие защитных механизмов и токен, который может получить доступ ко всему, что разрешает область действия.
Этот сервер закрывает этот пробел по трём направлениям:
Урезанные полезные нагрузки. Ответы нормализуются до полей, которые вы действительно используете, поэтому ревью PR обходится в долю контекста по сравнению с сырым REST-ответом.
Защитные механизмы на сервере, а не в промпте. Защищённые ветки,
confirmдля разрушительных действий и режим только для чтения применяются до отправки HTTP-запроса.Один инструмент на одно намерение. 55 инструментов, покрывающих рабочие процессы ревью, веток, пайплайнов и вебхуков, вместо одного универсального HTTP-запасного выхода.
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
Установка
Пакет опубликован на npm как
@marcusyoda/bitbucket-mcp.
Требования
Node >= 20
API-токен Atlassian с ограниченными правами (см. Аутентификация)
SSH-ключ, зарегистрированный в Bitbucket, для инструментов
git_*по SSH. Необязательно, если вы используете варианты HTTPS.
Вариант 1: npx, ничего устанавливать не нужно
Самый быстрый путь. Укажите вашему MCP-клиенту на пакет и позвольте npx разрешить его:
npx -y @marcusyoda/bitbucket-mcpВариант 2: глобальная установка
npm install -g @marcusyoda/bitbucket-mcp
# or: pnpm add -g @marcusyoda/bitbucket-mcp
bitbucket-mcpВариант 3: из исходников
git clone https://github.com/marcusyoda/bitbucket-mcp.git
cd bitbucket-mcp
pnpm install
pnpm build # dist/index.jsРегистрация в вашем MCP-клиенте
Claude Code, через 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-mcpЛюбой клиент, через .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"
}
}
}
}Запускаете из исходников? Замените команду на собранную точку входа:
{ "command": "node", "args": ["/abs/path/to/bitbucket-mcp/dist/index.js"] }Проверьте подключение, вызвав get_current_user: он прогоняет токен по кругу и возвращает вашу учётную запись Bitbucket.
Аутентификация
Аутентификация выполняется через HTTP Basic с email:api_token. Создайте API-токен с ограниченными правами на
id.atlassian.com > Manage account > Security > API tokens.
Области действия токена (детальный выбор, создавайте только то, что используете):
Возможность | Области действия |
Проверка аутентификации и личности |
|
Чтение исходников, веток, репозитория |
|
Создание веток и репозиториев через API |
|
Ревью, одобрение, отклонение, слияние PR и комментариев |
|
Пайплайны (чтение, запуск, остановка) |
|
Вебхуки |
|
Опционально: чтение переменных пайплайнов и деплоя |
|
Инструменты для работы с переменными (*_variable*, list_deployment_*) требуют admin:repository:bitbucket.
Пропустить эту область можно: эти инструменты вернут 403, а всё остальное продолжит работать.
Обоснование и полный реестр решений по правам доступа находятся в PERMISSIONS.md.
Переменные окружения
Скопируйте .env.example в .env для локальных запусков. Никогда не коммитьте его.
Переменная окружения | Назначение |
| Email учётной записи Atlassian, используется REST API |
| API-токен с ограниченными правами |
| slug рабочего пространства (обязательно) |
| Имя пользователя Bitbucket, не email. Только для HTTPS-инструментов git |
| Опционально. Если не задано, |
|
|
| Через запятую, по умолчанию |
|
|
.env пакета загружается только когда BITBUCKET_API_TOKEN отсутствует в окружении.
Так лаунчер, внедряющий учётные данные для каждого проекта, всегда побеждает, а случайный .env из другого
рабочего пространства никогда не сможет переопределить внедрённый токен.
Модель безопасности
BITBUCKET_READ_ONLY=trueблокирует все записывающие и разрушительные инструменты до обращения к API.Разрушительные инструменты (
merge,decline,delete_*,stop_pipeline,git_commit,git_push, инлайновые комментарии к PR) требуютconfirm: true.Создание переменной
securedтакже требуетconfirm: true.Значения защищённых переменных доступны в API только на запись и никогда не возвращаются и не логируются.
Защищённые ветки (
BITBUCKET_PROTECTED_BRANCHES, по умолчаниюmain,dev) жёстко заблокированы от прямого изменения:git_push,git_rebase(когда ветка извлечена),delete_branchиcreate_branchотказываются работать с ними, даже сconfirm. Вносите изменения туда через PR:merge_pull_requestв защищённую ветку разрешён сconfirm: true.Блокировка рабочего пространства. С
BITBUCKET_LOCK_WORKSPACE=trueлюбой вызов, указывающий другое рабочее пространство, отклоняется. Создано для машин, обслуживающих несколько клиентов из одной установки.
Инструменты
Каждый инструмент принимает необязательные workspace и repo для переопределения значений по умолчанию из окружения.
Репозиторий и мета: get_current_user, list_repositories, get_repository,
create_repository
Пул-реквесты: 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
Комментарии: list_pr_comments, add_pr_comment (инлайн требует confirm),
reply_pr_comment, update_pr_comment, delete_pr_comment (confirm),
resolve_comment, react_pr_comment (экспериментально)
Ветки, исходники и 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). Все инструменты push и работы с ветками отклоняют защищённые ветки.
Пайплайны: list_pipelines, get_pipeline, get_pipeline_steps,
get_pipeline_step_log, trigger_pipeline, stop_pipeline (confirm)
Переменные: 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)
Вебхуки: list_webhooks, get_webhook, create_webhook, update_webhook,
delete_webhook (confirm)
SSH или HTTPS для git
clone_repo, git_commit, git_rebase и git_push используют ваш SSH-ключ, а не токен.
Если SSH недоступен, clone_repo_https и git_push_https аутентифицируются с помощью username:token
и требуют BITBUCKET_USERNAME. Ограничение для защищённых веток применяется к обоим транспортам.
Известные ограничения
react_pr_commentэкспериментален. Эмодзи-реакции на комментарии к PR документированы для Bitbucket Data Center, а не Cloud. Инструмент нацелен на endpoint best effort и может вернуть ошибку, если ваше рабочее пространство его не поддерживает.resolve_commentзависит от того, доступно ли разрешение веток обсуждения для репозитория.Не существует endpoint, который перечисляет, какие переменные ожидает пользовательский пайплайн. Эта информация берётся из
bitbucket-pipelines.yml; прочитайте его с помощьюget_file_source.Для чтения сохранённых значений переменных требуется область администратора.
Разработка
pnpm install
pnpm dev # tsx watch
pnpm typecheck
pnpm build # tsup, ESM
pnpm inspect # build and open the MCP InspectorПравила проекта и соглашения находятся в CLAUDE.md. Вклад следует рабочему процессу
«сначала issue»: каждый коммит ссылается на issue в заголовке в формате type(scope): subject [#N].
Использование
Лицензия MIT, и это буквально так: используйте его на работе, используйте в коммерческих целях, форкайте, встраивайте в свои инструменты, переименовывайте. Не нужно спрашивать разрешения и выполнять ритуалы с указанием авторства, кроме сохранения уведомления о лицензии. Если он сэкономит вам полдня ручного написания REST-вызовов, он уже окупился.
Не хватает инструмента или наткнулись на endpoint Bitbucket, который не покрыт?
Откройте issue. Пул-реквесты приветствуются:
единственное внутреннее правило — каждый коммит ссылается на issue в заголовке в формате
type(scope): subject [#N].
См. 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