Skip to main content
Glama
MSPbotsAI

wasabi-mcp

by MSPbotsAI

wasabi-mcp

Wasabi(S3互換のホットクラウドストレージ)向けMCPサーバー。Wasabi Stats API のバケット利用状況データをMCPツールとして公開します。

概要

  • ステートレスなHTTPサービス。認証情報は一切永続化されません。各リクエストがヘッダーで自身の認証情報を提供し、その単一リクエストの間だけ使用されます。

  • 同時リクエストをサポート。リクエストごとの認証情報の分離は、グローバル/共有クライアントインスタンスではなく、Pythonの contextvars によって行われます。

  • エントリポイント: POST /mcp(MCPプロトコル)と GET /health(ヘルスチェック)。

  • デフォルトポート: 8080(MCP_HTTP_PORT で設定可能)。

Related MCP server: mcp-server-s3

認証

Wasabi Stats API(stats.wasabisys.com)は、S3互換オブジェクトストレージAPIとは別の、よりシンプルなAPIで、単一の静的ヘッダーを使用し、ログインやトークン交換はありません。

Authorization: <AccessKey>:<SecretKey>

使用するキーは、Wasabiのルートキー、または billing/stats ポリシー(WasabiAccountStatsAccess または WasabiBucketStatsAccess)がアタッチされたサブユーザーキーである必要があります。ストレージ専用のキーは拒否されます。これはベンダーの設計上、すでに完全にステートレスであり、MCP呼び出し間でキャッシュされるものはありません。

HEADER 認証パラメータの説明

ヘッダー

型

必須

デフォルト値

列挙値

フィールド説明

例

X-Wasabi-Access-Key

string

はい

なし

なし

Wasabi API Access Key(Root key または billing/stats 権限ポリシーを持つ key である必要があります)

AGWZ1234567890ABCDEF

X-Wasabi-Secret-Key

string

はい

なし

なし

対応する Secret Key

a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0

どちらかのヘッダーが欠けていると 401 を返します:

{
  "error": "Missing credentials",
  "message": "This server requires the X-Wasabi-Access-Key and X-Wasabi-Secret-Key headers",
  "required_headers": ["X-Wasabi-Access-Key", "X-Wasabi-Secret-Key"],
  "optional_headers": []
}

環境変数

変数

型

必須

デフォルト値

説明

MCP_HTTP_PORT

int

いいえ

8080

HTTP リッスンポート

MCP_HTTP_HOST

string

いいえ

0.0.0.0

HTTP リッスンアドレス

WASABI_STATS_BASE_URL

string

いいえ

https://stats.wasabisys.com

Wasabi Stats API のベース URL(bucket の region に関係なく固定)

MCP エンドポイント

  • POST /mcp — MCPプロトコル(ストリーミング可能なHTTPトランスポート)

  • GET /health — ヘルスチェック。{"status": "ok"} を返します(純粋なローカルプローブで、Wasabi API は呼び出しません)

ツール一覧

ツール

機能

パラメータ

wasabi_get_bucket_utilizations

アカウント内のすべての bucket の毎日のストレージ/API 呼び出し使用量レコードを一覧表示

page_size(オプション、デフォルト 100、ハード上限 100 — Wasabi Stats API 自体のページあたりの上限)、page_num、from_date、to_date(すべてオプション)

レスポンスはベンダーの生のJSON({"PageInfo": {...}, "Records": [...]})で、コンパクトにシリアライズされ(インデントなし、ensure_ascii=False)、20,000文字に制限されます。Records リストがその制限を超える場合は、truncated/truncated_field/original_count マーカーがペイロードに追加されて切り詰められます。

エラーハンドリング

失敗時、ツールは(プロトコルレベルのエラーではなく)JSONエラーエンベロープを文字列として返します。

{"error": {"code": "upstream_error", "message": "...", "retryable": true}}

code は固定の語彙のいずれかです: not_configured、unauthorized、not_found、invalid_argument、rate_limited、upstream_error。retryable は、再試行が価値があるかどうかを呼び出し元に伝えます。空の結果セット(要求された範囲に使用量レコードがない場合)は、エラーではなく通常の空の結果として返されます。

テスト例

# Health check
curl -s http://localhost:8080/health

# Call a tool via the MCP protocol (streamable HTTP) — requires an
# initialize handshake first per the MCP spec; abbreviated example below
# shows the tool-call request body only:
curl -s -X POST http://localhost:8080/mcp \
  -H "X-Wasabi-Access-Key: <your-access-key>" \
  -H "X-Wasabi-Secret-Key: <your-secret-key>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "mcp-session-id: <session-id-from-initialize>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "wasabi_get_bucket_utilizations",
      "arguments": {}
    }
  }'

実機検証済み (2026-07-30) 実際の Wasabi アカウントに対して: wasabi_get_bucket_utilizations をこの実行中のサーバーを通じてエンドツーエンドで呼び出し、実際のデータを取得しました — 270ページにわたる540件の実際のバケット利用状況レコード。実際のバケット名(例: "oraclegroup"、"centrewestib")が ap-southeast-2 リージョンに含まれ、実際のストレージ/API呼び出しメトリクスが含まれていました。

API リファレンス

既知のギャップ

  • スコープは MSPbots が設定した1つのエンドポイントのみであり、ベンダーの全APIサーフェスではない — Wasabi Stats API には、アカウントレベルのサマリーエンドポイント(GET /v1/standalone/utilizations)や、名前または番号によるバケットごとの詳細検索もありますが、これらはここでは対象外です。Wasabi S3互換オブジェクトストレージAPI(バケット/オブジェクトのCRUD)は完全に別のAPIであり、これも対象外です。

  • MSPbots がこの統合のために保存する region フィールドは、このサーバーでは使用されない — MSPbots が実際に使用するエンドポイント(Stats API バケット利用状況)は、特定のバケットがどの Wasabi リージョンにあるかに関係なく、固定のベースURL(https://stats.wasabisys.com)を持ちます。各返却レコードには独自の Region フィールドがすでに含まれています。region は、このサーバーが行わない直接のS3互換オブジェクトストレージ呼び出しにのみ関係します。

  • from/to の日付範囲のデフォルトはベンダー制御 — 省略した場合、Wasabi は「1か月前」から「今日」までをデフォルトとします。このサーバーは独自のデフォルトを適用せず、指定がない場合はパラメータを単に省略します。

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    A lightweight MCP server that provides real-time hardware statistics including CPU, memory, disk, and NVIDIA GPU usage. It enables users to monitor system performance and retrieve comprehensive host machine specifications through a standardized interface.
    1
    -
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for uploading, listing, and retrieving files on S3-compatible storage (AWS S3, DigitalOcean Spaces) with public/private access and temporary URLs.
    4
    5 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for AWS S3 and compatible object stores, enabling LLM clients to browse buckets and fetch objects.
    MIT No Attribution