mcpField
B
Backblaze B2 MCP server

Backblaze B2 MCP server

認証済みおすすめローカル
github.comクラウド・インフラ461 日前に更新

Backblaze B2 MCP server について

Backblaze B2 MCP サーバーは、MCP 互換の AI クライアントから Backblaze B2 クラウドストレージを操作するためのサーバーで、ネイティブ B2 SDK、S3 互換のデータ操作、分析機能をカバーする 40 のツールを提供します。現在は Backblaze-Labs でインキュベート中です。

主な機能

  1. 01B2 ストレージ操作用の 40 のツール
  2. 02S3 互換のオブジェクトのアップロード、ダウンロード、一覧取得
  3. 03バケット、アプリケーションキー、Object Lock の管理
  4. 04破壊的操作の制御とモデルからの機密情報の隠蔽

活用シーン

  1. 01アプリケーションキーでアクセス可能なバケットの一覧表示
  2. 02ファイルのアップロードと一時的なダウンロードリンクの生成
  3. 03ストレージの増加傾向と大容量ファイルの分析

MCP 対応

本プロジェクトは MCP サーバーであり、B2 ツールに加えて b2://server-config、b2://capabilities、b2://bucket/{bucketName} などの読み取り専用リソースを MCP クライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"backblaze-b2": {
"command": "npx",
"args": [
"-y",
"@backblaze-labs/b2-mcp"
],
"env": {
"B2_APPLICATION_KEY_ID": "<B2_APPLICATION_KEY_ID>",
"B2_APPLICATION_KEY": "<B2_APPLICATION_KEY>",
"B2_REGION": "<B2_REGION>",
"B2_MASTER_KEY_ID": "<B2_MASTER_KEY_ID>",
"B2_MASTER_KEY": "<B2_MASTER_KEY>"
}
}
}
}
起動コマンドnpx -y @backblaze-labs/b2-mcp
設定が必要な環境変数
B2_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@backblaze-labs/b2-mcp0.2.2

ツール

40

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

このツールにパラメーターはありません。

詳細

Backblaze B2 MCP サーバー

Backblaze B2 MCP サーバー — Backblaze B2 のバケット、ファイル、キー、Object Lock、S3 互換ストレージへの安全な Model Context Protocol アクセス

CI CodeQL npm License: MIT TypeScript Node.js MCP API docs Coverage floors Runtime dependencies

MCP Registry Glama Verified by M8ven MCP Badge Listed on awesome-remote-mcp-servers

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} です。

目次


クイックスタート

前提条件: サポート対象の 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_IDstdio / HTTP server—アプリケーションキー ID(マスターキーではありません)。ネイティブの B2 および S3 互換ツールの主要な認証情報です
B2_APPLICATION_KEYstdio / HTTP server—アプリケーションキーのシークレット
B2_MASTER_KEY_ID / B2_MASTER_KEY—アプリケーションキーにフォールバックSDK ベースの Partner/Groups ツール用のマスター認証情報です。これらの操作には Partner API の利用資格が必要です
B2_REGION—us-west-004S3 互換エンドポイントのフォールバック/デフォルトリージョンです。認証済みの 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—falseMCP ワークフローのプロンプト(prompts/list、prompts/get)はデフォルトで無効です。すべてのレプリカでプロンプト対応コードが実行された後に true を設定してください。登録と通知をまとめて制御するため、フリート全体で同時に切り替えるか、スティッキールーティングを使用してください
B2_MCP_TRANSPORT—stdiostdio/http 引数または --transport フラグが渡されない場合の CLI のデフォルトトランスポートです。Docker イメージでは http に設定されています
B2_HTTP_HOSTHTTP のみ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_FILEfile の上書きstdio では ~/.b2-mcp/secrets.jsonlファイルシンクモード用の追記専用のプレーンテキスト JSONL 認証情報台帳です。HTTP/サーバーレスのファイルモードでは、この絶対パスを明示し、B2_ALLOW_LOCAL_FILES=true を指定する必要があります
B2_ALLOW_INLINE_SECRETSHTTP のインラインモードのみfalseB2_SECRET_SINK=inline によって MCP レスポンスで永続シークレットを返すには、HTTP/サーバーレス環境で明示的にオプトインする必要があります
B2_HTTP_CREDENTIAL_MODEHTTP のみheadersheaders、server、または principal を指定します。未設定の場合、既存のヘッダーベースのクライアントが維持されます。ホスト環境へのデプロイでは明示的に設定してください
B2_PRINCIPAL_CREDENTIAL_MAPHTTP principal—検証済み MCP プリンシパルから、顧客が管理する認証情報の参照先への JSON マップ
B2_CREDENTIAL_<REF>_APPLICATION_KEY_ID / _APPLICATION_KEYHTTP principal—マッピングされた参照先に使用する、環境変数ベースのシークレットブローカー情報
セキュリティ/ポリシー(安全なデフォルト設定。必要に応じて上書きしてください):
変数デフォルト値説明
B2_DESTRUCTIVE_POLICYstdio: confirm; HTTP: block破壊的なツールへのゲート設定:confirm は、対応する 2026 クライアントでは MCP フォームによる確認の承認を必要とします。確認機能が利用できない、または無効な場合は confirm: true が必要です。elicit は人間による確認の承認を必要とし、人間に確認を求められない場合は拒否します。block は確認の前に拒否します。allow は両方のゲートをスキップします
B2_DESTRUCTIVE_ELICITATIONonMCP フォームによる確認を無効にし、B2_DESTRUCTIVE_POLICY のみに従うには、off、false、または 0 を設定します
B2_MAX_KEY_DURATION_SECONDS—b2_create_key の任意の最大有効期間です。設定すると、有効期限のないキーと指定期間を超えるキーは、B2 の作成呼び出しを行う前に拒否されます
B2_ALLOW_KEY_MGMT_GRANTS / B2_ALLOW_UNSCOPED_KEYSfalseb2_create_key による、キー管理機能を持つキー、またはスコープなしの書き込み/削除キーの発行を明示的に許可します
B2_ALLOWED_HOSTS / B2_ALLOWED_ORIGINSなしHTTP トランスポート:Host/Origin の許可リスト(DNS リバインディング対策)。インターネットに公開する HTTP デプロイでは必ず設定してください
B2_HTTP_REQUEST_TIMEOUT_MS / B2_HTTP_HEADERS_TIMEOUT_MS30000 / 10000スタンドアロンの Node HTTP トランスポートにおけるリクエストタイムアウトとヘッダータイムアウト
B2_TRUST_PROXY_HEADERSfalseHTTP トランスポート:信頼できるプロキシの背後にある場合に限り、認証されていない接続許可キーについて X-Forwarded-For/X-Real-IP を信頼します
B2_MCP_RATE_LIMIT_RPS / B2_MCP_RATE_LIMIT_BURST60 / 120HTTP トランスポート:認証情報ごとのリクエストスロットリング
B2_MAX_SESSIONS / B2_MAX_SESSIONS_PER_KEY1000 / 20HTTP トランスポート:同時に処理中のリクエスト数の上限(全体および認証情報ごと)
B2_STDIO_CAPABILITY_TIMEOUT_MS10000Stdio の起動時に行う機能検出の期限。ローカルで期限切れになると、安全側に倒してツールを利用できない状態で開始します
B2_CAPABILITY_CACHE_TTL_MS / B2_CAPABILITY_CACHE_MAX_ENTRIES300000 / 10000機能検出キャッシュの TTL とサイズの上限。キャッシュの識別情報はシークレットに結び付けられ、ログラベルにはシークレットではないフィンガープリントが使われます
B2_S3_SAVE_TO_PATH_IDLE_TIMEOUT_MS60000s3_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 ベアラー URL
  • s3_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(検証済みの MCP authInfo を顧客が保持する認証情報に対応付け)を選択します。認証情報を必要としない検出(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 で実行します。

ドキュメント

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.

コメント

MCP は初めてですか?

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

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