mcp-bitbucket-dc について
mcp-bitbucket-dcは、セルフホスト環境でAtlassian製品を運用するチーム向けに、MCPクライアントをBitbucket Data CenterおよびServerに接続します。リポジトリやコードの閲覧、プルリクエストのレビューに対応し、マージと却下は任意で有効化できます。
主な機能
- 01プロジェクト、リポジトリ、ブランチ、コミットの閲覧
- 02リポジトリ内のコード検索
- 03プルリクエストのレビューとコメント
- 04任意で有効化するマージと却下
- 05個人アクセストークンによるローカル実行
活用シーン
- 01Bitbucketリポジトリ横断でコードを検索
- 02プルリクエストをレビューしてコメント
- 03プロジェクトファイルやコミット履歴を確認
MCP 対応
MCPサーバーは、Bitbucketの閲覧、コード検索、プルリクエストレビューのツールをMCPクライアントに提供します。ローカルで動作し、個人アクセストークンで接続します。マージと却下は任意で有効化します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y mcp-bitbucket-dcATLASSIAN_DC_MCP_CONFIG_FILEAbsolute path to a shared dotenv-style config file. When set, values are read from this file before direct environment variable overrides are applied.BITBUCKET_HOSTBitbucket host domain (e.g. your-instance.atlassian.net). Required unless provided through ATLASSIAN_DC_MCP_CONFIG_FILE or BITBUCKET_API_BASE_PATH.BITBUCKET_API_BASE_PATHBitbucket API base path (alternative to BITBUCKET_HOST). Required unless provided through ATLASSIAN_DC_MCP_CONFIG_FILE or BITBUCKET_HOST.BITBUCKET_API_TOKENシークレットBitbucket Personal Access Token or API token. Required unless provided through ATLASSIAN_DC_MCP_CONFIG_FILE.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Atlassian Data Center MCP
自社サーバーで Jira、Confluence、Bitbucket を運用する、AI を最優先する企業のために構築された、Atlassian Data Center 向けの主要な MCP です。
チームが Data Center を選んだのは、データを管理できるからです。そのために最高の AI モデルをあきらめる必要はありません。3 つの Model Context Protocol(MCP)サーバーを使えば、Claude、Cursor など、あらゆる MCP クライアントがセルフホスト型の Atlassian ツールを利用できます。モデルのコンテキストを圧迫することなく、課題の検索や更新、ページの読み書き、プルリクエストのレビューができます。それぞれ npx コマンドひとつで実行できます。エージェントは個人用アクセストークンでサインインするため、あなたができることだけを実行し、それ以上のことはできません。
npx -y mcp-jira-dc setup # ← saves your Jira address and token
claude mcp add jira -- npx -y mcp-jira-dc # ← connects Claude Code
Claude からは、Jira のツールが 14 個見えるようになりました。課題、コメント、トランジションを扱う日常的なツールに加え、必要に応じてさらに 43 個を利用できる検索機能と、多くの読み取りを組み合わせて 1 つの回答を作成できるサンドボックスが含まれます。
コミュニティプロジェクトです。Atlassian とは提携しておらず、Atlassian の推奨も受けていません。Jira、Confluence、Bitbucket は Atlassian の商標です。
気に入っていただける理由
- コマンドひとつで、ホスト不要:
npxを使って各サーバーをお使いのマシン上で実行できます。Python も Docker も、実行するサーバーも必要ありません。Atlassian の MCP サーバーが対応していない Data Center と Server 向けに構築されています。 - ツール一覧はコンパクト、必要な機能はすべて利用可能:一覧に表示されるツールはリクエストごとにトークンを消費するため、日常的に使うツールを一覧に表示し、それ以外は検索から利用できるようにしています。エージェントには 61 個ではなく 14 個の Jira ツールが表示されますが、どのツールも引き続き利用できます。
- JSON の羅列ではなく、回答を返します:多くの呼び出しが必要な質問に対して、エージェントはサンドボックス内で呼び出しを行う短いスクリプトを作成し、回答だけを返します。以下の例では、1,215 文字ではなく 226 文字を返します。
- 利用できるツールだけを表示:起動時に Jira サーバーが権限を読み取り、アカウントでは実行できないツールを非表示にします。
- 書き込み操作を明示:各ツールは、読み取り、変更、削除のどれを行うかをクライアントに通知するため、クライアントは先に確認できます。スクリプトは読み取りのみ可能で、削除には必ず有効化する設定が必要です。
- 必要に応じて監査証跡を記録:監査ログを有効にすると、検索経由やスクリプト経由で呼び出されたものも含め、エージェントが呼び出すすべてのツールを記録できます。読み取った内容や書き込んだ内容は記録されません。
- 必要に応じて厳格に制限:読み取り専用モード、厳密なツール許可リスト、指定したリポジトリとターゲットブランチに限ったマージ、指定したフォルダー内に限った添付ファイルの取り扱いに対応します。
- 認証情報を適切な場所に保存:
setupはトークンをサーバーに対して検証した後、OS のキーチェーン(macOS Keychain、Windows Credential Manager、または Linux デスクトップのキーリング)に保存します。あるいは、ユーザー本人だけが読み取れるファイルに保存します。サーバーが出力するすべての情報で、トークンはマスキングされます。
自分のマシンで実行する理由
Data Center は通常、ファイアウォールや VPN の内側にあります。作業場所で実行するサーバーなら、ブラウザーと同じ方法でアクセスできます。
| ホスト型 MCP コネクター | これらのサーバー | |
|---|---|---|
| ファイアウォールや VPN の内側にあるインスタンスへのアクセス | インスタンスがサービスに公開されている場合のみ | はい:マシンからアクセスできる場所ならどこでも |
| トークンの保存場所 | サービス内 | マシン上:OS のキーチェーン、または自分だけが読み取れるファイル |
| エージェントに表示するツールを決める人 | サービス | ユーザー自身:いくつかの設定で制御 |
| ホスト、承認、または支払いが必要なもの | サービス | 何もありません:npx で実行できます |
Atlassian の公式 MCP サーバーは、Atlassian Cloud 向けのホスト型サーバーです。これらのサーバーは Data Center と Server 向けです。
3 つのサーバー
| サーバー | npm パッケージ | エージェントができること |
|---|---|---|
| Jira | mcp-jira-dc | JQL による検索、課題の作成・更新・トランジション、コメント、リンク、バージョン、スプリント、作業ログ、サービスデスクキュー、フィールド、ユーザー。18 個のツールセットに 63 個のツールがあり、Xray がインストールされている場合はテスト管理も利用できます。 |
| Confluence | mcp-confluence-dc | CQL による検索、ページの読み取り・作成・更新、ページツリー、バージョン履歴と差分、ラベル、コメント、制限、添付ファイル。11 個のツールセットに 26 個のツールがあります。 |
| Bitbucket | mcp-bitbucket-dc | プロジェクト、リポジトリ、ファイル、ブランチ、コミットの参照、コード検索、プルリクエストのレビューとコメント。マージと却下はオプトインです。通常のツールが 27 個、オプトインのツールが 2 個あります。 |
使用するサーバーだけをインストールしてください。共通の設定形式を使うため、1 つの設定ファイルですべてに対応できます。
対応している Jira アプリ
Jira サーバーには、次の Marketplace アプリ向けのツールもあります。
| アプリ | バージョン | ステータス |
|---|---|---|
| Xray、テスト管理 | 8 | ベータ |
| Jira Service Management | 記録なし | ベータ |
ベータとは、構築と確認は済んでいるものの、アプリの実稼働インスタンスではまだテストされていないことを意味します。対応アプリには、各アプリのツールがどのバージョンを基に構築されたか、および確認方法が記載されています。
インストール
npx -y mcp-jira-dc setup
Node.js 22.22.2 以降、Data Center または Server インスタンス、そしてパーソナルアクセストークンが必要です。他のサーバーを使う場合は、mcp-confluence-dc または mcp-bitbucket-dc に置き換えてください。
クイックスタート
1. アドレスとトークンを保存する
setup はホストとトークンを尋ね、認証付きリクエストを 1 回送信して確認し、それらを保存します。
npx -y mcp-jira-dc setup
Jira または Confluence でトークンを作成するには、プロフィール画像を開き、Personal Access Tokens > Create token の順に選択します。Bitbucket では Manage account > HTTP access tokens を選択します。スクリプトや CI では、setup --non-interactive にすべての値をフラグで渡せます。トークンが機能しない場合は、0 以外の終了コードで終了します。
2. エージェントを接続する
install を実行すると、Claude Code または Claude Desktop にサーバーが登録されます。
npx -y mcp-jira-dc install --claude-code # runs claude mcp add
npx -y mcp-jira-dc install --claude-desktop # edits Claude Desktop's config, after backing it up
mcpServers ファイルを使う Cursor、VS Code、その他のクライアントの場合:
{
"mcpServers": {
"jira": { "command": "npx", "args": ["-y", "mcp-jira-dc"] },
"confluence": { "command": "npx", "args": ["-y", "mcp-confluence-dc"] },
"bitbucket": { "command": "npx", "args": ["-y", "mcp-bitbucket-dc"] }
}
}
次のように尋ねてみましょう。「現在のスプリントでブロックされている課題はどれで、担当者は誰ですか?」
3. 一覧に表示するものを選ぶ
すべての設定は任意です。未設定の場合、Jira と Confluence では日常的に使うツールが一覧に表示され、残りのツールは検索から利用できます。
| 設定 | 機能 |
|---|---|
TOOLSETS | ツールセット全体を直接一覧に表示します。たとえば、スプリントを中心に作業するチームなら default,jira_agile を指定します。all を指定するとすべてが一覧に表示されます。 |
READ_ONLY_MODE=true | 変更を加えないツールのみを提供します。 |
ENABLED_TOOLS | 制限の厳しい環境向けに、ツール名を正確に指定する許可リストです。 |
TOOL_GATEWAY=off | 検索を無効にします。選択したツールセット以外のツールは除外されます。 |
CODE_EXECUTION=off | コードサンドボックスを削除します。 |
PERMISSION_FILTER=off | 事前に権限を確認せず、Jira ツールを一覧に表示します。 |
ATLASSIAN_DC_MCP_AUDIT=1 | 監査ログを保持します。ツール呼び出しごとに、ツール名、結果、所要時間を1行に記録します。引数や結果は記録しません。検索経由またはコードから実行したツールも記録されます。 |
各サーバーの README には、ツールセットと、リスクのあるツールを有効にする設定が記載されています。 Jira、Confluence、 Bitbucket。
4. セットアップを確認する
doctor は各手順を順に確認し、問題の修正方法を示します。MCP クライアントと同じ方法でサーバーを起動するため、エージェントが実際に受け取る内容をそのまま確認できます。
$ npx -y mcp-jira-dc doctor
mcp-jira-dc doctor
✓ Node.js 22.22.2
✓ Settings everything needed is set
JIRA_HOST: jira.example.com, from C:\Users\alice\.atlassian-dc-mcp\jira.env
JIRA_API_BASE_PATH: (not set)
JIRA_API_TOKEN: ••••HcU1, from Windows Credential Manager
JIRA_DEFAULT_PAGE_SIZE: 25 (default)
✓ Keychain token kept in Windows Credential Manager
✓ Sign-in signed in as Alice Smith (alice)
✓ Tools 11 listed, about 2,900 tokens of context
32 more through jira_searchTools
jira_runCode is on
server: Permission filter hid 14 Jira tools: jira_transitionIssue, jira_linkIssues, ...
トークンはマスクされるため、出力をバグ報告に貼り付けても安全です。
エージェントが見る内容
以下は、テスト用の Jira に対して実行した、Jira サーバーからの実際の応答です。ツール一覧には日常的に使うツールと、さらに4つのツールが含まれています。
jira_searchIssues, jira_getIssue, jira_getIssueComments, jira_createIssue, jira_updateIssue,
jira_postIssueComment, jira_updateIssueComment, jira_getTransitions, jira_transitionIssue,
jira_downloadAttachment, jira_searchTools, jira_runReadTool, jira_runWriteTool, jira_runCode
スプリントについて質問されたエージェントは、ツールを検索します。jira_searchTools は一致したツールと、それぞれが読み取りか書き込みかを示します(入力スキーマはここでは省略しています)。
[
{ "name": "jira_getSprintIssues", "toolset": "jira_agile", "access": "read",
"description": "List the issues in a sprint in the JIRA Data Center edition instance, in rank order, optionally narrowed by JQL. Returns key, summary, status, type, priority and assignee per issue." },
{ "name": "jira_addIssuesToSprint", "toolset": "jira_agile", "access": "write",
"description": "Move issues into a future or active sprint in the JIRA Data Center edition instance, taking them out of any other sprint. At most 50 issues per call." },
{ "name": "jira_moveIssuesToBacklog", "toolset": "jira_agile", "access": "write",
"description": "Move issues to the backlog in the JIRA Data Center edition instance, removing them from their future or active sprint. At most 50 issues per call." }
]
読み取りツールは jira_runReadTool で実行できます。または、質問に一度で答えるために、jira_runCode 用のスクリプトを作成できます。
const { issues } = await tools.jira_getSprintIssues({ sprintId: 42 });
const blocked = issues.filter((issue) => issue.status === 'Blocked');
console.log(`${blocked.length} of ${issues.length} issues are blocked`);
return blocked.map((issue) => `${issue.key} ${issue.summary} (${issue.assignee?.displayName ?? 'unassigned'})`);
{
"result": [
"PAY-102 Migrate payouts to new ledger (Ben Okafor)",
"PAY-104 Upgrade payment SDK (Amira Haddad)",
"PAY-106 Refund API returns 500 on partial refunds (Ben Okafor)"
],
"logs": ["3 of 7 issues are blocked"],
"toolCalls": 1
}
この回答は226文字です。元になったスプリントの一覧全体は1,215文字で、実際のスプリントでは課題が増えるたびにその差も大きくなります。
仕組み
各サーバーは、MCP クライアントの子プロセスとしてマシン上で動作し、トークンを使って Atlassian インスタンスの REST API を呼び出します。
sequenceDiagram
autonumber
participant Agent as 🤖 Claude / Cursor / any MCP client
participant Server as mcp-jira-dc<br/>(on your machine)
participant Sandbox as Code sandbox<br/>(QuickJS, own thread)
participant Jira as 🏢 Jira Data Center
Agent->>Server: tools/list
Server-->>Agent: everyday tools, search, run tools, runCode
Agent->>Server: jira_searchTools "sprint issues"
Server-->>Agent: matching tools with their schemas
Agent->>Server: jira_runCode (a short script)
Server->>Sandbox: run the script
Sandbox->>Server: tools.jira_getSprintIssues(...)
Server->>Jira: GET /rest/agile/1.0/sprint/42/issue
Jira-->>Server: the sprint's issues
Server-->>Sandbox: issue data
Sandbox-->>Server: the script's return value
Server-->>Agent: the answer, and console output
スクリプトは、WebAssembly にコンパイルされた JavaScript エンジンである QuickJS 上で、専用のワーカースレッド内で実行されます。ネットワーク、ファイル、またはプロセスにはアクセスできず、読み取りツールのみを利用できます。30秒または50回のツール呼び出しで停止し、エンジンがクラッシュしても、その実行だけが失敗します。
すべてのツールを一覧に表示する場合との比較
TOOLSETS=all を指定した同じ Jira サーバーと、デフォルト設定を比較します。
| デフォルト | すべてのツールを一覧に表示 | |
|---|---|---|
| 各リクエストに含まれるツール | 14個(スキーマは約13,900文字) | 61個(約56,000文字) |
| 使用頻度の低いツールを呼び出す方法 | 検索を1回してから呼び出す | 直接呼び出す |
| 多くの呼び出しが必要な質問 | 回答だけを返す1つのスクリプト | 各手順で1回ずつ呼び出し、すべての結果がコンテキストに含まれる |
| 書き込み | 一度に1つずつ実行し、それぞれがクライアントに表示される | 一度に1つずつ実行し、それぞれがクライアントに表示される |
| 削除 | 有効にしたツールセットのみ | ほかのすべてのツールとともに一覧に表示される |
保証されること
- アクセス範囲が広がることはありません。 すべてのリクエストにトークンが付与されるため、何ができるかは Jira、Confluence、Bitbucket が判断します。ツールを非表示にするとエージェントから見えなくなりますが、できることが増えるわけではありません。
- スクリプトは読み取り専用です。 サンドボックス内のコードで呼び出せるのは読み取りツールだけです。変更はすべて、クライアントから確認でき、実行するか尋ねられるツール呼び出しを通じて行われます。
- 削除するかどうかは常にユーザーが決めます。 ツール検索では削除ツールは表示されず、サンドボックスからもアクセスできません。削除ツールが表示されるのは、有効にしたツールセット内だけです。また、
JIRA_VERSION_DELETE_ENABLEDのように、個別の設定も必要な場合があります。 - 呼び出しが自動で再試行されることはありません。 リクエストが失敗すると、エージェントにエラーが表示され、対処方法を判断します。
- いつまでも待ち続けることはありません。 インスタンスへの各リクエストは、デフォルトで 30 秒後にタイムアウトします(
ATLASSIAN_DC_MCP_REQUEST_TIMEOUT_MS)。各スクリプトも 30 秒後、またはツール呼び出し 50 回後に終了します。 - ファイルに勝手にアクセスすることはありません。 添付ファイルの読み取りと保存は、指定したフォルダーだけで行われます。また、保存するファイルが既存のファイルを上書きすることはありません。
インスタンス内のコンテンツは他の人が作成したものなので、課題のテキスト、コメント、ページ、添付ファイルは指示ではなくデータとしてエージェントに渡されます。必要な箇所では、ツールの説明にもその旨が記載されています。
正しく動作することをどのように確認していますか?
エージェントはユーザーのアカウントで動作するため、説明以上のことをするツールは深刻な問題になります。Ubuntu と Windows で、すべてのプルリクエストに対して 1,000 件を超える自動テストを実行しています。
- すべてのツールを確認します:サーバーのカタログにツールが存在しない場合、サーバーの起動は停止します。読み取り専用モードで読み取りツールだけが表示されること、データを変更するすべての Jira ツールに必要な権限が記載されていること(自分で課題をウォッチするなど、誰でも実行できる一部の操作を除く)、検索結果に破壊的なツールが表示されないことをテストで確認します。
- サンドボックスを意図的に攻撃します:テストでは
require、process、ネットワークへのアクセスを試みるほか、ビジーループ、解決されない Promise、暴走する再帰、ネイティブのスタックオーバーフロー、上限のないメモリ使用も実行します。それぞれがサーバーの動作を維持したまま、正常に失敗する必要があります。 - 配布パッケージを検査します:CI では、npm が受け取るのと同じ方法で各サーバーをバンドルして読み込みます。これにより、依存関係の不足はユーザーのインストール時ではなく、ビルド時に検出されます。
- 依存関係を慎重に扱います:すべてのバージョンを厳密に固定し、新しいリリースは少なくとも 7 日経過してから採用します。また、npm パッケージは長期間有効なトークンを使わず、npm のトラステッドパブリッシングを利用して CI から公開します。
- セキュリティ上の問題をスキャンします:CodeQL はすべてのプルリクエストでコードとワークフローをチェックし、依存関係レビューは既知の脆弱性がある依存関係を追加するプルリクエストをブロックします。Dependabot は依存関係とアクションを最新の状態に保ち、すべてのアクションはコミットに固定されています。また、OpenSSF Scorecard で、オープンソースのセキュリティプラクティスに照らしたプロジェクトの状況を追跡しています。問題の報告方法については、SECURITY.md をご覧ください。
ドキュメント
| ガイド | 内容 |
|---|---|
| Jira サーバー | 設定、18 個のツールセット、権限フィルター、添付ファイル、バージョンの削除 |
| Confluence サーバー | 設定、11 個のツールセット、添付ファイル |
| Bitbucket サーバー | 設定、ツール、名前を指定したリポジトリのマージ許可 |
| サポート対象アプリ | ツールを備えた Jira アプリ、それらの構築に使った正確なバージョン、確認方法 |
| 設定リファレンス | すべての setup フラグ、認証情報の保存場所、設定の読み込み順序、クライアント設定一式 |
| コントリビューション | ビルドとテスト、ツール選択・検索・サンドボックスの仕組み、リリース |
| 変更履歴 | 各リリースで変更された内容 |
ステータスとロードマップ
これは 0.47 です。すべてのプラットフォームで OS のキーチェーンにトークンを保存する機能、doctor、install、監査ログ、および Xray から始まる Jira アプリのサポートが追加されました。変更履歴には、すべての変更とアップグレード時に必要な対応が記載されています。
1.0 までは、マイナーバージョンに破壊的変更が含まれる場合があります。その内容は変更履歴に記載されます。今後の予定:
- Jira アプリ(プラグイン)の追加。ツール検索からアクセスするため、使用するまではコストがかかりません。テスト管理向けの Xray が最初のアプリです
- Jira 管理ツール
質問がありますか?協力したいですか?
質問、アイデア、バグ報告は、イシューで歓迎しています。コードやドキュメントへの貢献については、まず貢献ガイドをお読みください。参加するすべての方に行動規範を遵守していただきます。セキュリティ上の問題は、公開イシューではなく非公開の報告方法から報告してください。
サポート対象の Jira アプリのツールをご自身のインスタンスで実行することは、最も有益な貢献のひとつです。これにより、アプリがベータ版からテスト済みに進みます。必要な情報は、Jira アプリのサポート用イシューフォームでお尋ねします。
貢献してくださった皆さんと、このプロジェクトが基盤としているオープンソースプロジェクトに感謝します。
packages/jira/ mcp-jira-dc
packages/confluence/ mcp-confluence-dc
packages/bitbucket/ mcp-bitbucket-dc
packages/common/ shared code (configuration, setup, tool selection, the tool search, the code sandbox),
bundled into each server and never published on its own
scripts/ bundling, versioning and release scripts
docs/ guides
テストを実行するには:
npm install
npm run build
npm test
クレジットとライセンス
MIT ライセンスです。
コードの一部は、MIT ライセンスの2つのプロジェクト、b1ff/atlassian-dc-mcp と sooperset/mcp-atlassianから提供されています。それぞれの通知はLICENSEに記載されています。 両プロジェクトに感謝します。このプロジェクトは公式の MCP TypeScript SDKと quickjs-emscriptenを基盤としており、 Tektharが保守しています。
姉妹プロジェクト: abp-mcpは、お持ちの権限をそのまま使える、AI エージェント向けの ABP アプリです。また、CASL .NETは、声に出して読める .NET 向けの権限管理です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。