mcpField
B
bitbucket-mcp-server

bitbucket-mcp-server

ローカル
github.com/droplinkperformanceバージョン管理03 週間前に更新

bitbucket-mcp-server について

bitbucket-mcp-server は Bitbucket Cloud 向けの MCP サーバーで、AI によるプルリクエストレビューと一般的な PR 操作を必要とするチームを対象とします。プロバイダー非依存のインターフェースにより、レビューや業務ロジックを SCM、LLM、キャッシュ、トークン保存の実装から分離します。

主な機能

  1. 01AI によるプルリクエスト分析
  2. 02プルリクエストの一覧と取得
  3. 03プルリクエストの作成と編集
  4. 04差分、ファイル、コメントの参照
  5. 05OAuth 2.0 と Bearer 認証
  6. 06stdio と Streamable HTTP のトランスポート

活用シーン

  1. 01Bitbucket のプルリクエストを分析
  2. 02変更ファイルと差分を確認
  3. 03プルリクエストを作成または更新
  4. 04プルリクエストにコメントを追加

MCP 対応

Bitbucket Cloud のプルリクエスト操作と AI レビューを MCP ツールとして公開します。stdio と Streamable HTTP に対応し、ツールレジストリでツールを自動検出します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"droplinkperformance-bitbucket": {
"command": "npx",
"args": [
"-y",
"@droplinkperformance/bitbucket-mcp-server"
],
"env": {
"BITBUCKET_ACCESS_TOKEN": "<BITBUCKET_ACCESS_TOKEN>",
"BITBUCKET_EMAIL": "<BITBUCKET_EMAIL>",
"BITBUCKET_DEFAULT_WORKSPACE": "<BITBUCKET_DEFAULT_WORKSPACE>",
"LLM_PROVIDER": "<LLM_PROVIDER>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>"
}
}
}
}
起動コマンドnpx -y @droplinkperformance/bitbucket-mcp-server
設定が必要な環境変数
BITBUCKET_ACCESS_TOKENシークレットBitbucket API token (ATATT), app password, or OAuth access token
BITBUCKET_EMAILAtlassian account email (required with API tokens)
BITBUCKET_DEFAULT_WORKSPACEDefault Bitbucket workspace when a tool omits workspace
LLM_PROVIDERLLM backend for analyze_pull_request (openai, anthropic, gemini, bedrock)
OPENAI_API_KEYシークレットOpenAI API key when LLM_PROVIDER is openai

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@droplinkperformance/bitbucket-mcp-server1.2.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

@droplinkperformance/bitbucket-mcp-server

Bitbucket Cloud 向けの、プロバイダーに依存せず、AI レビューを最優先とする Model Context Protocol(MCP)サーバーです。

このサーバーの主な価値は、Bitbucket API に対する CRUD ではなく、AI を活用したコードレビューとプルリクエストの分析です。主要な依存関係(SCM アクセス、キャッシュ、トークンストレージ、レート制限、LLM、イベント)はすべてプロバイダーに依存しないインターフェースの背後に隠されているため、ユースケース、エージェント、ドメインコントラクトを変更せずに、同じビジネスロジックを後から GitHub/GitLab/Azure DevOps や OpenAI/Anthropic/Gemini/Bedrock に対応させることができます。

ステータス:Phase 1。ロードマップを参照してください。

機能(Phase 1)

  • 2 種類のトランスポートに対応:stdio(Cursor/Claude Desktop)およびStreamable HTTP(Node http、リモート/本番環境向け)。
  • ToolRegistry によるツールの自動検出 — 手動登録は不要です。
  • すべてのツールで明示的な BitbucketContext(workspace + オプションの repository)を使用 — 複数ワークスペースに対応しています。
  • 堅牢な BitbucketClient:認証の注入、自動ページネーション、リトライ/バックオフ、レート制限の処理、キャッシュ、シークレットのマスキングに対応しています。
  • 2 種類の認証方式:OAuth 2.0(認可コードフロー、ローテーションするリフレッシュトークンの永続化に対応)およびBearer トークン。
  • CodeReviewAgent によるAI コードレビュー(analyze_pull_request)。大規模な PR を分割し、標準の ReviewResult を返します。
  • プラグイン可能な LLM プロバイダー(OpenAI/Anthropic/Gemini/Bedrock)、キャッシュ(メモリ/Redis)、トークンストア(ファイル/メモリ/Redis)。
ツール
ツール説明
get_current_user認証済みユーザーを取得します。
list_pull_requestsPR を一覧表示します(状態/クエリによる絞り込みに対応)。
get_pull_requestID を指定して PR を取得します。
create_pull_requestPR を作成します。
update_pull_requestオープン中の PR のタイトルや説明を編集します。
get_pull_request_diff未加工の統合差分を取得します。
get_pull_request_files変更されたファイルと行数の統計を取得します。
get_pull_request_commentsPR のコメントを取得します。
comment_pull_requestコメントを追加します(インラインコメントは任意です)。
analyze_pull_request標準の ReviewResult を返す AI レビューを実行します。

すべてのツール入力で workspace を指定できます(BITBUCKET_DEFAULT_WORKSPACE が設定されている場合は省略可能です)。該当する場合は repository も指定できます。

アーキテクチャ

src/
  index.ts            entry: chooses transport
  container.ts        composition root (the only place wiring concretes)
  mcp/                McpServer + ToolRegistry (auto-discovery) + transports
  tools/              thin MCP adapters (*.tool.ts) -> call exactly one use-case
  application/        use-cases (CQRS-ish: command|query) with Input/Output DTOs
  agents/             autonomous workflows implementing Agent<TInput,TOutput>
  domain/             provider-agnostic types, repository contracts, ReviewResult
  repositories/bitbucket/  Bitbucket implementations of the contracts
  clients/bitbucket/  resilient REST client
  auth/               AuthProvider (+ token/oauth) and TokenStore implementations
  cache/              CacheProvider (+ memory/redis)
  ratelimit/          RateLimitStrategy (+ bitbucket)
  llm/                LlmProvider (+ openai/anthropic/gemini/bedrock)
  events/             EventBus (+ in-memory)
  services/           reusable services (masking, chunking)
  telemetry/          OpenTelemetry bootstrap + metrics
  infrastructure/     config, logger, http, attachments
  shared/             errors, result envelope, http-status, BitbucketContext

フロー:tool -> use-case -> (agent | repository contract) -> repositories/bitbucket -> BitbucketClient。エージェントは LlmProvider と EventBus も使用できます。ツールにビジネスロジックは含まれません。

要件

  • Node.js 23+

インストール

@droplinkperformance/bitbucket-mcp-server として公開されています。

npx -y @droplinkperformance/bitbucket-mcp-server

ソースからインストールする場合:

npm install
npm run build

リリース

main へのマージ時に .github/workflows/release.yml が実行されます。テスト、ビルドの後、semantic-release が実行されます。バージョンの更新と npm への公開は、マージに Conventional Commits が含まれる場合にのみ行われます。

コミットバージョン更新
fix:パッチ
feat:マイナー
BREAKING CHANGE / feat!:メジャー

その他のメッセージでは公開はスキップされます。GitHub シークレット NPM_TOKEN(droplinkperformance 組織の npm Automation トークン)が必要です。

npm へのリリースが成功すると、同じワークフローでそのバージョンが npm レジストリに表示されるまで待機した後、MCP Registry に io.github.droplinkperformance/bitbucket-mcp-server としてメタデータを公開します(OIDC を使用し、追加のシークレットは不要です)。新しいリリースを作成せずに、現在の package.json のバージョンの MCP メタデータを再公開するには、ワークフローを手動で実行し、Publish mcp only を選択してください。github.com/mcp はこのレジストリから同期します。サーバーが表示されない場合は、[email protected] までメールでお問い合わせください。

最初のリリースを 0.x にとどめるには、最初の Conventional Commit によるマージの前に現在のコミットにタグを付けてください(git tag v0.1.0 && git push origin v0.1.0)。そうしない場合、semantic-release は 1.0.0 から開始します。

設定

.env.example を .env にコピーし、値を入力します。Node の組み込みフラグを使って読み込みます。

node --env-file=.env dist/index.js

主な変数:

変数デフォルト説明
MCP_TRANSPORTstdiostdio または http。
HTTP_HOST / HTTP_PORT0.0.0.0 / 3000HTTP トランスポートのバインド先。
BITBUCKET_DEFAULT_WORKSPACE–ツールで workspace が指定されていない場合のフォールバック。
BITBUCKET_ACCESS_TOKEN–API トークン(ATATT…)、アプリパスワード、または OAuth アクセストークン
BITBUCKET_EMAIL–API トークン(ATATT…)で必須です — Atlassian アカウントのメールアドレス
BITBUCKET_CLIENT_ID / BITBUCKET_CLIENT_SECRET–OAuth(アクセストークンがない場合)で必須です。
BITBUCKET_REFRESH_TOKEN–ヘッドレス OAuth 用の任意のシード値。
TOKEN_STOREfilefile | memory | redis。
CACHE_PROVIDERmemorymemory | redis。
LLM_PROVIDERopenaiopenai | anthropic | gemini | bedrock。
MAX_FILES_PER_CHUNK / MAX_DIFF_LINES_PER_CHUNK50 / 5000大規模 PR のチャンク分割しきい値。
OTEL_ENABLEDfalse有効にしない限り、メトリクスは何も記録されません。
認証

Bearer(OAuth アクセストークン): BITBUCKET_ACCESS_TOKEN のみを設定します(ATATT ではないトークン)。

API トークン(推奨、ATATT…): BITBUCKET_ACCESS_TOKEN と BITBUCKET_EMAIL(Bitbucket → 個人設定 → メールエイリアスにある Atlassian アカウントのメールアドレス)を設定します。API トークンでは Bearer ではなく HTTP Basic 認証を使用します。

アプリパスワード(レガシー、2026 年 6 月まで): BITBUCKET_ACCESS_TOKEN と BITBUCKET_USERNAME(Bitbucket のユーザー名)を設定します。

OAuth 2.0(認可コード): BITBUCKET_CLIENT_ID / BITBUCKET_CLIENT_SECRET を設定します。トークンは設定した TOKEN_STORE に保存されます。Bitbucket はリフレッシュトークンをローテーションするため、サーバーはリフレッシュのたびに新しいトークンを保存します。ヘッドレスで起動する場合は、事前に取得した BITBUCKET_REFRESH_TOKEN を指定してください。

使用する Bitbucket OAuth エンドポイント:認可 https://bitbucket.org/site/oauth2/authorize、トークン https://bitbucket.org/site/oauth2/access_token。認可 URL は OAuthProvider.buildAuthorizeUrl() で構築でき、返された ?code= は OAuthProvider.loginWithCode(code) で交換できます。

LLM プロバイダー

LLM_PROVIDER と、対応するキーを設定します。

LLM_PROVIDER=openai      # OPENAI_API_KEY
LLM_PROVIDER=anthropic   # ANTHROPIC_API_KEY
LLM_PROVIDER=gemini      # GEMINI_API_KEY
LLM_PROVIDER=bedrock     # AWS creds + BEDROCK_MODEL_ID (needs @aws-sdk/client-bedrock-runtime)

ioredis(Redis プロバイダー)と @aws-sdk/client-bedrock-runtime(Bedrock)はオプションで、遅延読み込みされます — 選択した場合にのみ必要です。

実行

stdio
MCP_TRANSPORT=stdio node --env-file=.env dist/index.js
Streamable HTTP
MCP_TRANSPORT=http HTTP_PORT=3000 node --env-file=.env dist/index.js
# health:   GET  http://localhost:3000/health
# endpoint: POST http://localhost:3000/mcp
MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js
Cursor

~/.cursor/mcp.json(またはプロジェクトの .cursor/mcp.json):

{
  "mcpServers": {
    "bitbucket": {
      "command": "npx",
      "args": ["-y", "@droplinkperformance/bitbucket-mcp-server"],
      "env": {
        "MCP_TRANSPORT": "stdio",
        "BITBUCKET_ACCESS_TOKEN": "ATATT-your-api-token",
        "BITBUCKET_EMAIL": "[email protected]",
        "BITBUCKET_DEFAULT_WORKSPACE": "your-workspace",
        "LLM_PROVIDER": "openai",
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}
Claude Desktop

claude_desktop_config.json:

{
  "mcpServers": {
    "bitbucket": {
      "command": "npx",
      "args": ["-y", "@droplinkperformance/bitbucket-mcp-server"],
      "env": {
        "BITBUCKET_ACCESS_TOKEN": "your-token",
        "BITBUCKET_DEFAULT_WORKSPACE": "your-workspace",
        "LLM_PROVIDER": "anthropic",
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}

開発

npm run dev          # tsx watch (stdio)
npm run typecheck
npm run lint
npm test
npm run test:coverage

ロードマップ

  • フェーズ 1(今回のリリース): 認証、抽象化、BitbucketClient、ツールの自動検出、PR ツール、analyze_pull_request。
  • フェーズ 2: Pipelines + 全文検索対応のページ分割ログ、pipeline-investigator エージェント、auto_review_pull_request(ドライラン / インラインコメントの公開)。
  • フェーズ 3: 残りの CRUD — リポジトリ、コミット、ブランチ、タグ、課題、ワークスペース、メンバー、検索。
  • フェーズ 4: analyze_dotnet_pull_request(dotnet-review エージェント)、高度なエージェント、自動化ワークフロー。
  • フェーズ 5: Docker、Compose、Helm、本番環境へのデプロイガイド。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。