Skip to main content
Glama
MSPbotsAI

wasabi-mcp

by MSPbotsAI

wasabi-mcp

MCP-Server für Wasabi (S3-kompatibler Hot Cloud Storage). Stellt die Bucket-Nutzungsdaten der Wasabi Stats API als MCP-Tool bereit.

Überblick

  • Zustandsloser HTTP-Dienst. Es werden niemals Anmeldedaten gespeichert – jede Anfrage übermittelt ihre eigenen Anmeldedaten über Header, die nur für die Lebensdauer dieser einzelnen Anfrage verwendet werden.

  • Unterstützt gleichzeitige Anfragen; die Isolierung der Anmeldedaten pro Anfrage erfolgt über Python-contextvars, nicht über eine globale/geteilte Client-Instanz.

  • Einstiegspunkte: POST /mcp (MCP-Protokoll) und GET /health (Gesundheitscheck).

  • Standardport: 8080 (konfigurierbar über MCP_HTTP_PORT).

Related MCP server: mcp-server-s3

Authentifizierung

Die Wasabi Stats API (stats.wasabisys.com) – eine separate, einfachere API im Vergleich zur S3-kompatiblen Objektspeicher-API – verwendet einen einzigen statischen Header, ohne Login-/Token-Austausch:

Authorization: <AccessKey>:<SecretKey>

Die verwendeten Schlüssel müssen Wasabi-Root-Schlüssel oder Unterbenutzerschlüssel mit einer zugehörigen Abrechnungs-/Statistikrichtlinie (WasabiAccountStatsAccess oder WasabiBucketStatsAccess) sein – reine Speicher-Schlüssel werden abgelehnt. Dies ist bereits vom Hersteller selbst vollständig zustandslos; nichts wird über MCP-Aufrufe hinweg zwischengespeichert.

Header-Autorisierungsparameter

Header

Typ

Erforderlich

Standardwert

Enum-Werte

Feldbeschreibung

Beispiel

X-Wasabi-Access-Key

string

Ja

Keiner

Keine

Wasabi-API-Zugriffsschlüssel (muss Root-Key oder Key mit Abrechnungs-/Statistikrichtlinie sein)

AGWZ1234567890ABCDEF

X-Wasabi-Secret-Key

string

Ja

Keiner

Keine

Entsprechender geheimer Schlüssel

a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8g9h0

Fehlt einer der beiden Header, wird 401 zurückgegeben:

{
  "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": []
}

Umgebungsvariablen

Variable

Typ

Erforderlich

Standardwert

Beschreibung

MCP_HTTP_PORT

int

Nein

8080

HTTP-Listening-Port

MCP_HTTP_HOST

string

Nein

0.0.0.0

HTTP-Listening-Adresse

WASABI_STATS_BASE_URL

string

Nein

https://stats.wasabisys.com

Basis-URL der Wasabi-Stats-API (unabhängig von der Region des Buckets, fest)

MCP-Endpunkt

  • POST /mcp – MCP-Protokoll (streambarer HTTP-Transport)

  • GET /health – Gesundheitscheck, gibt {"status": "ok"} zurück (reine lokale Prüfung, ruft die Wasabi-API nicht auf)

Werkzeugliste

Tool

Funktion

Parameter

wasabi_get_bucket_utilizations

Listet tägliche Speicher-/API-Aufruf-Nutzungsdatensätze für alle Buckets des Kontos auf

page_size (optional, Standard 100, harte Obergrenze 100 – das Seitenlimit der Wasabi-Stats-API selbst), page_num, from_date, to_date (alle optional)

Antworten sind das rohe JSON des Anbieters ({"PageInfo": {...}, "Records": [...]}), kompakt serialisiert (ohne Einrückung, ensure_ascii=False) und auf 20.000 Zeichen begrenzt – wenn die Records-Liste die Antwort darüber hinaus treiben würde, wird sie mit truncated/truncated_field/original_count-Markierungen im Payload abgeschnitten.

Fehlerbehandlung

Bei Fehlern geben Werkzeuge einen JSON-Fehlerumschlag (als Zeichenfolge, nicht als Protokollfehler) zurück, anstatt eine Ausnahme auszulösen:

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

code ist eine von einer festen Vokabelliste: not_configured, unauthorized, not_found, invalid_argument, rate_limited, upstream_error. retryable teilt dem Aufrufer mit, ob ein erneuter Versuch sinnvoll ist. Leere Ergebnismengen (keine Nutzungsdatensätze für den angeforderten Zeitraum) werden als normales leeres Ergebnis zurückgegeben, nicht als Fehler.

Testbeispiel

# 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": {}
    }
  }'

Live-verifiziert (2026-07-30) gegen ein echtes Wasabi-Konto: wasabi_get_bucket_utilizations Ende-zu-Ende über diesen laufenden Server aufgerufen lieferte echte Daten – 540 echte Bucket-Nutzungsdatensätze über 270 Seiten, einschließlich echter Bucket-Namen (z. B. "oraclegroup", "centrewestib") in der Region ap-southeast-2, mit echten Speicher-/API-Aufruf-Metriken.

API-Referenz

Bekannte Lücken

  • Der Umfang ist genau der eine konfigurierte Endpunkt von MSPbots, nicht die vollständige API-Oberfläche des Anbieters – die Wasabi-Stats-API bietet auch einen Kontoübersichts-Endpunkt (GET /v1/standalone/utilizations) und detaillierte Bucket-Abfragen nach Name oder Nummer; diese sind hier nicht enthalten. Die S3-kompatible Objektspeicher-API von Wasabi (Bucket-/Objekt-CRUD) ist eine völlig separate API und ebenfalls nicht enthalten.

  • Das Feld region, das MSPbots für diese Integration ebenfalls speichert, wird von diesem Server nicht verwendet – der eine Endpunkt, den MSPbots tatsächlich nutzt (Stats-API-Bucket-Nutzungen), hat eine feste Basis-URL (https://stats.wasabisys.com), unabhängig davon, in welcher Wasabi-Region ein bestimmter Bucket liegt; jeder zurückgegebene Datensatz enthält bereits sein eigenes Region-Feld. region wäre nur für direkte S3-kompatible Objektspeicheraufrufe relevant, die dieser Server nicht durchführt.

  • Die Standardwerte für den from/to-Datumsbereich werden vom Anbieter gesteuert – wenn sie weggelassen werden, verwendet Wasabi standardmäßig "vor einem Monat" bis "heute"; dieser Server wendet keinen eigenen Standard an und lässt den Parameter einfach weg, wenn er nicht angegeben wird.

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