Skip to main content
Glama
MSPbotsAI

wasabi-mcp

by MSPbotsAI

wasabi-mcp

MCP-сервер для Wasabi (горячее облачное хранилище, совместимое с S3). Предоставляет данные об использовании бакетов Stats API Wasabi как инструмент MCP.

Обзор

  • Статeless HTTP-сервис. Учетные данные никогда не сохраняются — каждый запрос передает свои учетные данные через заголовки, которые используются только в течение этого одного запроса.

  • Поддерживает параллельные запросы; изоляция учетных данных для каждого запроса осуществляется через Python contextvars, а не через глобальный/общий экземпляр клиента.

  • Точки входа: POST /mcp (протокол MCP) и GET /health (проверка здоровья).

  • Порт по умолчанию: 8080 (настраивается через MCP_HTTP_PORT).

Related MCP server: mcp-server-s3

Аутентификация

Wasabi Stats API (stats.wasabisys.com) — отдельный, более простой API, отличный от S3-совместимого API объектного хранилища — использует один статический заголовок, без обмена логином/токеном:

Authorization: <AccessKey>:<SecretKey>

Используемые ключи должны быть корневыми ключами Wasabi или ключами подпользователя с прикрепленной политикой биллинга/статистики (WasabiAccountStatsAccess или WasabiBucketStatsAccess) — обычные ключи только для хранения отклоняются. Это уже полностью без сохранения состояния по замыслу вендора; ничего не кэшируется между вызовами MCP.

Описание параметров заголовка

Заголовок

Тип

Обязателен

По умолчанию

Допустимые значения

Описание поля

Пример

X-Wasabi-Access-Key

string

Да

—

—

Ключ доступа Wasabi API (должен быть корневым ключом или ключом с политикой биллинга/статистики)

AGWZ1234567890ABCDEF

X-Wasabi-Secret-Key

string

Да

—

—

Соответствующий секретный ключ

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

Базовый URL Wasabi Stats API (не зависит от региона бакета, фиксированный)

Конечная точка MCP

  • POST /mcp — протокол MCP (потоковый HTTP-транспорт)

  • GET /health — проверка здоровья, возвращает {"status": "ok"} (чисто локальная проверка, не вызывает Wasabi API)

Список инструментов

Инструмент

Функция

Параметры

wasabi_get_bucket_utilizations

Перечисляет ежедневные записи об использовании хранилища/вызовов 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, вызванный от начала до конца через этот работающий сервер, вернул реальные данные — 540 реальных записей об использовании бакетов на 270 страницах, включая реальные имена бакетов (например, "oraclegroup", "centrewestib") в регионе ap-southeast-2, с реальными метриками хранилища/вызовов API.

Справочник API

Известные пробелы

  • Область действия — ровно один настроенный конечный пункт MSPbots, а не полная поверхность API вендора — Wasabi Stats API также предлагает сводную конечную точку уровня аккаунта (GET /v1/standalone/utilizations) и детальные запросы по бакетам по имени или номеру; они выходят за рамки здесь. S3-совместимый API объектного хранилища Wasabi (CRUD бакетов/объектов) — это совершенно отдельный API, также выходящий за рамки.

  • Поле region, которое MSPbots также хранит для этой интеграции, не используется этим сервером — единственная конечная точка, которую MSPbots фактически использует (использование бакетов Stats API), имеет фиксированный базовый URL (https://stats.wasabisys.com) независимо от того, в каком регионе Wasabi находится данный бакет; каждая возвращаемая запись уже включает собственное поле Region. region имел бы значение только для прямых вызовов S3-совместимого объектного хранилища, которые этот сервер не выполняет.

  • Значения по умолчанию для диапазона дат from/to контролируются вендором — если не указаны, Wasabi по умолчанию использует "один месяц назад" до "сегодня"; этот сервер не применяет собственное значение по умолчанию и просто опускает параметр, если он не предоставлен.

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