Fixed
- Критично: неверный путь API. Запросы шли на
POST /v3/operations, но Mindbox требует
сегмент режима —/v3/operations/sync(request→response) или/v3/operations/async
(fire-and-forget). Без него вызовы к реальному Mindbox не проходят. Теперь по умолчаниюsync;
run_operationпринимает параметрmode. - Критично: краш при старте без credentials. Клиент создавался на верхнем уровне каждого
tool-модуля, и конструктор бросал исключение при отсутствииMINDBOX_API_KEY/MINDBOX_ENDPOINT_ID—
сервер падал при импорте, ломая tool-discovery (Smithery scan,npxбез env). Клиент теперь
ленивый (getClient()): сервер стартует и отдаёт список инструментов без ключей, ошибка — только
при реальном вызове. - Критично: сломанный HTTP-режим. На каждый запрос создавался новый транспорт и вызывался
server.connect()на одном общемMcpServer(коллизии request-ID, «висящие» сессии). Переписано
на корректный stateless-паттерн SDK (свежий сервер+транспорт на запрос,405на GET/DELETE). create_orderбольше не отправляет пустого клиента: добавлена проверка идентификатора, как в
остальных инструментах.
Added
- Повторы с экспоненциальным backoff и джиттером на
429/5xx/таймаут/сетевые сбои; уважается
Retry-After. Идемпотентность черезtransactionId(UUID v4, переиспользуется между повторами);
TransactionAlreadyProcessedтрактуется как успех. - Защита HTTP-транспорта: привязка к
127.0.0.1по умолчанию, DNS-rebinding protection
(allowedHosts/allowedOrigins), CORS*только на/health, опциональный bearer-токен
(MINDBOX_HTTP_TOKEN). run_operationпомечен как опасный, логирует вызовы и отключается черезMINDBOX_ALLOW_RAW=0.- Разбор ответа: ветвление по
status, поддержкаvalidationMessages, защитный парсинг вместо
слепых приведений типов. server.jsonдля публикации в Official MCP Registry.- Tooling: ESLint + Prettier,
.editorconfig,.env.example, Dependabot,Dockerfile/.dockerignore. - Валидация ввода:
.email()для email-полей. - Тюнинг клиента через env:
MINDBOX_MAX_RETRIES,MINDBOX_RETRY_BASE_MS,MINDBOX_TIMEOUT_MS.
Changed
- CI теперь гоняет тесты, typecheck и lint на матрице Node 18/20/22 (+ smoke-импорт без credentials).
- Версия и количество инструментов больше не хардкодятся — берутся из
package.jsonи реестра инструментов. .mcp.jsonприведён кMINDBOX_API_KEY(как в README/Smithery);MINDBOX_SECRET_KEYостаётся алиасом.randomUUIDимпортируется изnode:crypto(надёжно на Node 18).
Изменение пути endpoint меняет фактическое поведение интеграции — при релизе рекомендуется
минимум minor-bump (а лучше major, если кто-то полагался на прежний нерабочий путь).
Установка: npx -y @theyahia/mindbox-mcp@1.2.0 · npm
Тег v1.2.0 создан ретроспективно и указывает на коммит 775e19c — тот самый, из которого версия 1.2.0 была опубликована в npm 23.06.2026 (gitHead пакета). Содержимое тега соответствует опубликованному пакету.