atlassian-dc-mcp-confluence について
セルフホストの Atlassian Data Center を利用するチーム向けの Confluence MCP サーバーです。AI アシスタントからページ、ブログ投稿、スペース、添付ファイルを検索・管理できます。コンテンツや管理用のツールを備え、認証情報は OS のキーチェーンまたはアクセス権を制限したファイルに保存できます。
主な機能
- 01ページの作成、検索、編集
- 02スペースとコンテンツ権限の管理
- 03ページのバージョン、ラベル、階層の処理
- 04添付ファイルの参照と管理
- 05ツール、リソース、プロンプトの提供
- 06対話式の認証情報設定
活用シーン
- 01Confluence のページやブログ投稿を検索
- 02ページの内容やラベルを更新
- 03スペースのコンテンツとアクセス権を確認
- 04ページ添付ファイルや埋め込み画像を管理
MCP 対応
MCP サーバーとして、Confluence のコンテンツ、スペース、ユーザー、管理、Webhook、添付ファイル向けのツール、リソース、プロンプトを公開します。stdio に対応し、HTTP トランスポートにも設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y confluence-datacenter-mcpATLASSIAN_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.CONFLUENCE_HOSTConfluence host domain (e.g. your-instance.atlassian.net). Required unless provided through ATLASSIAN_DC_MCP_CONFIG_FILE or CONFLUENCE_API_BASE_PATH.CONFLUENCE_API_BASE_PATHConfluence API base path (alternative to CONFLUENCE_HOST). Required unless provided through ATLASSIAN_DC_MCP_CONFIG_FILE or CONFLUENCE_HOST.CONFLUENCE_API_TOKENシークレットConfluence Personal Access Token or API token. Required unless provided through ATLASSIAN_DC_MCP_CONFIG_FILE.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Atlassian Data Center MCP
コミュニティプロジェクト — Atlassian との提携、承認、サポートは受けていません。 自己責任でご利用ください。
Claude Desktop、Claude Code、Cursor、その他のMCP対応AIアシスタントを、セルフホスト可能なAtlassian Data Center(旧Server)インスタンスのJira、Confluence、Bitbucketに接続するModel Context Protocol (MCP)サーバーです。
AIアシスタントからJira課題を検索・管理し、Confluenceページを閲覧・編集し、Bitbucketのプルリクエストをレビューできます。認証情報はクライアント設定に貼り付けるのではなく、OSのキーチェーンに保存されます。
| パッケージ | バージョン | 対応サーバー |
|---|---|---|
jira-datacenter-mcp | Jira Data Center / Server | |
confluence-datacenter-mcp | Confluence Data Center / Server | |
bitbucket-datacenter-mcp | Bitbucket Data Center / Server | |
datacenter-mcp-core | 共通ランタイム(自動的にインストールされます。直接実行しないでください) |
各製品は個別のパッケージです。必要なものだけをインストールしてください。
目次
機能
各サーバーは、アシスタントが呼び出せるアクションである MCP ツール、読み取り可能なコンテキストエンドポイントである リソース、すぐに使えるワークフローである プロンプトを公開します。ツールはドメインごとにグループ化され、<product>_verb_noun の命名パターンに従います(例:jira_search_issues、bitbucket_get_pull_request)。
| サーバー | ツール | リソース | プロンプト |
|---|---|---|---|
| Jira | 288 | 4 | 4 |
| Confluence | 115 | 4 | 4 |
| Bitbucket | 120 | 4 | 4 |
Jira — 288 個のツール
| グループ | ツール | 対応範囲 |
|---|---|---|
issues | 71 | 検索(JQL)、作成/更新/ステータス遷移、コメント、作業ログ、リンク、添付ファイル、ウォッチャー、投票 |
projects | 48 | プロジェクト、バージョン、コンポーネント、ロール、カテゴリ |
users | 29 | ユーザーの検索/検索、グループ、割り当て可能なユーザーのクエリ |
workflows | 25 | ワークフロー、ステータス、スキーム |
agile | 22 | ボード、スプリント、バックログ、エピック |
admin | 93 | フィールド、画面、権限、通知/セキュリティスキーム、その他の管理設定の読み取り/書き込み |
Confluence — 115 個のツール
| グループ | ツール | 対応範囲 |
|---|---|---|
content | 32 | ページ/ブログ投稿の CRUD、本文、バージョン、ラベル、子ページ/子孫ページ、検索(CQL) |
spaces | 30 | スペース、スペースのコンテンツ、権限、ウォッチャー |
users | 22 | ユーザー、グループ、メンバーシップ |
admin | 11 | グローバル権限、アクセスモード、その他の管理設定の読み取り |
webhooks | 9 | Webhook の登録と管理 |
attachments | 11 | 添付ファイルのアップロード、一覧表示、更新、バイナリコンテンツ、ページの添付ファイル、埋め込み画像のダウンロード |
Bitbucket — 120 個のツール
| グループ | ツール | 対応範囲 |
|---|---|---|
repositories | 55 | リポジトリ、ブランチ、コミット、ファイル/参照(テキストとバイナリ)、差分、タグ、ラベル、設定 |
pullRequests | 30 | PR の CRUD、差分/変更、インラインコメントとファイルコメント、タスク、レビュー、マージ/却下、参加者 |
builds | 13 | ビルドステータスとコードインサイトレポート |
permissions | 8 | プロジェクト/リポジトリの権限付与 |
authentication | 6 | アクセストークン、SSH キー、GPG キー |
projects | 5 | プロジェクトの CRUD |
security | 3 | セキュリティ関連の読み取り |
すべてのツールには MCP アノテーション(読み取り専用か破壊的操作かを示すヒント)が付いています。また、一般的な識別子(プロジェクトキー、ボード ID、リポジトリスラッグ)には引数の 補完候補が用意されているため、対応クライアントで入力を自動補完できます。
クイックスタート
各パッケージには対話型の setup コマンドが用意されており、OS が提供する最も安全な場所(macOS のキーチェーン、またはそれ以外の場合は 0600 のファイル)に認証情報を保存します。製品ごとに一度実行してください。
npx jira-datacenter-mcp setup
npx confluence-datacenter-mcp setup
npx bitbucket-datacenter-mcp setup
セットアップでは、ホスト、API のベースパス、デフォルトのページサイズ、API トークンを入力します。その後、保存前に認証済みのリクエストを実際に送信してすべてを検証するため、ホストやトークンに誤りがあればすぐに検出されます。匿名アクセス(未認証)を許可するインスタンスでは、トークンを空欄にして 匿名アクセスを設定します。
セットアップ後は、環境変数を一切設定せずにサーバーが起動します。クライアントの接続をご覧ください。
明示的な設定を使いますか?
setupを省略し、代わりに環境変数または共有設定ファイルから認証情報を渡すこともできます。設定リファレンスをご覧ください。
スクリプト/非対話型セットアップ
セットアップでは、CI またはリモートブートストラップ向けのフラグを指定できます(一覧については --help を参照してください)。
| フラグ | 短縮形 | 説明 |
|---|---|---|
--host <value> | -H | ホスト(例:jira.example.com) |
--api-base-path <value> | -b | API ベースパスまたは完全な URL |
--token <value> | -t | API トークン(PAT) |
--username <value> | -u | Basic 認証用のユーザー名(--token の代替) |
--password <value> | -p | Basic 認証用のパスワード(--username と併用) |
--default-page-size <n> | -s | デフォルトのページサイズ(正の整数) |
--profile <name> | -P | 同じ製品の2つ目のインスタンス用の名前付きプロファイル |
--non-interactive | -n | プロンプトを表示せず、必須の値が不足している場合はゼロ以外のコードで終了します |
--help | -h | 使用方法を表示します |
# Fully scripted
npx jira-datacenter-mcp setup --non-interactive --host jira.example.com --token "$JIRA_TOKEN"
# Re-validate an already-stored token without re-entering it
npx jira-datacenter-mcp setup --non-interactive --host jira.example.com
--non-interactive モードでは、不足している値は既存の設定から解決され、最初の検証エラーでコマンドは 1 を返して終了します。CI のゲートとして利用できます。
クライアントの接続
setup で認証情報を保存すると、env ブロックは空にできます。以下の例では分かりやすさのため、認証情報をインラインで指定しています。setup を実行済みの場合は、env エントリーを削除してください。
*_HOST には、プロトコルを含めずにドメイン(および任意のポート)を設定してください。プロトコルは https:// が想定されます。標準以外のパスを指定する場合や http:// を強制する場合は、代わりに完全な URL を指定した *_API_BASE_PATH を使用してください(製品固有の API サフィックスは自動的に追加されるため、含めないでください)。
Claude Desktop
設定ファイル:~/Library/Application Support/Claude/claude_desktop_config.json(macOS)・%APPDATA%\Claude\claude_desktop_config.json(Windows)。必要なサーバーのみを残してください。
{
"mcpServers": {
"atlassian-jira-dc": {
"command": "npx",
"args": ["-y", "jira-datacenter-mcp"],
"env": { "JIRA_HOST": "jira.example.com", "JIRA_API_TOKEN": "your-token" }
},
"atlassian-confluence-dc": {
"command": "npx",
"args": ["-y", "confluence-datacenter-mcp"],
"env": { "CONFLUENCE_HOST": "confluence.example.com", "CONFLUENCE_API_TOKEN": "your-token" }
},
"atlassian-bitbucket-dc": {
"command": "npx",
"args": ["-y", "bitbucket-datacenter-mcp"],
"env": { "BITBUCKET_HOST": "bitbucket.example.com", "BITBUCKET_API_TOKEN": "your-token" }
}
}
}
setup を実行すると、次のように簡潔になります。
{
"mcpServers": {
"atlassian-jira-dc": { "command": "npx", "args": ["-y", "jira-datacenter-mcp"] }
}
}
Claude Code
# Project scope (writes .mcp.json); add -s user for all projects
claude mcp add atlassian-jira-dc \
-e JIRA_HOST=jira.example.com \
-e JIRA_API_TOKEN=your-token \
-- npx -y jira-datacenter-mcp
-e JIRA_HOST=… を -e JIRA_API_BASE_PATH=https://jira.example.com/rest に置き換えるか、setup を実行済みの場合は -e フラグをすべて削除してください。
Cursor とその他の MCP クライアント
stdio MCP クライアントであれば、どれでも動作します。コマンド npx -y <product>-datacenter-mcp を指定し、クライアントの env 機能を使って認証情報を渡してください(または setup を利用してください)。リモート/複数クライアントでのホスティングには、HTTP トランスポートを使用してください。
認証とトークン
リクエストごとに解決される3つのモードがあります。
- パーソナルアクセストークン(推奨) —
*_API_TOKENを設定します。Authorization: Bearer <token>として送信されます。 - Basic 認証 —
*_USERNAMEと*_PASSWORDを設定します(PAT がない古いインスタンス向け)。両方が設定されている場合は、トークンより優先されます。 - 匿名 — どちらも設定しません。
Authorizationヘッダーは送信されず、認証なしの読み取りを許可するインスタンスで動作します。
パーソナルアクセストークンの生成
| 製品 | Web UI 内の場所 |
|---|---|
| Jira | プロフィール → パーソナルアクセストークン → トークンを作成 |
| Confluence | プロフィール/設定 → パーソナルアクセストークン → トークンを作成 |
| Bitbucket | アカウント管理 → HTTP アクセストークン → トークンを作成 |
トークンには必要最小限の権限を付与し、すぐにコピーしてください。トークンが表示されるのは一度だけです。
設定リファレンス
製品ごとの変数
各製品はそれぞれのプレフィックス(JIRA_*、CONFLUENCE_*、BITBUCKET_*)を読み取ります。
| 変数 | 必須 | 説明 |
|---|---|---|
*_HOST | ✅¹ | ドメイン(およびポート)、プロトコルなし。例:jira.example.com |
*_API_BASE_PATH | ✅¹ | プロトコルを含む完全なベース URL。*_HOST の代替 |
*_API_TOKEN | — | パーソナルアクセストークン(Bearer 認証) |
*_USERNAME / *_PASSWORD | — | Basic 認証のペア(トークンの代替) |
*_DEFAULT_PAGE_SIZE | — | ページ分割されたエンドポイントのデフォルトページサイズ |
¹ *_HOST または *_API_BASE_PATH のいずれか1つを指定してください。API サフィックスは自動で追加されるため、含めないでください。Jira /rest(および /api/2)、Confluence /rest/api、Bitbucket /rest(および /api/latest)。
グローバル変数
| 変数 | デフォルト | 説明 |
|---|---|---|
ATLASSIAN_DC_MCP_CONFIG_FILE | — | 共有 dotenv ファイルへの絶対パス(下記参照)。設定されているのにファイルが見つからない場合は、すぐに失敗します |
ATLASSIAN_DC_MCP_PROFILE | — | 名前付きプロファイルに保存された認証情報を選択します(複数インスタンス(プロファイル)) |
ATLASSIAN_DC_MCP_HTTP_PORT | — | stdio の代わりに HTTP でサービスを提供します |
ATLASSIAN_DC_MCP_LOG_LEVEL | info | debug · info · warn · error |
ATLASSIAN_DC_MCP_REQUEST_TIMEOUT_MS | 30000 | Atlassian API へのリクエストごとのタイムアウト |
ATLASSIAN_DC_MCP_MAX_RESPONSE_CHARS | 100000 | ツールの結果の文字数上限。0 にすると上限が無効になります |
ATLASSIAN_DC_MCP_MAX_INLINE_BYTES | 1048576 images262144 other | outputPath の指定を必要とせず、インラインで返すダウンロードファイルの最大サイズです。設定すると、画像とその他の両方に同じ値が適用されます。0 にすると、常に outputPath が必要になります |
優先順位
起動時に、各設定キーは次の順にソースを確認し、最初に見つかった空でない値が使われます。
| 優先度 | ソース | 提供する値 |
|---|---|---|
| 100 | process.env | すべてのキー |
| 80 | env ファイル — ATLASSIAN_DC_MCP_CONFIG_FILE、または ./.env | すべてのキー |
| 60 | ホームファイル — ~/.atlassian-dc-mcp/<product>.env(Windows では %USERPROFILE%\…) | すべてのキー |
| 40 | macOS Keychain — サービス atlassian-dc-mcp、アカウント <product>-token / <product>-password | トークン、パスワード |
プロセス環境変数が常に優先されるため、1 回のセッションに限り、保存済みの認証情報を上書きできます。Keychain の読み込みは起動時に 1 回だけキャッシュされ、ツール呼び出し時にシェルコマンドを実行することはありません。
共有設定ファイル
1 台のマシンで複数の MCP ホスト間で同じ認証情報を再利用するには、1 つの dotenv ファイルに *_HOST / *_API_TOKEN / … 変数を記述し、絶対パスを指定した ATLASSIAN_DC_MCP_CONFIG_FILE で各サーバーからそのファイルを参照します。
JIRA_HOST=jira.example.com
JIRA_API_TOKEN=your-jira-token
CONFLUENCE_HOST=confluence.example.com
CONFLUENCE_API_TOKEN=your-confluence-token
BITBUCKET_HOST=bitbucket.example.com
BITBUCKET_API_TOKEN=your-bitbucket-token
{
"mcpServers": {
"atlassian-jira-dc": {
"command": "npx",
"args": ["-y", "jira-datacenter-mcp"],
"env": { "ATLASSIAN_DC_MCP_CONFIG_FILE": "/Users/you/.config/atlassian-dc-mcp.env" }
}
}
}
機能
認証情報の保存場所
setup はシークレットとそれ以外を分けて保存します。
- macOS — トークン/パスワードはログイン Keychain に保存されます(サービス
atlassian-dc-mcp)。書き込みが成功すると、ホームファイル内のコピーは消去されるため、セキュリティの低い場所に二重に保存されることはありません。 - Linux — ホームファイル
~/.atlassian-dc-mcp/<product>.env。パーミッションは0600(自分のユーザーのみ)。 - Windows —
%USERPROFILE%\.atlassian-dc-mcp\<product>.env。ユーザープロファイルの ACL を継承します。
シークレットではないフィールド(ホスト、ベースパス、ページサイズ)は、常にホームファイルに保存されます。
複数インスタンス(プロファイル)
同じ製品のインスタンスを 2 つ実行する場合(例:2 つの Jira サイト)、セットアップ時にそれぞれ --profile を指定し、起動時に ATLASSIAN_DC_MCP_PROFILE で選択します。
npx jira-datacenter-mcp setup --profile work --host jira-work.example.com --token "$WORK_TOKEN"
npx jira-datacenter-mcp setup --profile personal --host jira-personal.example.com --token "$PERSONAL_TOKEN"
{
"mcpServers": {
"jira-work": { "command": "npx", "args": ["-y", "jira-datacenter-mcp"], "env": { "ATLASSIAN_DC_MCP_PROFILE": "work" } },
"jira-personal": { "command": "npx", "args": ["-y", "jira-datacenter-mcp"], "env": { "ATLASSIAN_DC_MCP_PROFILE": "personal" } }
}
}
プロファイルによって変わるのは、使用するホームファイル(<product>.<profile>.env)と Keychain アカウントだけです。
トランスポート:stdio と HTTP
デフォルトでは、各サーバーは stdio で通信します。これは Claude Desktop などのローカルホストが想定する方式です。ATLASSIAN_DC_MCP_HTTP_PORT に正の整数を設定すると、代わりに Streamable HTTP トランスポート でサービスを提供します(リモート/複数クライアントからのアクセス用)。1 つのプロセスで両方を同時に使用することはできません。
ATLASSIAN_DC_MCP_HTTP_PORT=3000 npx jira-datacenter-mcp
HTTP トランスポートには、設定済みの Atlassian 認証情報以外の認証機能はありません。localhost の外部に公開する前に、リバースプロキシ、TLS、アクセス制御を自分で設定してください。
耐障害性
- 再試行 — 一時的な障害(HTTP 429 および 5xx)は、指数バックオフとジッターを使用して再試行されます(最大 3 回)。サーバーから提供された
Retry-Afterヘッダーがある場合は、計算されたバックオフの代わりに適用されます(最大 30 秒)。4xx のクライアントエラーは再試行されません。 - レスポンス上限 — ツールの結果が
ATLASSIAN_DC_MCP_MAX_RESPONSE_CHARS(デフォルトは 100k 文字)を超える場合、マーカーを付けて切り詰められるため、広範なクエリを 1 回実行してもコンテキストウィンドウが埋め尽くされません。無効にするには0を設定します。 - ページネーションの制限 — 小規模で自然に上限のあるリスト(プロジェクトのバージョン、ページのラベルなど)は 1 つの結果に自動でまとめられます。一方、終わりのない検索(JQL/CQL、リポジトリ一覧など)は、無制限のデータを返さないよう、単一ページのままエージェント主導で処理されます。
- バイナリのダウンロード — 各ダウンロードツールでは、絶対パスの
outputPathを任意で指定できます。指定するとファイルがディスクに書き込まれ、メタデータのみが返されるため、サイズは問題になりません。指定しない場合、バイト列は独立したコンテンツブロック(画像、または base64 のリソースブロブ)として返され、レスポンス上限の対象外となります。ATLASSIAN_DC_MCP_MAX_INLINE_BYTESを超えるデータは切り詰めず、outputPathを指定するよう案内して拒否されます。上限は、ホストが画像としてデコードするラスター画像では 1 MiB、それ以外では 256 KiB です。それ以外のデータは、ホストがテキストとしてしか読み取れない base64 形式になります。
ロギング
すべてのログは stderr に 1 行 1 JSON オブジェクト({"timestamp","level","message",…})として出力され、stdout は stdio プロトコル用に保たれます。ログの詳細度は ATLASSIAN_DC_MCP_LOG_LEVEL で設定します。
ATLASSIAN_DC_MCP_LOG_LEVEL=debug npx jira-datacenter-mcp
開発
pnpm ワークスペースのモノレポです。packages/ の下に 4 つのパッケージがあります。core(共有ランタイム)と、製品ごとのパッケージです。
前提条件: Node.js ≥ 26 · pnpm(packageManager によって 11.9.0 に固定) · 接続可能な Atlassian DC/Server インスタンス。
git clone https://github.com/MrRefactoring/atlassian-dc-mcp.git
cd atlassian-dc-mcp
pnpm install
pnpm build # build all packages (core first — others depend on its types)
pnpm typecheck # tsc --noEmit across src + tests
pnpm lint # ESLint (flat config, whole repo)
pnpm test # unit tests (Vitest); the API client is mocked — no network
pnpm dev:jira # watch-mode build for one product (also :confluence, :bitbucket)
--filter を使うと、単一のパッケージをビルドまたはテストできます。
pnpm --filter jira-datacenter-mcp build
pnpm --filter jira-datacenter-mcp test
ライブスモークテスト
ユニットテストでは API クライアントをモックするため、実際のインスタンスに対する認証、ネットワーク、API 形式の回帰を検出できません。各製品では、設定がない場合に失敗扱いではなく自動的にスキップする、オプトイン方式の読み取り専用ライブテストを実行できます。
cp packages/jira/.env.live.example packages/jira/.env.live
# edit .env.live with a real host + token (or username/password)
pnpm --filter jira-datacenter-mcp test -- jira-service.live
.env.live は gitignore の対象です。実際の認証情報は絶対にコミットしないでください。
リリース
バージョン管理と公開には Changesets を使用します。4 つのパッケージはすべて同時に更新されます(fixed グループ)。動作を変更する PR には、次のいずれかを含めてください。
pnpm changeset
生成された .changeset/*.md を変更と一緒にコミットしてください。作成された「Version Packages」PR をマージすると、npm と MCP Registry に公開されます。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。