mcpField
A
Atlassian Bitbucket MCP Server

Atlassian Bitbucket MCP Server

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

Atlassian Bitbucket MCP Server について

Atlassian Bitbucket MCP Server は、Node.js と TypeScript で実装された MCP サーバーです。Claude や Cursor などの AI アシスタントから、Bitbucket Cloud のワークスペース、リポジトリ、プルリクエストを操作できます。少数の汎用ツールで Bitbucket REST API の任意のエンドポイントに対応しており、開発者、チームリーダー、DevOps エンジニアを想定しています。

主な機能

  1. 016 つの汎用ツールで任意の Bitbucket API エンドポイントに対応
  2. 02JMESPath による返却データのフィルタリング
  3. 03既定で TOON 形式を出力しトークン消費を抑制
  4. 04プルリクエストの一覧表示、コメント、承認、マージ
  5. 05スコープ付き API トークンと従来のアプリパスワードに対応

活用シーン

  1. 01ワークスペース、リポジトリ、ブランチ、コミット履歴の確認
  2. 02レビュー待ちのプルリクエストの検索とコメント追加
  3. 03機能ブランチと main ブランチの差分比較

MCP 対応

STDIO 経由の MCP サーバーとして動作し、Claude Desktop や Cursor などの MCP クライアントに bb_get、bb_post、bb_put、bb_patch、bb_delete、bb_clone の各ツールを提供します。

設定

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

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

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

パッケージ
npm@aashari/mcp-server-atlassian-bitbucket

ツール

6

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
jqstringいいえ応答をフィルター/変換するための JMESPath 式です。重要:必要なフィールドだけを抽出してトークンコストを削減するため、必ず使用してください。例:「values[*].{name: name, slug: slug}」(特定のフィールドを抽出)、「values[0]」(最初の結果)、「values[*].name」(名前のみ)。https://jmespath.org を参照してください。
pathstringはいBitbucket API エンドポイントのパス(ベース URL を除く)。「/」で始まる必要があります。例:「/workspaces」、「/repositories/{workspace}/{repo_slug}」、「/repositories/{workspace}/{repo_slug}/pullrequests/{id}」
queryParamsobjectいいえオプションのクエリパラメーターをキーと値のペアで指定します。例:{"pagelen": "25", "page": "2", "q": "state=\"OPEN\"", "fields": "values.title,values.state"}
outputFormatenumいいえ出力形式:「toon」(デフォルト、トークンを 30~60% 削減)または「json」。TOON は表形式の配列と最小限の構文により LLM 向けに最適化されています。toon | json

詳細

AI を Bitbucket リポジトリに接続する

Claude、Cursor AI、その他の AI アシスタントをリポジトリ、プルリクエスト、コードに直接接続して、Bitbucket での作業を変革しましょう。すぐにインサイトを得て、コードレビューを自動化し、開発ワークフローを効率化できます。

NPM Version License

できること

  • コードについて AI に質問する:「メインリポジトリの最新コミットは何ですか?」
  • PR のインサイトを得る:「レビューが必要なオープンプルリクエストをすべて表示して」
  • コードベースを検索する:「認証関数を使用している JavaScript ファイルをすべて検索して」
  • コードの変更をレビューする:「機能ブランチとメインブランチの違いを比較して」
  • プルリクエストを管理する:「new-feature ブランチの PR を作成して」
  • ワークフローを自動化する:「テスト結果を PR #123 にコメントとして追加して」

最適な対象

  • コードレビューやリポジトリ管理で AI の支援を受けたい開発者
  • プロジェクトの状況やプルリクエストのアクティビティをすばやく把握したいチームリーダー
  • リポジトリのワークフローやブランチ管理を自動化したいDevOps エンジニア
  • 自然言語で Bitbucket を操作したいすべての方

必要条件

  • Node.js 18.0.0 以降
  • Bitbucket Cloud アカウント(Bitbucket Server/Data Center ではありません)
  • 認証情報:スコープ付き API トークン(推奨)またはアプリパスワード(レガシー)

クイックスタート

2 分で使い始められます。

1. Bitbucket の認証情報を取得する

IMPORTANT:Bitbucket アプリパスワードは非推奨となり、2026 年 6 月までに削除される予定です。新規セットアップでは、スコープ付き API トークンの使用をおすすめします。

オプション A:スコープ付き API トークン(推奨 — 将来に備えた方法)

Bitbucket ではアプリパスワードが非推奨になります。代わりに、新しいスコープ付き API トークンを使用してください。

  1. Atlassian API トークンにアクセスします
  2. **「スコープ付き API トークンを作成」**をクリックします
  3. 製品として **「Bitbucket」**を選択します
  4. 適切なスコープを選択します。
    • 読み取り専用アクセスの場合:repository、workspace
    • すべての機能を使用する場合:repository、workspace、pullrequest
  5. 生成されたトークンをコピーします(ATATT で始まります)
  6. Atlassian のメールアドレスをユーザー名として使用します
オプション B:アプリパスワード(レガシー — 非推奨になる予定)

Bitbucket アプリパスワードを生成します(レガシー方式)。

  1. Bitbucket アプリパスワードにアクセスします
  2. 「アプリパスワードを作成」をクリックします
  3. 「AI Assistant」などの名前を付けます
  4. 次の権限を選択します。
    • ワークスペース:読み取り
    • リポジトリ:読み取り(AI に PR やコメントを作成させる場合は書き込みも選択)
    • プルリクエスト:読み取り(PR を管理する場合は書き込みも選択)
2. すぐに試す
# Set your credentials (choose one method)

# Method 1: Scoped API Token (recommended - future-proof)
export ATLASSIAN_USER_EMAIL="[email protected]"
export ATLASSIAN_API_TOKEN="your_scoped_api_token"  # Token starting with ATATT

# OR Method 2: Legacy App Password (will be deprecated June 2026)
export ATLASSIAN_BITBUCKET_USERNAME="your_username"
export ATLASSIAN_BITBUCKET_APP_PASSWORD="your_app_password"

# List your workspaces
npx -y @aashari/mcp-server-atlassian-bitbucket get --path "/workspaces"

# List repositories in a workspace
npx -y @aashari/mcp-server-atlassian-bitbucket get --path "/repositories/your-workspace"

# Get pull requests for a repository
npx -y @aashari/mcp-server-atlassian-bitbucket get --path "/repositories/your-workspace/your-repo/pullrequests"

# Get repository details with JMESPath filtering
npx -y @aashari/mcp-server-atlassian-bitbucket get --path "/repositories/your-workspace/your-repo" --jq "{name: name, language: language}"

AI アシスタントに接続する

Claude Desktop を使用する場合

Claude の設定ファイル(~/.claude/claude_desktop_config.json)に次の内容を追加します。

オプション 1:スコープ付き API トークン(推奨 — 将来に備えた方法)

{
  "mcpServers": {
    "bitbucket": {
      "command": "npx",
      "args": ["-y", "@aashari/mcp-server-atlassian-bitbucket"],
      "env": {
        "ATLASSIAN_USER_EMAIL": "[email protected]",
        "ATLASSIAN_API_TOKEN": "your_scoped_api_token"
      }
    }
  }
}

オプション 2:レガシーのアプリパスワード(2026 年 6 月に非推奨になる予定)

{
  "mcpServers": {
    "bitbucket": {
      "command": "npx",
      "args": ["-y", "@aashari/mcp-server-atlassian-bitbucket"],
      "env": {
        "ATLASSIAN_BITBUCKET_USERNAME": "your_username",
        "ATLASSIAN_BITBUCKET_APP_PASSWORD": "your_app_password"
      }
    }
  }
}

Claude Desktop を再起動すると、ステータスバーに bitbucket サーバーが表示されます。

その他の AI アシスタントを使用する場合

ほとんどの AI アシスタントは MCP をサポートしています。次のいずれかを選択できます。

オプション 1:npx を使用する(推奨 — 常に最新バージョン): AI アシスタントが次を実行するように設定します:npx -y @aashari/mcp-server-atlassian-bitbucket

オプション 2:グローバルにインストールする:

npm install -g @aashari/mcp-server-atlassian-bitbucket

続いて、STDIO トランスポートを使用して MCP サーバーを利用するように AI アシスタントを設定します。

対応する AI アシスタント:

  • Claude Desktop(公式サポート)
  • Cursor AI
  • Continue.dev
  • Cline
  • MCP 対応クライアント全般
代替方法:設定ファイル

システム全体の設定として、~/.mcp/configs.json を作成します。

オプション 1:スコープ付き API トークン(推奨 — 将来も使用可能)

{
  "bitbucket": {
    "environments": {
      "ATLASSIAN_USER_EMAIL": "[email protected]",
      "ATLASSIAN_API_TOKEN": "your_scoped_api_token",
      "BITBUCKET_DEFAULT_WORKSPACE": "your_main_workspace"
    }
  }
}

オプション 2:従来のアプリパスワード(2026 年 6 月に非推奨になります)

{
  "bitbucket": {
    "environments": {
      "ATLASSIAN_BITBUCKET_USERNAME": "your_username",
      "ATLASSIAN_BITBUCKET_APP_PASSWORD": "your_app_password",
      "BITBUCKET_DEFAULT_WORKSPACE": "your_main_workspace"
    }
  }
}

代替の設定キー: "bitbucket" の代わりに、"atlassian-bitbucket"、"@aashari/mcp-server-atlassian-bitbucket"、または "mcp-server-atlassian-bitbucket" も使用できます。

利用可能なツール

この MCP サーバーは、Bitbucket API の任意のエンドポイントにアクセスできる汎用ツールを 6 つ提供します。

ツール説明パラメーター
bb_getBitbucket API の任意のエンドポイントに GET し、データを読み取りますpath、queryParams?、jq?、outputFormat?
bb_post任意のエンドポイントに POST し、リソースを作成しますpath、body、queryParams?、jq?、outputFormat?
bb_put任意のエンドポイントに PUT し、リソースを置き換えますpath、body、queryParams?、jq?、outputFormat?
bb_patch任意のエンドポイントに PATCH し、部分更新を行いますpath、body、queryParams?、jq?、outputFormat?
bb_delete任意のエンドポイントに DELETE し、リソースを削除しますpath、queryParams?、jq?、outputFormat?
bb_cloneリポジトリをローカルにクローンしますworkspaceSlug?、repoSlug、targetPath
ツールのパラメーター

すべての API ツールは、次の共通パラメーターに対応しています。

  • path(必須):/ で始まる API エンドポイントのパス(/2.0 プレフィックスは自動的に追加されます)
  • queryParams(任意):クエリパラメーターのキーと値の組(例:{"pagelen": "25", "page": "2"})
  • jq(任意):レスポンスをフィルタリング/変換する JMESPath 式。トークンのコストを削減できるため、強く推奨されます
  • outputFormat(任意):"toon"(デフォルト、トークン数を 30~60% 削減)または "json"
  • body(POST/PUT/PATCH で必須):JSON オブジェクト形式のリクエストボディ
一般的な API パス

すべてのパスの先頭には /2.0 が自動的に追加されます。Bitbucket Cloud REST API 2.0 の全リファレンス:https://developer.atlassian.com/cloud/bitbucket/rest/

ワークスペースとリポジトリ:

  • /workspaces - すべてのワークスペースを一覧表示
  • /repositories/{workspace} - ワークスペース内のリポジトリを一覧表示
  • /repositories/{workspace}/{repo} - リポジトリの詳細を取得
  • /repositories/{workspace}/{repo}/refs/branches - ブランチを一覧表示
  • /repositories/{workspace}/{repo}/refs/branches/{branch_name} - ブランチを取得/削除
  • /repositories/{workspace}/{repo}/commits - コミットを一覧表示
  • /repositories/{workspace}/{repo}/commits/{commit} - コミットの詳細を取得
  • /repositories/{workspace}/{repo}/src/{commit}/{filepath} - ファイルの内容を取得

プルリクエスト:

  • /repositories/{workspace}/{repo}/pullrequests - PR を一覧表示(GET)または作成(POST)
  • /repositories/{workspace}/{repo}/pullrequests/{id} - PR を取得/更新/削除
  • /repositories/{workspace}/{repo}/pullrequests/{id}/diff - PR の差分を取得
  • /repositories/{workspace}/{repo}/pullrequests/{id}/comments - PR のコメントを一覧表示/追加
  • /repositories/{workspace}/{repo}/pullrequests/{id}/approve - PR を承認(POST)または承認を取り消し(DELETE)
  • /repositories/{workspace}/{repo}/pullrequests/{id}/request-changes - 変更をリクエスト(POST)
  • /repositories/{workspace}/{repo}/pullrequests/{id}/merge - PR をマージ(POST)
  • /repositories/{workspace}/{repo}/pullrequests/{id}/decline - PR を却下(POST)

比較:

  • /repositories/{workspace}/{repo}/diff/{source}..{destination} - ブランチ/コミットを比較

その他のリソース:

  • /repositories/{workspace}/{repo}/issues - 課題を一覧表示/管理
  • /repositories/{workspace}/{repo}/downloads - ダウンロードを一覧表示/管理
  • /repositories/{workspace}/{repo}/pipelines - Bitbucket Pipelines にアクセス
  • /repositories/{workspace}/{repo}/deployments - デプロイメントを表示
TOON 出力形式

TOON とは? Token-Oriented Object Notation は、JSON と比べてトークン消費を 30~60%削減する、LLM 向けに最適化された形式です。すべてのデータを保持しながら、表形式の配列と最小限の構文を使用します。

デフォルトの動作: すべてのツールはデフォルトで TOON 形式を返します。必要に応じて、outputFormat: "json" で上書きできます。

比較例:

JSON (verbose):
{
  "values": [
    {"name": "repo1", "slug": "repo-1"},
    {"name": "repo2", "slug": "repo-2"}
  ]
}

TOON (efficient):
values:
  name  | slug
  repo1 | repo-1
  repo2 | repo-2

詳細はこちら:https://github.com/toon-format/toon

JMESPath フィルタリング

すべてのツールは、特定のデータを抽出してトークンコストをさらに削減するための、オプションの JMESPath(jq)フィルタリングに対応しています。

重要: レスポンスのフィルタリングには、必ず jq を使用してください。フィルタリングされていない API レスポンスは非常に大きくなる可能性があり、トークンコストも高くなります。

# Get just repository names
npx -y @aashari/mcp-server-atlassian-bitbucket get \
  --path "/repositories/myworkspace" \
  --jq "values[].name"

# Get PR titles and states (custom object shape)
npx -y @aashari/mcp-server-atlassian-bitbucket get \
  --path "/repositories/myworkspace/myrepo/pullrequests" \
  --jq "values[].{title: title, state: state, author: author.display_name}"

# Get first result only
npx -y @aashari/mcp-server-atlassian-bitbucket get \
  --path "/repositories/myworkspace" \
  --jq "values[0]"

# Explore schema with one item first, then filter
npx -y @aashari/mcp-server-atlassian-bitbucket get \
  --path "/workspaces" \
  --query-params '{"pagelen": "1"}'

よく使われる JMESPath パターン:

  • values[*].fieldName - すべての項目から単一のフィールドを抽出
  • values[*].{key1: field1, key2: field2} - カスタムのオブジェクト形式を作成
  • values[0] - 最初の項目のみを取得
  • values[:5] - 最初の 5 項目を取得
  • values[?state=='OPEN'] - 条件でフィルタリング

JMESPath のリファレンス全文:https://jmespath.org

実際の使用例

リポジトリを確認する

AI アシスタントに尋ねます:

  • 「メインのワークスペースにあるすべてのリポジトリを一覧表示して」
  • 「backend-api リポジトリの詳細を表示して」
  • 「feature-auth ブランチのコミット履歴は?」
  • 「main ブランチにある src/config.js の内容を取得して」
プルリクエストを管理する

AI アシスタントに尋ねます:

  • 「レビューが必要な、オープン状態のプルリクエストをすべて表示して」
  • 「コードの変更内容を含めて、プルリクエスト #42 の詳細を取得して」
  • 「feature-login から main ブランチへのプルリクエストを作成して」
  • 「テストに合格したと PR #15 にコメントを追加して」
  • 「プルリクエスト #33 を承認して」
ブランチとコードを操作する

AI アシスタントに尋ねます:

  • 「feature ブランチと main ブランチを比較して」
  • 「user-service リポジトリのすべてのブランチを一覧表示して」
  • 「コミット abc123 と def456 の差分を表示して」

高度な使い方

コストを最適化するためのヒント
  1. JMESPath フィルタリングを必ず使用する - 必要なフィールドだけを抽出し、トークンの使用量を最小限に抑えます
  2. ページネーションを適切に使用する - pagelen クエリパラメーターを設定して、結果を制限します(例:{"pagelen": "10"})
  3. まずスキーマを確認する - フィルターなしで項目を 1 つ取得して利用可能なフィールドを確認し、その後の呼び出しでフィルタリングします
  4. TOON 形式を活用する - デフォルトの TOON 形式は、JSON と比べてトークンを 30~60%節約します
  5. フィルタリングにはクエリパラメーターを使用する - Bitbucket の q パラメーターを使い、結果が返される前にサーバー側でフィルタリングします
クエリパラメーターの例
# Filter PRs by state
npx -y @aashari/mcp-server-atlassian-bitbucket get \
  --path "/repositories/workspace/repo/pullrequests" \
  --query-params '{"state": "OPEN", "pagelen": "5"}' \
  --jq "values[*].{id: id, title: title}"

# Search PRs by title
npx -y @aashari/mcp-server-atlassian-bitbucket get \
  --path "/repositories/workspace/repo/pullrequests" \
  --query-params '{"q": "title~\"bug\""}' \
  --jq "values[*].{id: id, title: title}"

# Filter repositories by role
npx -y @aashari/mcp-server-atlassian-bitbucket get \
  --path "/repositories/workspace" \
  --query-params '{"role": "owner", "pagelen": "10"}'

# Sort by updated date
npx -y @aashari/mcp-server-atlassian-bitbucket get \
  --path "/repositories/workspace/repo/pullrequests" \
  --query-params '{"sort": "-updated_on"}' \
  --jq "values[*].{id: id, title: title, updated: updated_on}"
大きなレスポンスの扱い

大きなペイロードを返す API を扱う場合:

  1. スパースフィールドセットを使用する - fields クエリパラメーターを追加します:{"fields": "values.name,values.slug"}
  2. 結果をページネーションする - pagelen パラメーターと page パラメーターを使用します
  3. データソース側でフィルタリングする - Bitbucket の q パラメーターを使って、サーバー側でフィルタリングします
  4. JQ で後処理する - JMESPath でレスポンスをさらにフィルタリングします

すべての手法を組み合わせた例:

npx -y @aashari/mcp-server-atlassian-bitbucket get \
  --path "/repositories/workspace/repo/pullrequests" \
  --query-params '{"state": "OPEN", "pagelen": "10", "fields": "values.id,values.title,values.state"}' \
  --jq "values[*].{id: id, title: title}"
AI とのやり取りにおけるベストプラクティス
  1. パスを具体的に指定する - 正確なワークスペース/リポジトリのスラッグを使用します(大文字と小文字を区別します)
  2. まず CLI でテストする - AI コンテキストで使用する前に、パスと認証を確認します
  3. 説明的な JQ フィルターを使用する - AI がより適切に理解できるよう、意味のあるフィールド名を抽出します
  4. トラブルシューティングには DEBUG を有効にする - Bitbucket API に送信される内容を正確に確認します
  5. API の制限を確認する - Bitbucket Cloud にはレート制限があるため、フィルタリングを使用して呼び出し回数を減らします

CLI コマンド

CLI では、MCP ツールと同じ操作をターミナルから直接実行できます。すべてのコマンドは JSON 出力を返します(TOON ではありません。TOON は MCP モードでのみ使用されます)。

利用可能なコマンド
# Get help
npx -y @aashari/mcp-server-atlassian-bitbucket --help

# GET request
npx -y @aashari/mcp-server-atlassian-bitbucket get \
  --path "/workspaces" \
  --jq "values[*].{name: name, slug: slug}"

# GET with query parameters
npx -y @aashari/mcp-server-atlassian-bitbucket get \
  --path "/repositories/myworkspace/myrepo/pullrequests" \
  --query-params '{"state": "OPEN", "pagelen": "10"}' \
  --jq "values[*].{id: id, title: title}"

# POST request (create a PR)
npx -y @aashari/mcp-server-atlassian-bitbucket post \
  --path "/repositories/myworkspace/myrepo/pullrequests" \
  --body '{"title": "My PR", "source": {"branch": {"name": "feature"}}, "destination": {"branch": {"name": "main"}}}' \
  --jq "{id: id, title: title}"

# POST with query parameters
npx -y @aashari/mcp-server-atlassian-bitbucket post \
  --path "/repositories/myworkspace/myrepo/pullrequests/42/comments" \
  --body '{"content": {"raw": "Looks good!"}}' \
  --query-params '{"fields": "id,content"}' \
  --jq "{id: id, content: content.raw}"

# PUT request (replace resource)
npx -y @aashari/mcp-server-atlassian-bitbucket put \
  --path "/repositories/myworkspace/myrepo" \
  --body '{"description": "Updated description", "is_private": true}'

# PATCH request (partial update)
npx -y @aashari/mcp-server-atlassian-bitbucket patch \
  --path "/repositories/myworkspace/myrepo/pullrequests/123" \
  --body '{"title": "Updated PR title"}'

# DELETE request
npx -y @aashari/mcp-server-atlassian-bitbucket delete \
  --path "/repositories/myworkspace/myrepo/refs/branches/old-branch"

# Clone repository
npx -y @aashari/mcp-server-atlassian-bitbucket clone \
  --workspace-slug myworkspace \
  --repo-slug myrepo \
  --target-path /absolute/path/to/parent/directory
CLI オプション

get コマンドと delete コマンドの場合:

  • -p, --path <path>(必須)- API エンドポイントのパス
  • -q, --query-params <json>(任意)- JSON 文字列形式のクエリパラメーター
  • --jq <expression>(任意)- JMESPath フィルター式

post コマンド、put コマンド、patch コマンドの場合:

  • -p, --path <path>(必須)- API エンドポイントのパス
  • -b, --body <json>(必須)- JSON 文字列形式のリクエスト本文
  • -q, --query-params <json>(任意)- JSON 文字列形式のクエリパラメーター
  • --jq <expression>(任意)- JMESPath フィルター式

clone コマンドの場合:

  • --workspace-slug <slug>(任意)- ワークスペースのスラッグ(指定しない場合はデフォルトを使用します)
  • --repo-slug <slug>(必須)- リポジトリのスラッグ
  • --target-path <path>(必須)- リポジトリのクローン先となる親ディレクトリの絶対パス

デバッグ

デバッグモードを有効にする

詳細なログを表示するには、DEBUG 環境変数を設定します。

# For CLI testing
DEBUG=true npx -y @aashari/mcp-server-atlassian-bitbucket get --path "/workspaces"

# For Claude Desktop - add to config
{
  "mcpServers": {
    "bitbucket": {
      "command": "npx",
      "args": ["-y", "@aashari/mcp-server-atlassian-bitbucket"],
      "env": {
        "DEBUG": "true",
        "ATLASSIAN_USER_EMAIL": "...",
        "ATLASSIAN_API_TOKEN": "..."
      }
    }
  }
}

ログファイル: MCP モードの実行時、ログは ~/.mcp/data/@aashari-mcp-server-atlassian-bitbucket.[session-id].log に書き込まれます。

HTTP モードでテストする

対話形式でデバッグするには、HTTP モードでサーバーを実行し、MCP Inspector を使用します。

# Set credentials first
export ATLASSIAN_USER_EMAIL="[email protected]"
export ATLASSIAN_API_TOKEN="your_token"
export DEBUG=true

# Start HTTP server with MCP Inspector
npx -y @aashari/mcp-server-atlassian-bitbucket
# Then in another terminal:
PORT=3000 npm run mcp:inspect

ツールをテストして、リクエストとレスポンスのデータを確認できるビジュアルインターフェースが開きます。

よくある問題

Claude Desktop にサーバーが表示されない場合:

  1. 設定ファイルの構文を確認します(有効な JSON であること)
  2. Claude Desktop を完全に再起動します
  3. Claude Desktop のログを確認します:~/Library/Logs/Claude/mcp*.log(macOS)

ツールが動作しない場合:

  1. DEBUG モードを有効にして、詳細なエラーを確認します
  2. まず CLI でテストし、MCP と認証情報のどちらに問題があるかを切り分けます
  3. API パスが正しいことを確認します(大文字と小文字を区別します)

トラブルシューティング

「認証に失敗しました」または「403 Forbidden」
  1. 適切な認証方法を選択します:

    • 標準の Atlassian 方式(推奨):Atlassian アカウントのメールアドレスと API トークンを使用します(すべての Atlassian サービスで利用できます)
    • Bitbucket 固有の方式(レガシー):Bitbucket のユーザー名とアプリパスワードを使用します(Bitbucket のみ)
  2. スコープ付き API トークンの場合(推奨):

    • Atlassian API Tokens にアクセスします
    • トークンが有効で、適切なスコープが設定されていることを確認します
    • 必要なスコープ:repository、workspace(PR 管理には pullrequest を追加します)
    • トークンは ATATT で始まる必要があります
  3. Bitbucket アプリパスワードの場合(レガシー):

    • Bitbucket App Passwords にアクセスします
    • アプリパスワードに適切な権限が設定されていることを確認します
    • アプリパスワードは 2026 年 6 月までに廃止されることに注意してください
  4. 認証情報を確認します:

    # Test credentials with CLI
    export ATLASSIAN_USER_EMAIL="[email protected]"
    export ATLASSIAN_API_TOKEN="your_token"
    npx -y @aashari/mcp-server-atlassian-bitbucket get --path "/workspaces"
    
  5. 環境変数の命名:

    • スコープ付きトークンには ATLASSIAN_USER_EMAIL と ATLASSIAN_API_TOKEN を使用します
    • アプリパスワードには ATLASSIAN_BITBUCKET_USERNAME と ATLASSIAN_BITBUCKET_APP_PASSWORD を使用します
    • ATLASSIAN_SITE_NAME は使用しないでください。Bitbucket Cloud では必要ありません
「リソースが見つかりません」または「404」
  1. API パスを確認します:

    • パスでは大文字と小文字が区別されます
    • 表示名ではなく、ワークスペースのスラッグ(URL に記載)を使用します
    • 例:リポジトリの URL が https://bitbucket.org/myteam/my-repo の場合は、myteam と my-repo を使用します
  2. リソースが存在することを確認します:

    # List workspaces to find the correct slug
    npx -y @aashari/mcp-server-atlassian-bitbucket get --path "/workspaces"
    
Claude Desktop との連携に関する問題
  1. 設定ファイルを更新した後、Claude Desktop を再起動します
  2. 設定ファイルの場所を確認します:
    • macOS:~/.claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
ヘルプを利用する

引き続き問題が発生する場合:

  1. 簡単なテストコマンドを実行して、すべてが動作することを確認します
  2. 同様の問題がないか、GitHub Issues を確認します
  3. エラーメッセージと設定の詳細を添えて、新しい Issue を作成します

よくある質問

どの権限が必要ですか?

スコープ付き API トークン(推奨)の場合:

  • 必須スコープ:repository、workspace
  • PR 管理には pullrequest を追加します

Bitbucket アプリパスワード(レガシー)の場合:

  • 読み取り専用アクセスの場合:ワークスペース:読み取り、リポジトリ:読み取り、プルリクエスト:読み取り
  • すべての機能を使用する場合:リポジトリとプルリクエストに「書き込み」権限を追加します
プライベートリポジトリでも使用できますか?

はい! パブリックリポジトリとプライベートリポジトリの両方で使用できます。認証情報に適切な権限を設定するだけです。

どの AI アシスタントで使用できますか?

Model Context Protocol(MCP)に対応する AI アシスタントであれば、どれでも使用できます。

  • Claude Desktop
  • Cursor AI
  • Continue.dev
  • その他多数
データは安全ですか?

はい! このツールは次のとおりです。

  • すべてローカルマシン上で実行されます
  • お使いの Bitbucket 認証情報を使用します
  • お客様のデータを第三者に送信することはありません
  • 許可された範囲内のデータにのみアクセスします

v1.x からの移行

バージョン 2.0 では、アーキテクチャが大幅に変更されています。v1.x からアップグレードする場合:

変更前(v1.x)— 20 個以上の専用ツール:

bb_ls_workspaces, bb_get_workspace, bb_ls_repos, bb_get_repo,
bb_list_branches, bb_add_branch, bb_get_commit_history, bb_get_file,
bb_ls_prs, bb_get_pr, bb_add_pr, bb_update_pr, bb_approve_pr, bb_reject_pr,
bb_ls_pr_comments, bb_add_pr_comment, bb_diff_branches, bb_diff_commits, bb_search

変更後(v2.0 以降)— 6 個の汎用ツール:

bb_get, bb_post, bb_put, bb_patch, bb_delete, bb_clone
移行例
v1.x のツールv2.0 以降での相当機能
bb_ls_workspaces()bb_get(path: "/workspaces")
bb_ls_repos(workspace: "myteam")bb_get(path: "/repositories/myteam")
bb_get_repo(workspace: "myteam", repo: "myrepo")bb_get(path: "/repositories/myteam/myrepo")
bb_list_branches(workspace: "myteam", repo: "myrepo")bb_get(path: "/repositories/myteam/myrepo/refs/branches")
bb_add_branch(...)bb_post(path: "/repositories/.../refs/branches", body: {...})
bb_ls_prs(workspace: "myteam", repo: "myrepo")bb_get(path: "/repositories/myteam/myrepo/pullrequests")
bb_get_pr(workspace: "myteam", repo: "myrepo", id: 42)bb_get(path: "/repositories/myteam/myrepo/pullrequests/42")
bb_add_pr(...)bb_post(path: "/repositories/.../pullrequests", body: {...})
bb_update_pr(...)bb_patch(path: "/repositories/.../pullrequests/42", body: {...})
bb_approve_pr(workspace: "myteam", repo: "myrepo", id: 42)bb_post(path: "/repositories/myteam/myrepo/pullrequests/42/approve", body: {})
bb_diff_branches(...)bb_get(path: "/repositories/.../diff/branch1..branch2")
主な変更点
  1. すべてのツールで明示的なパスが必要になりました — 記述量は増えますが、柔軟性が向上します
  2. JMESPath によるフィルタリングを使用します — 必要なデータだけを抽出して、トークン数を削減します
  3. デフォルトで TOON 形式を使用します — トークン数を 30~60%削減します(outputFormat: "json" で変更できます)
  4. Bitbucket API に直接アクセスできます — どの API エンドポイントでも使用でき、新機能のためにコードを変更する必要はありません

サポート

お困りですか? サポートを受ける方法はこちらです。

  1. 上記のトラブルシューティングのセクションをご確認ください — よくある問題のほとんどを取り上げています
  2. GitHub リポジトリをご覧ください。ドキュメントと使用例はこちらです:github.com/aashari/mcp-server-atlassian-bitbucket
  3. GitHub Issues から問題を報告してください
  4. 機能リクエストや一般的な質問は、ディスカッションを開始してください

Bitbucket のワークフローに AI を取り入れたい開発者のために、心を込めて作りました。

コメント

MCP は初めてですか?

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

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