mcp-wb
HARBEZ WB Feedbacks — MCP-коннектор
Отзывы и вопросы Wildberries приходят прямо в чат Claude — тебе и сотрудникам, с любого устройства организации. Токены Seller API лежат только в окружении сервера: их нет ни в переписке, ни на ноутбуках, ни в файлах проекта.
Claude (проект «Коммерческий отдел»)
│ HTTPS, streamable HTTP, персональный Bearer-ключ
▼
Caddy (TLS, Let's Encrypt)
│
MCP-сервер (Docker, слушает только внутри сети compose)
│ токены WB из .env
▼
feedbacks-api.wildberries.ruЧто умеет
Инструмент | Назначение |
| Список селлер-аккаунтов (ключи и названия, без токенов) |
| Сколько отзывов без ответа, из них за сегодня, средняя оценка |
| Отзывы с фильтрами: аккаунт, артикул, оценка, период, статус ответа |
| Сводка по SKU: средняя, распределение 1–5, доля негатива, без ответа |
| Рейтинг конкретного артикула |
| Вопросы покупателей |
| Публикация ответа. Выключена по умолчанию, требует |
Запросы к WB троттлятся, тексты отзывов обрезаются до 600 символов,
wb_feedbacks_stats возвращает только агрегаты — чтобы не выжигать контекст.
Related MCP server: marketplace-mcp
Развёртывание на ВПС
Нужны: ВПС с Ubuntu/Debian, поддомен с A-записью на него, root на старте.
# 1. На ВПС под root — пользователи, фаервол, Docker, клон репозитория
git clone git@github.com:Albertharbez/mcp-wb.git /srv/wb-mcp
bash /srv/wb-mcp/deploy/setup-vps.sh albert <логин-сотрудника>
# 2. Заполнить /srv/wb-mcp/.env (шаблон — .env.example)
# MCP_DOMAIN, WB_TOKEN_*, MCP_CLIENT_KEYS
# 3. Поднять
cd /srv/wb-mcp && docker compose up -d --build
curl https://<MCP_DOMAIN>/healthz # -> {"ok":true}Обновление кода потом — deploy/update.sh: делает git pull, пересобирает,
поднимает и проверяет /healthz, а при неудаче показывает логи.
Токены WB создаются в каждом селлер-аккаунте: Настройки → Доступ к API → категория «Вопросы и отзывы». Один аккаунт — один токен.
Работа двоих на одном ВПС
Отдельный SSH-пользователь на каждого, вход только по ключу, пароли и root-логин отключены. Общего аккаунта нет — иначе не видно, кто что сделал.
Оба в группах
wb(каталог проекта/srv/wb-mcp, setgid — новые файлы наследуют группу) иdocker(поднять и посмотреть сервис)..env—640 root:wb: читают оба, посторонние на сервере нет.Код правится через git, а не вживую на сервере:
git pullвdeploy/update.sh.Персональный
MCP_CLIENT_KEYSна человека, не общий. В логах видно, кто обращался; увольнение — удалить строку и перезапустить, без ротации токенов WB.
Подключение к Claude
Claude → Settings → Connectors → Add custom connector:
URL https://<MCP_DOMAIN>/mcp, заголовок Authorization: Bearer <персональный ключ>.
Подключает владелец организации — тогда коннектор доступен отделу с любого устройства.
На корпоративном тарифе кастомные коннекторы может потребоваться сначала разрешить
в настройках организации.
Безопасность
Токены только в env сервера. В git не попадают (
.gitignore), в ответах инструментов не фигурируют, вtoStringаккаунта заменены заглушкой.Аутентификация fail-closed: пустой
MCP_CLIENT_KEYS— сервер не стартует. Открытый режим только явнымMCP_ALLOW_NO_AUTH=trueи только для localhost.Наружу открыты три пути:
POST /mcp,GET /healthz(без деталей),GET /status(детали, за ключом). Остальное — 404 на уровне Caddy.Сам сервер порт наружу не публикует: единственный вход — через Caddy.
Публикация ответов — единственная необратимая операция:
destructiveHint,confirm=trueи рубильникWB_ALLOW_WRITESна сервере.Токен, который уже был отправлен в переписку, считается скомпрометированным. Отозвать.
Что было исправлено при развёртывании
Что | Почему |
Аутентификация fail-open → fail-closed | Пустой |
| Публичный эндпоинт раскрывал внутреннюю структуру; детали ушли в |
Фильтр по оценке ушёл внутрь листания | Запрос «жалобы, limit=100» возвращал не 100 жалоб, а те несколько, что попались среди первых 100 отзывов |
Троттлер выстроен в цепочку | Параллельные вызовы читали одно значение |
| Stateless-сервер отдавал 404 и невнятную ошибку |
| В зависимостях express 4, типы стояли от 5 |
Проверено и не проверено
Синтаксис и логика правок вычитаны;
tsc --noEmitи запуск не выполнялись — на машине, где велась работа, нет Node. Первый прогон сборки — на ВПС (docker compose up -d --build), там же tsc отработает внутри образа.Обращения к WB на живых токенах не тестировались. После заполнения
.envпроверять наwb_feedbacks_unanswered_count— самый дешёвый вызов.Состав полей и лимиты сверить перед продом: https://dev.wildberries.ru (раздел «Отзывы и вопросы»).
This server cannot be deployed
Maintenance
Related MCP Connectors
Read requests and votes; with write access, manage feedback and draft changelogs. OAuth required.
Read and manage feedback posts, votes and comments on Cawcus boards.
Read AI-gateway analytics, configs, virtual keys, workspaces and users; log request feedback.
Read, reply to and resolve website feedback threads from your coding agent.
Related MCP Servers
- AlicenseBqualityBmaintenanceWildberries Seller API MCP server providing 15 tools for managing products, prices, stocks, orders, sales, warehouses, supplies, statistics, feedbacks, and ABC analysis with built-in rate limiting and 409 penalty protection.3028 npm16MIT
- AlicenseAqualityCmaintenanceEnables AI agents to read and work with Wildberries, Ozon, and Yandex Market seller accounts through typed tools, multi-account support, unified data schemas, rate limiting, audit, and encrypted credential storage.1730 npmMIT
- FlicenseAqualityBmaintenanceEnables AI assistants to retrieve a Wildberries seller's product cards and customer reviews through the official Content and Feedbacks APIs.272 npm-
- AlicenseAqualityBmaintenanceEnables read-only analytics and product search for a Wildberries seller account, covering items, advertising, sales, stock, reviews, finances, and tariffs through MCP clients like ChatGPT or Cursor.12MIT