Backblaze B2 MCP server について
Backblaze B2 MCP サーバーは、MCP 互換の AI クライアントから Backblaze B2 クラウドストレージを操作するためのサーバーで、ネイティブ B2 SDK、S3 互換のデータ操作、分析機能をカバーする 40 のツールを提供します。現在は Backblaze-Labs でインキュベート中です。
主な機能
- 01B2 ストレージ操作用の 40 のツール
- 02S3 互換のオブジェクトのアップロード、ダウンロード、一覧取得
- 03バケット、アプリケーションキー、Object Lock の管理
- 04破壊的操作の制御とモデルからの機密情報の隠蔽
活用シーン
- 01アプリケーションキーでアクセス可能なバケットの一覧表示
- 02ファイルのアップロードと一時的なダウンロードリンクの生成
- 03ストレージの増加傾向と大容量ファイルの分析
MCP 対応
本プロジェクトは MCP サーバーであり、B2 ツールに加えて b2://server-config、b2://capabilities、b2://bucket/{bucketName} などの読み取り専用リソースを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @backblaze-labs/b2-mcpB2_APPLICATION_KEY_IDシークレットBackblaze B2 application key ID for native B2 and S3-compatible tools.B2_APPLICATION_KEYシークレットBackblaze B2 application key secret.B2_REGIONOptional fallback S3-compatible region used before authorization.B2_MASTER_KEY_IDシークレットOptional master key ID for Partner/Groups API tools.B2_MASTER_KEYシークレットOptional master key secret for Partner/Groups API tools.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
40掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
Backblaze B2 MCP サーバー
Backblaze B2 Cloud Storage 用の Model Context Protocol サーバーです。MCP 対応の AI クライアント(Claude など)から、用途を絞った安全なツール群を通じて B2 を操作できます。現在、Backblaze-Labs でインキュベーション中です。
これは Backblaze B2 の公式 MCP サーバーです —
backblaze-labs/b2-mcpは@backblaze-labs/b2-mcpとして npm で公開され、io.github.backblaze-labs/b2-mcpとして Official MCP Registry に掲載されています。コミュニティによるフォークやサードパーティ製ラッパーは Backblaze による保守対象ではありません。
基盤カテゴリ別に割り当てられた 40 個のツール:
- ネイティブ B2 SDK(
@backblaze-labs/b2-sdk)(17 個) — S3 API に相当する機能がない B2 コントロールプレーン操作:バケット、アプリケーションキー、Object Lock、イベント通知、Partner/Groups 操作。 - AWS S3 SDK(
@aws-sdk/client-s3)(19 個) — S3 互換のデータプレーン:オブジェクトのアップロード/ダウンロード/コピー/一覧表示/削除、マルチパート、バケットの到達可能性、ライフサイクル、署名付き URL のパス。 - どちらの SDK も使用しない(カスタム MCP コード)(4 個) — B2 レポートに対するリポジトリ独自の分析と、上限付きのライブ一覧表示:ストレージの増加、送信データ量の上位、最大サイズのファイル、放棄されたアップロード。
破壊的な操作はゲートで制限され、永続的な B2 シークレットはデフォルト/ファイル/オフの各モードでモデルのコンテキストに含まれません。また、登録は機能に応じて行われるため、キーからは利用可能なツールのみが見えます。サーバーは読み取り専用の MCP リソースも公開します。
b2://server-config(シークレットを含まず、認証情報なしの検出時にも登録されます)に加え、機能によって制限されるb2://capabilitiesとb2://bucket/{bucketName}です。
目次
- クイックスタート
- B2 スキルパック
- 設定
- ツール
- パッケージ API サーフェス
- CLI リファレンス
- リソース
- セキュリティとセルフホスト
- プライバシー
- 開発
- ドキュメント
- Backblaze Labs エコシステム
クイックスタート
前提条件: サポート対象の Node.js ランタイムと、Backblaze B2 のアプリケーションキーが必要です。マスターキー以外のキーがあれば十分です。パッケージのエンジン範囲は ^22.22.2 || ^24 || ^26 です。CI は Node.js 22.23.1、24、26 で実行されます。通常のストレージ操作(B2 ネイティブ、S3、キー管理)には、マスターキー以外のアプリケーションキーが 1 つあれば対応できます。Partner/Groups ツールには、さらに B2_MASTER_KEY_ID / B2_MASTER_KEY が必要です。
オプション A — npx(Claude Desktop の設定)
claude_desktop_config.json(macOS:~/Library/Application Support/Claude/、Windows:%APPDATA%\Claude\、Linux:~/.config/Claude/)を編集し、次を追加します。
{
"mcpServers": {
"backblaze-b2": {
"command": "npx",
"args": ["-y", "@backblaze-labs/b2-mcp"],
"env": {
"B2_APPLICATION_KEY_ID": "your-application-key-id",
"B2_APPLICATION_KEY": "your-application-key-secret"
}
}
}
}
Claude Desktop を再起動すると、B2 ツールが表示されます。認証前に明示的なフォールバックリージョンが必要な場合は、同じ env ブロックに B2_REGION を追加してください(S3/レポートツールは、それ以外の場合、認証済みの B2 アカウント応答からリージョンを導出します)。
{
"B2_APPLICATION_KEY_ID": "your-application-key-id",
"B2_APPLICATION_KEY": "your-application-key-secret",
"B2_REGION": "us-east-005"
}
正式なパッケージ名は @backblaze-labs/b2-mcp、正式なバイナリ名は b2-mcp(b2-mcp-server は移行用の別名)です。npx -y @backblaze-labs/b2-mcp で直接実行できます。変数の一覧は設定を、ソースのチェックアウトからのセットアップと、Cursor、VS Code、Cline、Windsurf、Zed、Continue、Goose、Claude.ai、ホステッド(Streamable HTTP)向けのコピー&ペースト可能な設定は docs/product-specs/clients.md を参照してください。
オプション B — Claude Desktop 拡張機能(MCPB)
リリースに
b2-mcp.mcpbアセットが含まれるようになった時点(0.2.1 以降)から利用できます。それ以前のリリースにはバンドルが含まれないため、リリースページにアセットが表示されるまではオプション A を使用してください。
JSON の編集を避けたい場合は、最新リリースから b2-mcp.mcpb をダウンロードし、Claude Desktop で Settings → Extensions → Advanced settings → Extension Developer → Install Extension… を開いて、ダウンロードしたファイルを選択してください。Claude Desktop で Application Key ID と Application Key の入力を求められます(Region と Master key は省略可能です)。設定ファイルを手動で編集する必要はありません。このバンドルはバージョンを固定した npx -y @backblaze-labs/b2-mcp@<version> を起動し(npm が初回実行時にサーバーを解決します)、公開済みの正確なバージョンを常に実行します。ワンクリックで利用できる Claude Connectors Directory への掲載は進行中です。
あとは、次のように尋ねるだけです。
「このキーでアクセスできるバケットを一覧表示して。」 · 「
./data.csvをreports/may-2026.csvにアップロードして。」 · 「backups/latest.tar.gzの 1 時間有効なダウンロードリンクを作成して。」 · 「logs/2026/以下のファイルを一覧表示して。」
クライアントに表示されるツールが 40 個未満の場合: 登録は機能に応じて行われます。マスターキー以外のキーを使用し、マスターキーが設定されていない場合、マスターキーを必要とする Partner/Groups ツール 3 個は表示されないため、
tools/listは 37 個を報告します。Partner の利用資格があるアカウントでB2_MASTER_KEY_ID/B2_MASTER_KEYを追加すると、全 40 個が利用できます。読み取り専用キーでは、さらに表示されるツールが減ります。認証情報なしのスキャナーには、公開されているすべてのツールが表示されますが、有効な B2 認証情報が提供されるまでは、すべてのtools/callがmissing_credentialsを返します。
Docker
公開済みイメージはデフォルトで HTTP トランスポートを使用し、環境変数からのみ設定を読み込みます(変更される latest タグはありません。リリースバージョンを固定してください)。
B2_MCP_VERSION=VERSION # replace with the release version you want
B2_MCP_IMAGE="ghcr.io/backblaze-labs/b2-mcp:${B2_MCP_VERSION}"
docker run --rm --name b2-mcp \
--stop-timeout 20 \
-p 127.0.0.1:3000:3000 \
-e B2_HTTP_CREDENTIAL_MODE=server \
-e B2_APPLICATION_KEY_ID=your-application-key-id \
-e B2_APPLICATION_KEY=your-application-key-secret \
-e B2_ALLOWED_HOSTS=localhost,127.0.0.1 \
-e B2_DESTRUCTIVE_POLICY=block \
-e B2_REGISTER_ALL_TOOLS=false \
-e B2_SECRET_SINK=off \
-e B2_ALLOW_INLINE_SECRETS=false \
-e B2_ALLOW_LOCAL_FILES=false \
"$B2_MCP_IMAGE"
コンテナ内の stdio クライアントでは、トランスポートを明示的に指定し、標準入力を開いたままにしてください。
B2_MCP_VERSION=VERSION # replace with the release version you want
B2_MCP_IMAGE="ghcr.io/backblaze-labs/b2-mcp:${B2_MCP_VERSION}"
docker run --rm -i \
--no-healthcheck \
-e B2_APPLICATION_KEY_ID=your-application-key-id \
-e B2_APPLICATION_KEY=your-application-key-secret \
"$B2_MCP_IMAGE" stdio
ホスト型 HTTP にデプロイしますか? デプロイマトリックスと、セキュリティとセルフホスティングからリンクされているプロバイダー別ガイド(Docker、Vercel、Cloudflare、AWS、GCP、Azure、Render、Railway、Fly.io)、および強化された HTTP の使用例を掲載した docs/references/deployment/docker.mdをご覧ください。
B2 Skills pack
このリポジトリには、クライアント側の Backblaze B2 スキルパックが skills/ に同梱されています(マニフェスト:skills/pack.json)。一般的なワークフロー(バックアップ/復元、最小権限のキー、Object Lock、ライフサイクルとコストの最適化、移行、インシデント対応)を扱う Markdown のプレイブックです。MCP サーバーがアクションレイヤーであるのに対し、これらは専門知識のレイヤーです。エンドポイントや権限は追加せず、既存のツールの実行順序を組み立て、サーバーが適用するものと同じバイトパスおよび破壊的操作に関するガードレールを強化します。
Markdown スキルに対応したクライアント向けのオプションですが、使用をおすすめします。各 skills/b2-*/ ディレクトリを ~/.claude/skills/(Claude Code)に配置するか、Settings → Capabilities → Skills(Claude.ai / Claude Desktop)からスキルごとの ZIP をアップロードして読み込んでください。パックをローカルで検証します。
pnpm run validate:skills
設定
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
B2_APPLICATION_KEY_ID | stdio / HTTP server | — | アプリケーションキー ID(マスターキーではありません)。ネイティブの B2 および S3 互換ツールの主要な認証情報です |
B2_APPLICATION_KEY | stdio / HTTP server | — | アプリケーションキーのシークレット |
B2_MASTER_KEY_ID / B2_MASTER_KEY | — | アプリケーションキーにフォールバック | SDK ベースの Partner/Groups ツール用のマスター認証情報です。これらの操作には Partner API の利用資格が必要です |
B2_REGION | — | us-west-004 | S3 互換エンドポイントのフォールバック/デフォルトリージョンです。認証済みの B2 レスポンスが、S3/レポートツール向けのリージョンを上書きします |
B2_MCP_UA_SUFFIX | — | — | 省略可能なオペレータートークンです。送信する User-Agent の組み込み済み b2-mcp/<version> 製品トークンの_後ろ_に追加されます(デプロイ環境のタグ付けに使用します) |
B2_MCP_OUTPUT_FORMAT | — | json | 構造化された成功レスポンスにおける、LLM 向けの TextContent.text 形式です。コンパクトな json、またはオプトイン形式の toon を指定します |
B2_ENABLE_MCP_PROMPTS | — | false | MCP ワークフローのプロンプト(prompts/list、prompts/get)はデフォルトで無効です。すべてのレプリカでプロンプト対応コードが実行された後に true を設定してください。登録と通知をまとめて制御するため、フリート全体で同時に切り替えるか、スティッキールーティングを使用してください |
B2_MCP_TRANSPORT | — | stdio | stdio/http 引数または --transport フラグが渡されない場合の CLI のデフォルトトランスポートです。Docker イメージでは http に設定されています |
B2_HTTP_HOST | HTTP のみ | Node のリッスン時のデフォルト | スタンドアロン Node HTTP のリッスンホストです。同一ホスト上のリバースプロキシの背後でバインドする場合は 127.0.0.1 に設定してください |
B2_LOG_FILE | — | stderr | 機密情報を除去した構造化 JSON ログを出力する省略可能な絶対パスです(POSIX のみ)。設定すると、stderr の代わりにファイルが使用されます。ログに stdout は使用されません。ファイルのリネーム/作成と SIGHUP によるローテーションの手順については、docs/product-specs/clients.md を参照してください |
B2_SECRET_SINK | — | stdio: file; HTTP: off | 永続シークレットの出力モードです。file、inline、off を指定します。ファイルモードでは b2_create_key と b2_create_group_member をサポートします。b2_reserve_trial_create_account にはファイルモードでの復旧手段がないため、明示的にインラインモードを指定する必要があります |
B2_SECRET_SINK_FILE | file の上書き | stdio では ~/.b2-mcp/secrets.jsonl | ファイルシンクモード用の追記専用のプレーンテキスト JSONL 認証情報台帳です。HTTP/サーバーレスのファイルモードでは、この絶対パスを明示し、B2_ALLOW_LOCAL_FILES=true を指定する必要があります |
B2_ALLOW_INLINE_SECRETS | HTTP のインラインモードのみ | false | B2_SECRET_SINK=inline によって MCP レスポンスで永続シークレットを返すには、HTTP/サーバーレス環境で明示的にオプトインする必要があります |
B2_HTTP_CREDENTIAL_MODE | HTTP のみ | headers | headers、server、または principal を指定します。未設定の場合、既存のヘッダーベースのクライアントが維持されます。ホスト環境へのデプロイでは明示的に設定してください |
B2_PRINCIPAL_CREDENTIAL_MAP | HTTP principal | — | 検証済み MCP プリンシパルから、顧客が管理する認証情報の参照先への JSON マップ |
B2_CREDENTIAL_<REF>_APPLICATION_KEY_ID / _APPLICATION_KEY | HTTP principal | — | マッピングされた参照先に使用する、環境変数ベースのシークレットブローカー情報 |
| セキュリティ/ポリシー(安全なデフォルト設定。必要に応じて上書きしてください): |
| 変数 | デフォルト値 | 説明 |
|---|---|---|
B2_DESTRUCTIVE_POLICY | stdio: confirm; HTTP: block | 破壊的なツールへのゲート設定:confirm は、対応する 2026 クライアントでは MCP フォームによる確認の承認を必要とします。確認機能が利用できない、または無効な場合は confirm: true が必要です。elicit は人間による確認の承認を必要とし、人間に確認を求められない場合は拒否します。block は確認の前に拒否します。allow は両方のゲートをスキップします |
B2_DESTRUCTIVE_ELICITATION | on | MCP フォームによる確認を無効にし、B2_DESTRUCTIVE_POLICY のみに従うには、off、false、または 0 を設定します |
B2_MAX_KEY_DURATION_SECONDS | — | b2_create_key の任意の最大有効期間です。設定すると、有効期限のないキーと指定期間を超えるキーは、B2 の作成呼び出しを行う前に拒否されます |
B2_ALLOW_KEY_MGMT_GRANTS / B2_ALLOW_UNSCOPED_KEYS | false | b2_create_key による、キー管理機能を持つキー、またはスコープなしの書き込み/削除キーの発行を明示的に許可します |
B2_ALLOWED_HOSTS / B2_ALLOWED_ORIGINS | なし | HTTP トランスポート:Host/Origin の許可リスト(DNS リバインディング対策)。インターネットに公開する HTTP デプロイでは必ず設定してください |
B2_HTTP_REQUEST_TIMEOUT_MS / B2_HTTP_HEADERS_TIMEOUT_MS | 30000 / 10000 | スタンドアロンの Node HTTP トランスポートにおけるリクエストタイムアウトとヘッダータイムアウト |
B2_TRUST_PROXY_HEADERS | false | HTTP トランスポート:信頼できるプロキシの背後にある場合に限り、認証されていない接続許可キーについて X-Forwarded-For/X-Real-IP を信頼します |
B2_MCP_RATE_LIMIT_RPS / B2_MCP_RATE_LIMIT_BURST | 60 / 120 | HTTP トランスポート:認証情報ごとのリクエストスロットリング |
B2_MAX_SESSIONS / B2_MAX_SESSIONS_PER_KEY | 1000 / 20 | HTTP トランスポート:同時に処理中のリクエスト数の上限(全体および認証情報ごと) |
B2_STDIO_CAPABILITY_TIMEOUT_MS | 10000 | Stdio の起動時に行う機能検出の期限。ローカルで期限切れになると、安全側に倒してツールを利用できない状態で開始します |
B2_CAPABILITY_CACHE_TTL_MS / B2_CAPABILITY_CACHE_MAX_ENTRIES | 300000 / 10000 | 機能検出キャッシュの TTL とサイズの上限。キャッシュの識別情報はシークレットに結び付けられ、ログラベルにはシークレットではないフィンガープリントが使われます |
B2_S3_SAVE_TO_PATH_IDLE_TIMEOUT_MS | 60000 | s3_get_object の結果を saveToPath にストリーミングする際のアイドルタイムアウト |
すぐにコピーして使える .env.example にローカル用の変数を、deploy/customer-hosted/b2-mcp.env.example にホスト型コンテナーの基本設定を記載しています。HTTP 専用のファイルアクセス変数(B2_ALLOW_LOCAL_FILES、B2_FILE_ROOT)については docs/DEPLOY.md を参照してください。上記の機能/キャッシュ調整用の設定項目は、このドキュメント内に記載しています。
ツール
サーバーは40 個のツールを公開します(登録は機能に応じて行われるため、各キーには利用可能なツールだけが表示されます)。**合計 40 個 — ネイティブ B2 SDK が 17 個、AWS S3 SDK が 19 個、どちらの SDK にも属さないカスタム MCP ツールが 4 個です。**プレフィックス別の数は、ネイティブの b2_* 名が 21 個、データプレーンの s3_* 名が 19 個です。stdio のデフォルトの confirm ポリシーでは、破壊的な操作、永続的なシークレットを生成する操作、または保護を弱める操作に該当する 15 個のツールは、実行前に確認が必要です。HTTP のデフォルトは block です。機能セットごとのプロファイル別ツール一覧(利用可否を注記)は、生成された docs/generated/tool-profiles.md にあります。破壊的操作のゲートポリシーと永続的なシークレットの処理(シークレットの保存先、冪等性キー、POSIX と Windows の動作)については、docs/AUTHENTICATION.md に記載されています。
ネイティブ B2 SDK(17 個):
b2_authorize_account— 認証情報を検証し、アカウント情報を返すb2_list_buckets— バケットを一覧表示する(オプションのフィルターあり)b2_create_bucket— 初期ポリシー設定で永続的なバケットを作成するb2_delete_bucket— 空のバケットを削除するb2_update_bucket— 永続的なバケット設定を更新する。リスクのある変更にはゲートが適用されるb2_get_bucket_notification_rules— シークレットを伏せて Webhook 通知ルールを読み取るb2_set_bucket_notification_rules— Webhook 通知ルールを置き換える。公開 HTTPS ターゲットのみb2_list_keys— アプリケーションキーを一覧表示するb2_delete_key— アプリケーションキーを取り消す(取り消しは取り消せません)b2_create_key— 設定済みのシークレット保存先を通じて、スコープを指定したアプリケーションキーを作成するb2_update_file_legal_hold— オブジェクトのリーガルホールドを設定/解除するb2_update_file_retention— オブジェクトの保持設定を設定/解除するb2_list_groups— パートナーグループを一覧表示する(Partner API 認証情報が必要)b2_eject_group_member— パートナーグループからメンバーを削除する(Partner API 認証情報が必要)b2_list_group_members— グループメンバーを一覧表示する(Partner API 認証情報が必要)b2_create_group_member— Partner グループメンバーを作成する(Partner API 認証情報が必要)b2_reserve_trial_create_account— トライアルアカウントを予約する(Partner API 認証情報が必要)
AWS S3 SDK — データプレーン(19 個):
s3_put_object— 小さい(≤1 MiB)コントロールプレーンオブジェクトをインラインでアップロードするs3_get_object— 小さい(≤1 MiB)コントロールプレーンオブジェクトをインラインでダウンロードするs3_delete_object— 現在のオブジェクトまたは指定バージョンを削除する。破壊的操作のゲートが適用されるs3_delete_objects— オブジェクトを一括削除するs3_head_object— オブジェクトのメタデータを取得するs3_copy_object— サーバー側でオブジェクトをコピーするs3_list_objects_v2— オブジェクトを一覧表示するs3_list_object_versions— オブジェクトのバージョンと削除マーカーを一覧表示する(ページネーション対応)s3_create_multipart_upload— マルチパートアップロードを開始するs3_get_presigned_upload_part_url— パート用の署名済み PUT URL を発行するs3_complete_multipart_upload— 順序付きパート ETag を使用してマルチパートアップロードを完了するs3_abort_multipart_upload— マルチパートアップロードを中止するs3_list_parts— アップロード済みパートを一覧表示するs3_list_multipart_uploads— 進行中のマルチパートアップロードを一覧表示する(ページネーション対応)s3_upload_part_copy— パートをサーバー側でコピーするs3_get_presigned_url— 有効期間の短い、署名済みの PUT/GET ベアラー URLs3_head_bucket— S3 エンドポイントからバケットにアクセスできるか確認するs3_get_bucket_location— バケットのリージョン/ロケーション制約を取得するs3_put_bucket_lifecycle— S3 ライフサイクルルールを設定する
カスタム MCP 分析(4 個):
b2_report_usage_growth— 2 つの日付間で保存データの増加量が大きいアカウントを順位付けするb2_rank_egress_leaders— 期間内のアカウントまたはバケット別の上位エグレスを表示するb2_list_largest_files— 上限付きのライブ一覧取得により、バケット内の最大オブジェクトを表示するb2_unfinished_uploads— ストレージを消費している、放棄されたマルチパートアップロードを表示する MCP ワークフローのプロンプト(オプトイン): デフォルトでは無効です。B2_ENABLE_MCP_PROMPTS=trueを設定すると、prompts/list/prompts/getを通じて、ガイド付きワークフローを 5 つ公開します。プロンプトはパラメーター化されたメッセージテンプレートであり、ツールを実行したり、破壊的な操作を承認したりすることはありません。また、ツールと同じツールサーフェスおよび機能マップに基づいてフィルタリングされます。このフラグはフリート全体で一括して切り替えてください(登録と公開の両方を制御します)。
パッケージ API サーフェス
npm パッケージで意図的にサポートしているのは、ルートの CommonJS エントリ
(require("@backblaze-labs/b2-mcp"))のみです。このエントリは
startStdio(): Promise<void> を公開し、メタデータ用に ./package.json も利用できます。TypeScript
の利用者は、同じルートの CommonJS サーフェスを対象にコンパイルできます。
import b2Mcp = require("@backblaze-labs/b2-mcp");
const start: () => Promise<void> = b2Mcp.startStdio;
ルートエントリ以外からのプログラムによる TypeScript インポートは、サポート対象の公開 API ではありません。ESM の名前付きインポートは、API の契約に含まれません。@backblaze-labs/b2-mcp/dist/server.js のようなディープインポートは、パッケージの exports マップによって閉じられている非公開の実装詳細です。代わりに、CLI/bin エントリまたはルートの startStdio エクスポートを使用してください。
CLI リファレンス
ソースのエントリポイントとインストール済みパッケージのバイナリは、同じ CLI を共有します。
Usage: b2-mcp [stdio|http] [options]
Options:
--transport <stdio|http> Transport to serve (default: B2_MCP_TRANSPORT or stdio)
--port <port> HTTP listen port (default: PORT or 3000)
--host <host> HTTP listen host (default: Node listen default)
--version Print the package version
--help Show this help
ツールの結果では、損失のない値が structuredContent に格納されます。LLM 向けのテキストブロックは B2_MCP_OUTPUT_FORMAT で選択します(デフォルトは json、オプトインで toon)。出力形式の契約については、docs/design-docs/tool-contract.md#structured-result-text-contract を参照してください。
リソース
読み取り専用の MCP リソースを使用すると、ツールを呼び出さずに安定したコントロールプレーンの状態を確認できます。
b2://server-config— シークレットを含まないサーバー構成(トランスポート、認証情報モード、破壊的操作のポリシー、シークレットシンクモード、公開 URL、バージョン)。b2://capabilities— 現在の認証情報が持つ B2 の機能セットと、アクティブなツールプロファイル。b2://bucket/{bucketName}— 呼び出し元に読み取り権限がある場合の、バケットの種類/公開範囲、ライフサイクル、Object Lock、保持、暗号化、CORS、レプリケーション、通知ルール(Webhook シークレットは伏せられます)。
resources/list で取得できる具体的なバケットリソースは最大 100 件です。権限のあるバケットが分かっている場合は、テンプレート URI を直接使用してください。書き込み後は公開範囲と通知先がセキュリティ上重要となるため、バケットの読み取りではクライアントキャッシュのヒントを省略します。
セキュリティとセルフホスト
組み込みの保護機能(デフォルトで有効):破壊的操作のゲート機能(B2_DESTRUCTIVE_POLICY)、2026 対応クライアントで破壊的ツールに使用する MCP フォームによる情報要求、ローカル stdio でのシンクに基づく永続的なシークレットの作成と、ホスト型 HTTP でのフェイルクローズをデフォルトとする設定、中央での再帰的なレスポンスのサニタイズ、明示的な認証情報プロバイダーモード、フェイルクローズする機能対応の登録、レート制限、値を秘匿した監査ログ(シークレットではない認証情報のフィンガープリントのみ)。サーバーが外部に通信することはありません。
- ローカルでの使用 → stdio。 認証情報はクライアント設定/環境変数に保持されます。デフォルトの
confirmポリシーでは、破壊的操作の前に確認を求めます。 - インターネットに公開する HTTP →
B2_DESTRUCTIVE_POLICY=blockが必須の防御策です(HTTP のデフォルト)。情報要求はクライアントを介して中継されるため、人間が介在するための仕組みではありますが、独立した認可境界ではありません。 - 認証情報モードを選択します。
headers(デフォルト、互換性用)、server(プロセス内またはシークレットマネージャーで B2 認証情報を 1 つ保持)、またはprincipal(検証済みの MCPauthInfoを顧客が保持する認証情報に対応付け)を選択します。認証情報を必要としない検出(initialize、tools/list、resources/list、prompts/list、server/discover、ping)はキーなしで実行できるため、スキャナーが列挙できます。実際のtools/callには引き続き認証情報が必要です。 - 最小権限のキーを使用します。 通常のストレージ用途には、マスターキー以外のキーが適切です。
b2_create_keyは、キー管理権限、スコープ指定のない書き込み/削除権限、または対応するオーバーライドが設定されていない場合の、長すぎるキーや有効期限のないキーの作成を拒否します。 - 事前署名付き URL は永続的なシークレットではありません。
s3_get_presigned_url/s3_get_presigned_upload_part_urlは、有効期間の短いベアラー機能(expiresIn/expiresAt)を返します。有効期限までは機密情報ですが、長期間有効な B2 キーではありません。 - 認証情報をコミットしないでください — 環境変数/シークレットマネージャーを使用してください。
.env*は gitignore 対象です。
サポートされているデプロイ先:deploy/customer-hosted(ポータブルなコンテナー、compose、nginx/OAuth エッジ)および deploy/vercel(OAuth で保護されたアダプター)。プロバイダー別ガイド:Docker/OCI、Vercel、Cloudflare Workers、Cloudflare Containers、Google Cloud Run、AWS ECS Fargate、Azure Container Apps、Render、Railway、Fly.io。いずれも共通のセキュリティと認証情報の契約に準拠しています。
ホスト型環境の完全な運用手順書(nginx、Let's Encrypt、強化された systemd、fail2ban、監視、セキュリティベースラインのチェックリスト):deploy/customer-hosted/README.md(docs/DEPLOY.md の一覧から参照できます)。認証、認証情報の管理、OAuth の詳細は docs/AUTHENTICATION.md をご覧ください。
プライバシー
b2-mcp は、ローカルの stdio 経由、またはユーザーやオペレーターが管理するセルフホスト型 HTTP デプロイで実行されます。通常の使用において、公開元が実行時の B2 認証情報、オブジェクトデータ、プロンプト、ログ、テレメトリーを受け取ることはありません。オブジェクトのバイトデータを扱うワークフローでは、バイトデータがクライアントまたはワーカーと Backblaze B2 の間を直接移動するよう、事前署名付き URL を使用してください。また、ログはシークレットを秘匿する形式で構造化されています。
正規の PRIVACY.md ソース、または GitHub Pages が公開するプライバシーポリシーをご覧ください。
開発
新しくソースをチェックアウトしたら、まず固定されたパッケージマネージャーを有効にして依存関係をインストールし、その後、以下のスクリプトを実行します。
corepack enable pnpm
corepack prepare '[email protected]+sha256.34e198cb1e43237517ecedfd31f9ae26a6c0a3e5366ce58a2d05f4b21fb5f19a' --activate
pnpm install --frozen-lockfile
pnpm run build # clean + compile to dist/
pnpm run typecheck # type-check src + tests (no emit)
pnpm test # typecheck, then fast unit tests
pnpm run test:contract # deterministic MCP/package/schema contracts
pnpm run test:protocol # modern + legacy MCP protocol behavior
pnpm run test:coverage # deterministic source-covering suites + coverage summary
pnpm run test:package # packed-package installation test
pnpm run verify # fast no-credential quality gate
pnpm run test:live:b2 # both protected live B2 suites; requires B2 credentials
pnpm run evals # deterministic LLM eval harness; live provider cases skip by default
pnpm run docs # TypeDoc API docs plus hosted privacy page
pnpm start # stdio transport
pnpm run start:http --port 3000 # MCP 2026-07-28 HTTP transport
pnpm run smoke:local # deterministic local MCP smoke; no endpoint or B2 credentials
スクリプトの全一覧(診断、時間のかかるテスト、プロバイダー比較評価、インスペクターのスモークテスト)は、docs/TESTING.md にあります。互換性のある MCP Inspector:@modelcontextprotocol/[email protected](Node.js 22.19.0+)。pnpm run smoke:inspector で実行します。
ドキュメント
- API リファレンス — 公開されている
srcの領域を対象に生成された TypeDoc - プライバシーポリシー /
PRIVACY.md— ランタイムのデータ取り扱いポリシー docs/product-specs/clients.md— クライアントごとのセットアップと互換性マトリクスdocs/AUTHENTICATION.md— OAuth、認証情報の管理、認証境界docs/DEPLOY.md— デプロイマトリクスと対応ホストへのリンクdocs/references/deployment/security-and-credentials.md— ホスト型サービス共通のセキュリティ契約docs/generated/tool-profiles.md— ツールごとの利用可否をまとめた生成リファレンスdocs/design-docs/index.md— 担当者とステータスを記載した公開契約一覧docs/design-docs/tool-contract.md— ツール契約と命名規則のポリシーdocs/TESTING.md/docs/EVALS.md— テストゲートと LLM 評価の実行手順書docs/references/discoverability.md— レジストリ/ディレクトリ掲載の実行手順書RELEASE.md·CHANGELOG.md·SECURITY.md
Backblaze Labs エコシステム
Backblaze Labs の一部です。
- Genblaze — 動画、音声、画像プロバイダーを横断して生成 AI メディアのパイプラインをオーケストレーションする Python SDK。すべての出力の来歴を組み込みで記録します。
- b2-sdk-typescript —
Backblaze がメンテナンスする B2 Cloud Storage 用 TypeScript / JavaScript SDK
(
@backblaze-labs/b2-sdkとして公開。このサーバーの基盤となる SDK です)。 - b2-action — Backblaze がメンテナンスする B2 Cloud Storage 用 GitHub Action。
ライセンス
MIT — © 2026 Backblaze, Inc.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。