Bitbucket Server MCP について
Bitbucket Server MCPは、Bitbucket ServerをコーディングエージェントやコードレビューのワークフローにつなぐMCPサーバーです。プルリクエスト操作に加え、リポジトリ閲覧、コード検索、ブランチやコミットの確認、ビルド状態の取得に対応します。
主な機能
- 01プルリクエストの作成・更新・マージ
- 02レビュー、コメント、差分の確認
- 03プルリクエストの検索と絞り込み
- 04プロジェクト、リポジトリ、ブランチの閲覧
- 05コード検索とファイルの読み取り
- 06コミットのビルド状態確認
活用シーン
- 01機能や修正をチームレビューに提出
- 02レビューやビルドの進捗を確認
- 03プロジェクト内のリポジトリやコードを検索
- 04マージ済みブランチを整理
MCP 対応
MCPサーバーとして、プルリクエスト管理、リポジトリ閲覧、コード検索のためのBitbucket Server APIツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Bitbucket Server MCP
Bitbucket Server のプルリクエスト管理用 MCP(Model Context Protocol)サーバーです。このサーバーは、MCP プロトコルを通じて Bitbucket Server API を操作するためのツールとリソースを提供します。
✨ 新機能
- 🔧 カスタム 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(必須):更新するプルリクエスト IDtitle:新しいタイトル(省略した場合、現在のタイトルが保持されます)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(必須):プルリクエスト IDmessage:カスタムのマージコミットメッセージstrategy:マージ戦略:merge-commit(デフォルト):履歴を保持してマージコミットを作成しますsquash:すべてのコミットを 1 つにまとめますfast-forward:マージコミットを作成せずにブランチポインターを移動します
decline_pull_request
不適切な変更を却下:マージすべきでないプルリクエストを却下し、作成者にフィードバックを提供します。
ユースケース:
- 基準を満たさない変更を却下する
- プロジェクトの方針と相反する PR をクローズする
- 大幅な修正を依頼する
- 意図しないコードの統合を防ぐ
パラメーター:
project:Bitbucket プロジェクトキー(省略可能。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用します)repository(必須):リポジトリのスラッグprId(必須):プルリクエスト IDmessage:却下理由(作成者へのフィードバックに役立ちます)
add_comment
コードレビューに参加:レビューのフィードバック、議論、共同作業のために、プルリクエストにコメントを追加します。スレッド形式の会話をサポートします。
ユースケース:
- コードレビューのフィードバックを提供する
- 特定の変更について質問する
- 改善案を提案する
- 技術的な議論に参加する
- レビューの判断を記録する
パラメーター:
project:Bitbucket プロジェクトキー(省略可能。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用します)repository(必須):リポジトリのスラッグprId(必須):プルリクエスト IDtext(必須):コメント内容(Markdown をサポート)parentId:スレッド形式の返信先となる親コメント IDstate:コメントの状態:OPEN(デフォルト。すぐに公開)またはPENDING(下書き。レビューが公開されるまで自分にのみ表示)
get_diff
コード変更を分析:プルリクエストで追加、削除、変更された内容を正確に示すコード差分を取得します。大きな差分を効率的に管理するため、ファイルごとの出力行数制限をサポートします。
ユースケース:
- 特定のコード変更をレビューする
- 変更の範囲を把握する
- マージ前に影響を分析する
- 実装の詳細を確認する
- コード品質を評価する
- 出力が過剰にならないよう、大きなファイルを扱う
パラメーター:
project:Bitbucket プロジェクトキー(省略可能。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用します)repository(必須):リポジトリのスラッグprId(必須):プルリクエスト IDcontextLines:変更箇所の前後に表示するコンテキスト行数(デフォルト: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、またはALLauthor:作成者のユーザー名で絞り込み(完全一致)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(必須):コメントが属するプルリクエストの IDcommentId(必須):編集するコメントの IDtext(必須):新しいテキストの内容(Markdown に対応)version(必須):楽観的ロックに使用するコメントの現在のバージョン(get_commentsまたはadd_commentの応答から取得)
delete_comment
コメントを削除:プルリクエストからコメントを削除します。楽観的ロックにはコメントのバージョンが必要です。
使用例:
- 誤って投稿したコメントを削除する
- 不要になった下書きコメントを整理する
パラメーター:
project:Bitbucket のプロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用)repository(必須):リポジトリのスラッグprId(必須):コメントが属するプルリクエストの IDcommentId(必須):削除するコメントの IDversion(必須):楽観的ロックに使用するコメントの現在のバージョン
publish_review
一括レビューを公開:保留中(下書き)のコメントをすべて一度に公開し、任意でレビューのステータスを設定したり、概要コメントを追加したりできます。Bitbucket UI の「Finish review」をクリックするのと同等の操作です。
使用例:
- すべての下書きレビューコメントを一度の操作で公開する
- レビューコメントとともに PR を承認する
- 「要対応」ステータスとフィードバックを付けて変更をリクエストする
パラメーター:
project:Bitbucket のプロジェクトキー(任意。指定しない場合は BITBUCKET_DEFAULT_PROJECT を使用)repository(必須):リポジトリのスラッグprId(必須):プルリクエストの IDcommentText:レビューの概要コメント(任意)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、またはALLrole:自分の役割で絞り込みます:AUTHOR、REVIEWER、またはPARTICIPANTparticipantStatus:自分のレビュー状況で絞り込みます:APPROVED、UNAPPROVED、またはNEEDS_WORKorder:並べ替え順: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 プロトコル実装用 SDKaxios- 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 を使用してすべての操作をログに記録します。
ログファイルの場所(優先順位順):
BITBUCKET_LOG_PATH環境変数 — カスタムパス~/.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"
}
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。