mcpField
B
Bitbucket Server MCP

Bitbucket Server MCP

ローカル
github.com/garc33バージョン管理695 日前に更新

Bitbucket Server MCP について

Bitbucket Server MCPは、Bitbucket ServerをコーディングエージェントやコードレビューのワークフローにつなぐMCPサーバーです。プルリクエスト操作に加え、リポジトリ閲覧、コード検索、ブランチやコミットの確認、ビルド状態の取得に対応します。

主な機能

  1. 01プルリクエストの作成・更新・マージ
  2. 02レビュー、コメント、差分の確認
  3. 03プルリクエストの検索と絞り込み
  4. 04プロジェクト、リポジトリ、ブランチの閲覧
  5. 05コード検索とファイルの読み取り
  6. 06コミットのビルド状態確認

活用シーン

  1. 01機能や修正をチームレビューに提出
  2. 02レビューやビルドの進捗を確認
  3. 03プロジェクト内のリポジトリやコードを検索
  4. 04マージ済みブランチを整理

MCP 対応

MCPサーバーとして、プルリクエスト管理、リポジトリ閲覧、コード検索のためのBitbucket Server APIツールをMCPクライアントに提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"bitbucket-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
起動コマンドnpx -y @smithery/cli

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

パッケージ
npm@smithery/cli

ツール

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

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

詳細

Bitbucket Server MCP

Bitbucket Server のプルリクエスト管理用 MCP(Model Context Protocol)サーバーです。このサーバーは、MCP プロトコルを通じて Bitbucket Server API を操作するためのツールとリソースを提供します。

smithery badge Bitbucket Server MCP サーバー

✨ 新機能

  • 🔧 カスタム HTTP ヘッダー:BITBUCKET_CUSTOM_HEADERS 環境変数を使って、すべてのリクエストにカスタムヘッダーを追加できます(ゼロトラストトークンやプロキシに便利です)
  • 📋 PR の検出:list_pull_requests を使って、状態、作成者、方向でプルリクエストを一覧表示および絞り込みできます(#14 を修正)
  • 🌿 ブランチ管理:list_branches を使ってデフォルトブランチの検出とともにブランチを一覧表示し、delete_branch を使ってマージ済みブランチを削除できます
  • 📝 コミット履歴:list_commits を使って、ブランチや作成者で絞り込みながらコミット履歴を確認できます
  • ✅ PR の承認:approve_pull_request と unapprove_pull_request を使って、プルリクエストを承認および承認解除できます
  • 🔍 高度な検索:search ツールを使って、プロジェクトやリポジトリで絞り込みながら、リポジトリ全体のコードやファイルを検索できます
  • 📄 ファイル操作:get_file_content と browse_repository を使って、ファイルの内容を読み取り、リポジトリのディレクトリを閲覧できます
  • 💬 コメント管理:get_comments ツールを使って、PR コメントを抽出して絞り込めます
  • 🔍 プロジェクトの検出:list_projects を使って、アクセス可能な Bitbucket プロジェクトをすべて一覧表示できます
  • 📁 リポジトリの閲覧:list_repositories を使って、プロジェクト全体のリポジトリを確認できます
  • 🔧 柔軟なプロジェクトサポート:デフォルトのプロジェクトを任意にし、コマンドごとに指定するか、BITBUCKET_DEFAULT_PROJECT を使用できます
  • 📖 ドキュメントの強化:使用例と、よりわかりやすい設定ガイダンスを盛り込んだ README に改善しました

要件

  • Node.js >= 22

インストール

Smithery 経由でインストール

Smithery 経由で Claude Desktop 用の Bitbucket Server を自動的にインストールするには:

npx -y @smithery/cli install @garc33/bitbucket-server-mcp-server --client claude
npm 経由でインストール

このサーバーは npm 上で @garc33/bitbucket-server-mcp-server として公開されています。npx で直接実行できます:

{
  "mcpServers": {
    "bitbucket": {
      "command": "npx",
      "args": ["-y", "@garc33/bitbucket-server-mcp-server"],
      "env": {
        "BITBUCKET_URL": "https://your-bitbucket-server.com",
        "BITBUCKET_TOKEN": "your-access-token"
      }
    }
  }
}

または、グローバルにインストールして bitbucket-server-mcp コマンドを使用できます:

npm install -g @garc33/bitbucket-server-mcp-server
手動インストール
npm install

ビルド

npm run build

機能

このサーバーは、Bitbucket Server と包括的に連携するための以下のツールを提供します。

list_projects

Bitbucket プロジェクトの検出と確認:詳細情報とともに、アクセス可能なプロジェクトをすべて一覧表示します。プロジェクトの検出や、ほかの操作で使用する正しいプロジェクトキーの特定に役立ちます。

ユースケース:

  • 正確なプロジェクトキーがわからない場合に、利用可能なプロジェクトを見つける
  • プロジェクトの構造や権限を確認する
  • アクセスできる新しいプロジェクトを見つける

パラメーター:

  • limit:返すプロジェクト数(デフォルト:25、最大:1000)
  • start:ページネーションの開始インデックス(デフォルト:0)
list_repositories

リポジトリの閲覧と検出:特定のプロジェクト内、またはアクセス可能なすべてのプロジェクトのリポジトリを確認します。クローン URL やメタデータを含む、包括的なリポジトリ情報を返します。

ユースケース:

  • ほかの操作で使うリポジトリのスラッグを見つける
  • プロジェクト全体のコードベースの構造を確認する
  • アクセスできるリポジトリを見つける
  • 特定のプロジェクトのリポジトリを閲覧する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用)
  • limit:返すリポジトリ数(デフォルト:25、最大:1000)
  • start:ページネーションの開始インデックス(デフォルト:0)
create_pull_request

レビュー用のコード変更を提案:コード変更の提出、レビューの依頼、またはフィーチャーブランチのマージを目的とした新しいプルリクエストを作成します。ブランチ参照とレビュアーの割り当てを自動的に処理します。

ユースケース:

  • 機能開発をレビューに提出する
  • バグ修正を提案する
  • フィーチャーブランチからのコード統合を依頼する
  • コード変更に協力して取り組む

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用します)
  • repository(必須):リポジトリのスラッグ
  • title(必須):明確で説明的な PR タイトル
  • description:背景を含む詳細な説明(Markdown に対応)
  • sourceBranch(必須):変更を含むソースブランチ
  • targetBranch(必須):マージ先のターゲットブランチ
  • reviewers:レビュアーのユーザー名の配列
  • sourceProject:ソースリポジトリのプロジェクトキー(フォークからのリポジトリ間 PR 用)
  • sourceRepository:ソースリポジトリのスラッグ(フォークからのリポジトリ間 PR 用)
  • includeDefaultReviewers:ターゲットブランチに設定されているデフォルトのレビュアーを自動取得して含めます(デフォルト:true)
update_pull_request

プルリクエストを安全に更新:メタデータを失うことなく、既存のプルリクエストのタイトル、説明、またはレビュアーを変更します。読み取り・変更・書き込みのパターンを使用し、明示的に変更されていないすべてのフィールドを保持します。

ユースケース:

  • 作成後に PR のタイトルや説明を修正する
  • 既存のレビュアーを失わずに追加または置き換える
  • 承認ステータスに影響を与えずに PR のメタデータを更新する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用します)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):更新するプルリクエスト ID
  • title:新しいタイトル(省略した場合、現在のタイトルが保持されます)
  • description:新しい説明(省略した場合、現在の説明が保持されます)
  • reviewers:ユーザー名の配列で指定する新しいレビュアーリスト(省略した場合、現在のレビュアーが保持されます)
get_pull_request

包括的な PR 情報:ステータス、レビュアー、コミット、すべてのメタデータを含む、詳細なプルリクエスト情報を取得します。アクションを実行する前に PR の状態を把握するために不可欠です。

ユースケース:

  • PR の承認ステータスを確認する
  • PR の詳細と進行状況を確認する
  • マージ前に変更内容を把握する
  • PR のステータスを監視する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用します)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):プルリクエスト ID
get_build_status

コミットのビルド状態と、Jenkins のリンクを含む CI ビルド URL を読み取ります。 既存の Bitbucket 認証情報を使用し、読み取り専用モードに対応しています。

パラメーター:

  • commitHash(必須):40 文字の完全なコミットハッシュ。PR の fromRef.latestCommit を使用してください。
  • limit:1 ページあたりのステータス数(デフォルト:25、最大:100)。
  • start:ページオフセット(デフォルト:0)。次のページを取得するには nextPageStart を使用してください。

GET /rest/build-status/1.0/commits/{commitHash} を呼び出し、各ビルドの state と url を含む Bitbucket のレスポンスを返します。空のリストは、ビルドステータスが記録されていないことを意味します。API または認証の失敗は、空のリストではなくエラーとして報告されます。

npm run build を実行してローカルインストールを再ビルドした後、新しいツールを認識させるため、クライアントで MCP 接続を再起動してください。認証情報を変更する必要はありません。

merge_pull_request

承認済みの変更を統合:承認済みのプルリクエストをターゲットブランチにマージします。ワークフローの設定に応じて、さまざまなマージ戦略をサポートします。

ユースケース:

  • コードレビューのプロセスを完了する
  • 承認済みの機能を統合する
  • メインブランチにバグ修正を適用する
  • コード変更をリリースする

パラメーター:

  • project:Bitbucket プロジェクトキー(省略可能。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用します)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):プルリクエスト ID
  • message:カスタムのマージコミットメッセージ
  • strategy:マージ戦略:
    • merge-commit(デフォルト):履歴を保持してマージコミットを作成します
    • squash:すべてのコミットを 1 つにまとめます
    • fast-forward:マージコミットを作成せずにブランチポインターを移動します
decline_pull_request

不適切な変更を却下:マージすべきでないプルリクエストを却下し、作成者にフィードバックを提供します。

ユースケース:

  • 基準を満たさない変更を却下する
  • プロジェクトの方針と相反する PR をクローズする
  • 大幅な修正を依頼する
  • 意図しないコードの統合を防ぐ

パラメーター:

  • project:Bitbucket プロジェクトキー(省略可能。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用します)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):プルリクエスト ID
  • message:却下理由(作成者へのフィードバックに役立ちます)
add_comment

コードレビューに参加:レビューのフィードバック、議論、共同作業のために、プルリクエストにコメントを追加します。スレッド形式の会話をサポートします。

ユースケース:

  • コードレビューのフィードバックを提供する
  • 特定の変更について質問する
  • 改善案を提案する
  • 技術的な議論に参加する
  • レビューの判断を記録する

パラメーター:

  • project:Bitbucket プロジェクトキー(省略可能。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用します)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):プルリクエスト ID
  • text(必須):コメント内容(Markdown をサポート)
  • parentId:スレッド形式の返信先となる親コメント ID
  • state:コメントの状態:OPEN(デフォルト。すぐに公開)または PENDING(下書き。レビューが公開されるまで自分にのみ表示)
get_diff

コード変更を分析:プルリクエストで追加、削除、変更された内容を正確に示すコード差分を取得します。大きな差分を効率的に管理するため、ファイルごとの出力行数制限をサポートします。

ユースケース:

  • 特定のコード変更をレビューする
  • 変更の範囲を把握する
  • マージ前に影響を分析する
  • 実装の詳細を確認する
  • コード品質を評価する
  • 出力が過剰にならないよう、大きなファイルを扱う

パラメーター:

  • project:Bitbucket プロジェクトキー(省略可能。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用します)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):プルリクエスト ID
  • contextLines:変更箇所の前後に表示するコンテキスト行数(デフォルト:10)
  • maxLinesPerFile:ファイルごとに表示する最大行数(省略可能。指定しない場合は maxLinesPerFile env var を使用します。制限なしにするには 0 を設定します)

大きなファイルの処理: ファイルが maxLinesPerFile の制限を超える場合、次の内容が表示されます。

  • ファイルヘッダーとメタデータ(常に保持)
  • 許可された行数の先頭 60%
  • ファイルの統計情報を含む切り捨てメッセージ
  • ファイル末尾から許可された行数の 40%
  • 差分全体の表示方法に関する明確な案内
get_reviews

レビューの進捗を追跡:レビューの状態を把握するため、レビュー履歴、承認状況、レビュアーからのフィードバックを取得します。

ユースケース:

  • PR がマージ可能な状態か確認する
  • 変更をレビューした人を確認する
  • レビューのフィードバックを把握する
  • 承認要件を確認する
  • レビューの進捗を追跡する
get_activities

プルリクエストのアクティビティを取得:コメント、レビュー、コミット、その他のイベントを含む、プルリクエストの完全なアクティビティタイムラインを取得します。

ユースケース:

  • コメントでの議論やフィードバックを読む
  • PR の完全なタイムラインを確認する
  • PR に追加・削除されたコミットを追跡する
  • 承認やレビューの履歴を確認する
  • PR のライフサイクル全体を把握する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):プルリクエスト ID
get_comments

PR のコメントのみを抽出:プルリクエストのアクティビティを絞り込み、コメントのみを返します。これにより、レビューやその他のアクティビティを除外して、議論の内容に集中しやすくなります。

ユースケース:

  • PR の議論スレッドを読む
  • フィードバックや質問を抽出する
  • ノイズを除いてコメントの内容に集中する
  • 会話の流れを分析する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):プルリクエスト ID
search

高度なコード・ファイル検索:Bitbucket 検索 API を使用して、プロジェクトやリポジトリで絞り込み、クエリを最適化しながらリポジトリ全体を検索します。ファイルの内容とファイル名の両方を検索します。注:検索はリポジトリのデフォルトブランチでのみ機能します。

ユースケース:

  • プロジェクト全体から特定のコードパターンを見つける
  • 名前や内容でファイルを探す
  • 特定のプロジェクトやリポジトリ内を検索する
  • ファイル拡張子で絞り込む

パラメーター:

  • query(必須):検索クエリ文字列
  • project:検索範囲を限定する Bitbucket プロジェクトキー
  • repository:リポジトリ固有の検索に使用するリポジトリのスラッグ
  • type:クエリの最適化。「file」(クエリを引用符で囲み、ファイル名の完全一致検索を行う)または「code」(デフォルトの検索動作)
  • limit:返す結果の数(デフォルト:25、最大:100)
  • start:ページネーションの開始インデックス(デフォルト:0)

クエリ構文の例:

  • "README.md" - 完全一致するファイル名を検索
  • config ext:yml - YAML ファイル内の config を検索
  • function project:MYPROJECT - 特定のプロジェクト内で「function」を検索
  • bug fix repo:PROJ/my-repo - 特定のリポジトリ内を検索
get_file_content

ページネーション対応でファイルの内容を読み取る:ページネーションを利用して、大きなファイルにも対応しながら、リポジトリ内の特定のファイルの内容を取得します。

ユースケース:

  • ソースコードファイルを読む
  • 設定ファイルを表示する
  • ドキュメントの内容を抽出する
  • 特定のファイルのバージョンを確認する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用)
  • repository(必須):リポジトリのスラッグ
  • filePath(必須):リポジトリ内のファイルパス
  • branch:ブランチまたはコミットハッシュ(任意。デフォルトは main/master)
  • limit:リクエストごとの最大行数(デフォルト:100、最大:1000)
  • start:ページネーションの開始行番号(デフォルト:0)
browse_repository

リポジトリの構造を確認:リポジトリ内のファイルやディレクトリを参照して、プロジェクトの構成を把握し、特定のファイルを探します。

ユースケース:

  • リポジトリの構造を確認する
  • ディレクトリツリーをたどる
  • ファイルやフォルダーを見つける
  • プロジェクトの構成を把握する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用)
  • repository(必須):リポジトリのスラッグ
  • path:参照するディレクトリパス(任意。デフォルトはルート)
  • branch:ブランチまたはコミットハッシュ(任意。デフォルトは main/master)
  • limit:返すアイテムの最大数(デフォルト:50)
list_pull_requests

プルリクエストを検索して絞り込む:状態、作成者、方向で絞り込みながら、リポジトリ内のプルリクエストを一覧表示します。タイトル、作成者、ブランチ、レビュアー、ステータスなどの PR メタデータを返します。

ユースケース:

  • リポジトリ内のオープンな PR を探す
  • 自分のプルリクエストを一覧表示する
  • レビュー待ちの PR を確認する
  • マージ済みまたは却下された PR の概要を確認する
  • プロジェクト内の PR の動向を監視する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT が使用されます)
  • repository(必須):リポジトリのスラッグ
  • state:PR の状態で絞り込み — OPEN(デフォルト)、MERGED、DECLINED、または ALL
  • author:作成者のユーザー名で絞り込み(完全一致)
  • direction:INCOMING(このリポジトリをターゲットとする PR。デフォルト)または OUTGOING(このリポジトリからの PR)
  • limit:返す PR の数(デフォルト:25、最大:1000)
  • start:ページネーションの開始インデックス(デフォルト:0)
list_branches

リポジトリのブランチを調べる:任意の条件で絞り込みながら、リポジトリ内のブランチを一覧表示します。デフォルトブランチを特定し、各ブランチの最新のコミット情報を表示します。

ユースケース:

  • PR の作成やチェックアウトに使うブランチ名を探す
  • 操作の前にブランチの存在を確認する
  • デフォルトブランチを特定する
  • ブランチ名で検索する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT が使用されます)
  • repository(必須):リポジトリのスラッグ
  • filterText:ブランチ名で絞り込み(大文字と小文字を区別しない部分一致)
  • limit:返すブランチ数(デフォルト:25、最大:1000)
  • start:ページネーションの開始インデックス(デフォルト:0)
list_commits

コミット履歴を確認する:ブランチや作成者による任意の絞り込みを指定して、リポジトリ内のコミットを一覧表示します。変更のレビュー、貢献の追跡、ブランチの変遷の把握に使用します。

ユースケース:

  • ブランチの最近の変更をレビューする
  • 特定の作成者によるコミットを探す
  • マージ前にコミット履歴を追跡する
  • ブランチの変遷を把握する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT が使用されます)
  • repository(必須):リポジトリのスラッグ
  • branch:コミットを一覧表示するブランチ名(デフォルトはリポジトリのデフォルトブランチ)
  • author:作成者名またはメールアドレスで絞り込み(大文字と小文字を区別しない部分一致。クライアント側で適用)
  • limit:返すコミット数(デフォルト:25、最大:1000)
  • start:ページネーションの開始インデックス(デフォルト:0)
delete_branch

マージ済みブランチを整理する:リポジトリからブランチを削除します。デフォルトブランチの削除を防ぐ安全チェックが含まれています。

ユースケース:

  • PR のマージ後にフィーチャーブランチを整理する
  • 古くなったブランチや放棄されたブランチを削除する
  • リポジトリを保守し、整理する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT が使用されます)
  • repository(必須):リポジトリのスラッグ
  • branch(必須):削除するブランチ名
approve_pull_request

コード変更を承認する:現在認証されているユーザーとして、プルリクエストを承認します。PR に承認を記録し、変更のマージ準備が整ったことを示します。

ユースケース:

  • レビュー済みのプルリクエストを承認する
  • マージ可能な状態であることを示す
  • コードレビューワークフローを完了する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT が使用されます)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):承認するプルリクエスト ID
unapprove_pull_request

承認を取り消す:プルリクエストから自分の承認を削除します。問題が見つかった場合や PR の内容が変更された場合に、以前の承認を取り消すために使用します。

ユースケース:

  • 問題が見つかった後に承認を取り消す
  • PR のスコープが変更されたときに承認を削除する
  • 誤って承認した内容を修正する

パラメーター:

  • project:Bitbucket プロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT が使用されます)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):承認を削除するプルリクエスト ID
edit_comment

既存のコメントを編集:プルリクエスト上のコメントのテキストを変更します。公開済みのコメントと保留中(下書き)のコメントの両方に対応しています。楽観的ロックにはコメントのバージョンが必要です。

使用例:

  • レビューコメントの誤字や書式を修正する
  • 既存のコメントの情報を更新する
  • コメントの書式を整える(例:Conventional Comments スタイルにする)

パラメーター:

  • project:Bitbucket のプロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):コメントが属するプルリクエストの ID
  • commentId(必須):編集するコメントの ID
  • text(必須):新しいテキストの内容(Markdown に対応)
  • version(必須):楽観的ロックに使用するコメントの現在のバージョン(get_comments または add_comment の応答から取得)
delete_comment

コメントを削除:プルリクエストからコメントを削除します。楽観的ロックにはコメントのバージョンが必要です。

使用例:

  • 誤って投稿したコメントを削除する
  • 不要になった下書きコメントを整理する

パラメーター:

  • project:Bitbucket のプロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):コメントが属するプルリクエストの ID
  • commentId(必須):削除するコメントの ID
  • version(必須):楽観的ロックに使用するコメントの現在のバージョン
publish_review

一括レビューを公開:保留中(下書き)のコメントをすべて一度に公開し、任意でレビューのステータスを設定したり、概要コメントを追加したりできます。Bitbucket UI の「Finish review」をクリックするのと同等の操作です。

使用例:

  • すべての下書きレビューコメントを一度の操作で公開する
  • レビューコメントとともに PR を承認する
  • 「要対応」ステータスとフィードバックを付けて変更をリクエストする

パラメーター:

  • project:Bitbucket のプロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):プルリクエストの ID
  • commentText:レビューの概要コメント(任意)
  • participantStatus:レビューのステータス(任意):APPROVED(マージ可能)または NEEDS_WORK(変更が必要)。一般的なフィードバックの場合は省略します。
get_code_insights

CI/CD 分析結果を取得:プルリクエストの Code Insights レポート(SonarQube、セキュリティスキャンなど)とその注釈を取得します。

使用例:

  • SonarQube の品質ゲートのステータスを確認する
  • セキュリティスキャンの検出結果をレビューする
  • コードカバレッジの指標を調べる
  • ファイルごとの CI/CD 分析の注釈を確認する

パラメーター:

  • project:Bitbucket のプロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用)
  • repository(必須):リポジトリのスラッグ
  • prId(必須):プルリクエストの ID
get_dashboard_pull_requests

リポジトリ横断 PR ダッシュボード:認証済みユーザーが関係する、すべてのリポジトリのプルリクエストを一覧表示します。各プロジェクトやリポジトリを指定せずに、レビューが必要な PR、自分が作成した PR、自分が参加している PR を確認できます。

使用例:

  • レビュー待ちの PR をすべて確認する
  • すべてのプロジェクトで自分が作成したオープン PR を一覧表示する
  • 最近マージされた、自分が参加した PR を見つける
  • 自分の PR 作業の概要を把握する

パラメーター:

  • state:PR の状態で絞り込みます:OPEN(デフォルト)、MERGED、DECLINED、または ALL
  • role:自分の役割で絞り込みます:AUTHOR、REVIEWER、または PARTICIPANT
  • participantStatus:自分のレビュー状況で絞り込みます:APPROVED、UNAPPROVED、または NEEDS_WORK
  • order:並べ替え順:OLDEST または NEWEST(デフォルト)
  • closedSince:このタイムスタンプ(エポックミリ秒)以降に更新されたクローズ済み PR のみを含めます
  • limit:返す PR の件数(デフォルト:25)
  • start:ページネーションの開始インデックス(デフォルト:0)

使用例

プロジェクトとリポジトリの一覧表示
# List all accessible projects
list_projects

# List repositories in the default project (if BITBUCKET_DEFAULT_PROJECT is set)
list_repositories

# List repositories in a specific project
list_repositories --project "MYPROJECT"

# List projects with pagination
list_projects --limit 10 --start 0
検索とファイル操作
# Search for README files across all projects
search --query "README" --type "file" --limit 10

# Search for specific code patterns in a project
search --query "function getUserData" --type "code" --project "MYPROJECT"

# Search with file extension filter
search --query "config ext:yml" --project "MYPROJECT"

# Browse repository structure
browse_repository --project "MYPROJECT" --repository "my-repo"

# Browse specific directory
browse_repository --project "MYPROJECT" --repository "my-repo" --path "src/components"

# Read file contents
get_file_content --project "MYPROJECT" --repository "my-repo" --filePath "package.json" --limit 20

# Read specific lines from a large file
get_file_content --project "MYPROJECT" --repository "my-repo" --filePath "docs/CHANGELOG.md" --start 100 --limit 50
プルリクエストの操作
# Create a pull request (using default project)
create_pull_request --repository "my-repo" --title "Feature: New functionality" --sourceBranch "feature/new-feature" --targetBranch "main"

# Create a pull request with specific project
create_pull_request --project "MYPROJECT" --repository "my-repo" --title "Bugfix: Critical issue" --sourceBranch "bugfix/critical" --targetBranch "develop" --description "Fixes critical issue #123"

# Get pull request details
get_pull_request --repository "my-repo" --prId 123

# Get only comments from a PR (no reviews/commits)
get_comments --project "MYPROJECT" --repository "my-repo" --prId 123

# Get full PR activity timeline
get_activities --repository "my-repo" --prId 123

# Merge a pull request with squash strategy
merge_pull_request --repository "my-repo" --prId 123 --strategy "squash" --message "Feature: New functionality (#123)"
プルリクエストの確認
# List open PRs in a repository (default state: OPEN)
list_pull_requests --repository "my-repo"

# List all PRs regardless of state
list_pull_requests --repository "my-repo" --state "ALL"

# Find PRs by a specific author
list_pull_requests --repository "my-repo" --author "john.doe"

# List merged PRs with pagination
list_pull_requests --repository "my-repo" --state "MERGED" --limit 10 --start 0
ブランチ管理
# List all branches in a repository
list_branches --repository "my-repo"

# Filter branches by name
list_branches --project "MYPROJECT" --repository "my-repo" --filterText "feature"

# Delete a merged branch
delete_branch --repository "my-repo" --branch "feature/completed-work"
コミット履歴
# List recent commits on the default branch
list_commits --repository "my-repo"

# List commits on a specific branch
list_commits --repository "my-repo" --branch "develop" --limit 10

# Filter commits by author
list_commits --repository "my-repo" --author "john.doe"

# Combine branch and author filters
list_commits --project "MYPROJECT" --repository "my-repo" --branch "main" --author "jane"
PR 承認ワークフロー
# Approve a pull request
approve_pull_request --repository "my-repo" --prId 123

# Remove your approval
unapprove_pull_request --repository "my-repo" --prId 123

# Full workflow: review diff, approve, merge
get_diff --repository "my-repo" --prId 123
approve_pull_request --repository "my-repo" --prId 123
merge_pull_request --repository "my-repo" --prId 123 --strategy "squash"

依存関係

  • @modelcontextprotocol/sdk - MCP プロトコル実装用 SDK
  • axios - API リクエスト用 HTTP クライアント
  • winston - ロギングフレームワーク

設定

サーバーには、VSCode MCP 設定ファイルでの設定が必要です。設定例を以下に示します。

{
  "mcpServers": {
    "bitbucket": {
      "command": "node",
      "args": ["/path/to/bitbucket-server/build/index.js"],
      "env": {
        "BITBUCKET_URL": "https://your-bitbucket-server.com",
        // Authentication (choose one):
        // Option 1: Personal Access Token
        "BITBUCKET_TOKEN": "your-access-token",
        // Option 2: Username/Password
        "BITBUCKET_USERNAME": "your-username",
        "BITBUCKET_PASSWORD": "your-password",
        // Optional: Default project
        "BITBUCKET_DEFAULT_PROJECT": "your-default-project"
      }
    }
  }
}
環境変数
  • BITBUCKET_URL(必須):Bitbucket Server インスタンスのベース URL
  • 認証(次のいずれかが必須):
    • BITBUCKET_TOKEN:個人用アクセストークン
    • BITBUCKET_USERNAME と BITBUCKET_PASSWORD:基本認証の認証情報
  • BITBUCKET_DEFAULT_PROJECT(任意):ツール呼び出しで指定されていない場合に使用するデフォルトのプロジェクトキー
  • BITBUCKET_DIFF_MAX_LINES_PER_FILE(任意):差分でファイルごとに表示するデフォルトの最大行数。大きなファイルによって出力が圧迫されるのを防ぐために設定します。get_diff の呼び出しで maxLinesPerFile パラメーターを指定すると上書きできます。
  • BITBUCKET_LOG_PATH(任意):ログファイルのカスタムパス(デフォルト:~/.bitbucket-server-mcp/bitbucket.log)
  • BITBUCKET_READ_ONLY(任意):読み取り専用モードを有効にするには、true に設定します
  • BITBUCKET_CUSTOM_HEADERS(任意):すべてのリクエストに追加するカスタム HTTP ヘッダーのカンマ区切りリスト(形式:Header-Name=value,Another-Header=value2)。Zero Trust トークンやプロキシヘッダーに便利です

注:新しい任意のプロジェクト対応により、以下が可能になりました。

  • BITBUCKET_DEFAULT_PROJECT を設定して、特定のプロジェクトをデフォルトで使用する
  • list_projects を使って、利用可能なプロジェクトを確認する
  • list_repositories を使って、プロジェクトをまたいでリポジトリを閲覧する
  • 任意のツール呼び出しで project パラメーターを指定して、デフォルトのプロジェクトを上書きする
読み取り専用モード

Bitbucket リポジトリへの変更を防止したいデプロイ環境向けに、サーバーは読み取り専用モードをサポートしています。有効にすると、安全で変更を伴わない操作のみ利用できます。

読み取り専用モードを有効にするには:環境変数 BITBUCKET_READ_ONLY=true を設定します

読み取り専用モードで利用可能なツール:

  • list_projects - プロジェクトを閲覧して一覧表示する
  • list_repositories - リポジトリを閲覧して一覧表示する
  • get_pull_request - プルリクエストの詳細を表示する
  • list_pull_requests - プルリクエストを一覧表示して絞り込む
  • get_diff - コード変更と差分を表示する
  • get_reviews - レビュー履歴とステータスを表示する
  • get_activities - プルリクエストのタイムラインを表示する
  • get_comments - プルリクエストのコメントを表示する
  • search - リポジトリ全体のコードとファイルを検索する
  • get_file_content - ファイルの内容を読み取る
  • browse_repository - リポジトリの構成を閲覧する
  • list_branches - リポジトリのブランチを一覧表示する
  • list_commits - コミット履歴を閲覧する
  • get_code_insights - CI/CD 分析レポートと注釈を取得する
  • get_dashboard_pull_requests - 認証済みユーザー向けに、すべてのリポジトリの PR を一覧表示する

読み取り専用モードで無効になるツール:

  • create_pull_request - 新しいプルリクエストを作成する
  • update_pull_request - プルリクエストのタイトル、説明、またはレビュアーを更新する
  • merge_pull_request - プルリクエストをマージする
  • decline_pull_request - プルリクエストを却下する
  • add_comment - プルリクエストにコメントを追加する
  • add_comment_inline - プルリクエストにインラインコメントを追加する
  • edit_comment - 既存のコメントを編集する
  • delete_comment - コメントを削除する
  • publish_review - 複数のレビューをまとめて公開する
  • delete_branch - ブランチを削除する
  • approve_pull_request - プルリクエストを承認する
  • unapprove_pull_request - PR の承認を取り消す

動作:

  • BITBUCKET_READ_ONLY が設定されていない場合、または true 以外の値に設定されている場合、すべてのツールは通常どおり動作します(後方互換性あり)
  • BITBUCKET_READ_ONLY=true の場合、書き込み操作は除外され、呼び出されるとエラーを返します
  • 本番環境へのデプロイ、CI/CD 統合、または安全な読み取り専用の Bitbucket アクセスが必要なあらゆる状況に最適です

ロギング

サーバーはデバッグと監視のため、Winston を使用してすべての操作をログに記録します。

ログファイルの場所(優先順位順):

  1. BITBUCKET_LOG_PATH 環境変数 — カスタムパス
  2. ~/.bitbucket-server-mcp/bitbucket.log — デフォルトの場所

ログディレクトリは、存在しない場合に自動的に作成されます。

例: MCP の設定でカスタムログパスを設定します。

{
  "env": {
    "BITBUCKET_LOG_PATH": "/var/log/bitbucket-mcp/server.log"
  }
}
カスタム HTTP ヘッダー

BITBUCKET_CUSTOM_HEADERS 環境変数を使用して、すべての API リクエストにカスタム HTTP ヘッダーを追加できます。Zero Trust セキュリティトークン、プロキシヘッダー、その他インフラストラクチャで必要なヘッダーを設定する場合に便利です。

形式: 値に等号を含めることができる、カンマ区切りのキーと値のペアです。

Header-Name=value,Another-Header=value2

単一ヘッダーの例:

{
  "env": {
    "BITBUCKET_CUSTOM_HEADERS": "X-Zero-Trust-Token=your-token-here"
  }
}

複数ヘッダーの例:

{
  "env": {
    "BITBUCKET_CUSTOM_HEADERS": "X-Custom-Header=value1,X-Proxy-Auth=token123"
  }
}

コメント

MCP は初めてですか?

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

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