mcp-wb
mcp-wb
Remote MCP-сервер, который подключает Claude к общению с покупателями на Wildberries: отзывы, вопросы и чаты. Разворачивается как кастомный коннектор организации — каждый сотрудник подключает его у себя в Claude, а токен Wildberries остаётся только на сервере.
Что умеет
Чтение
Инструмент | Что делает |
| Сводка: сколько отзывов и вопросов ждут ответа, есть ли непросмотренные, сколько чатов |
| Отзывы |
| Вопросы |
| Чаты и лента сообщений с курсором |
| Под кем работает коннектор и что ему разрешено |
Ответы клиентам — только через черновик
Инструмент | Что делает |
| Готовит ответ на отзыв |
| Готовит правку опубликованного ответа (WB даёт одну попытку за 60 дней) |
| Готовит ответ на вопрос |
| Готовит сообщение в чат |
| Просмотр и отмена черновиков |
| Единственный инструмент, который что-то отправляет покупателю. Требует |
| Отклонение вопроса и снятие метки «не просмотрен» |
Каждая отправка пишется в журнал audit с почтой сотрудника, текстом и результатом.
Related MCP server: Meta Cloud API MCP Server
Почему устроено именно так
Токен Wildberries — персональный, и он не покидает сервер. Лимиты WB для категории «Вопросы и отзывы» у базового токена — 5 запросов в час, у чатов — 1 запрос в час; работать на них нельзя. Персональный токен даёт 3 запроса в секунду, но по правилам WB его запрещено передавать третьим лицам и использовать в облачных сервисах — он предназначен для систем на собственной или арендованной инфраструктуре. Отсюда: свой VPS, один токен на сервере, сотрудники ходят через OAuth.
Личность сотрудника устанавливает наш сервер. Claude не передаёт MCP-серверу ни email, ни ID пользователя, а вариант «сервер без авторизации» админка организации не поддерживает. Поэтому сервер сам работает как OAuth 2.1 authorization server (PKCE, Dynamic Client Registration, RFC 9728/8414), а личность берёт у Google, Яндекса или из одноразового кода.
Роли. ALLOWED_EMAIL_DOMAINS / ALLOWED_EMAILS решают, кто вообще войдёт. RESPONDER_EMAILS и ADMIN_EMAILS — кто может отправлять. Остальные получают токен без права wb:write и физически не могут вызвать wb_draft_send.
Требования
VPS с публичным IP, доступный из интернета (Claude ходит на сервер со своей стороны — сервер за NAT или VPN не подойдёт)
Домен с A-записью на этот IP
Docker и Docker Compose
Персональный токен WB с категориями «Вопросы и отзывы» и «Чат с покупателями»
Права Owner или Primary Owner в организации Claude (только они добавляют коннекторы)
Развёртывание
1. Токен Wildberries
Личный кабинет продавца → Настройки → Доступ к API → Создать токен → вкладка «Для интеграции вручную» → тип Персональный. Отметьте категории «Вопросы и отзывы» и «Чат с покупателями», уровень доступа — Чтение и запись. Токен показывается один раз, живёт 180 дней — поставьте напоминание о замене.
2. Конфигурация
git clone <репозиторий> mcp-wb && cd mcp-wb
cp .env.example .envЗаполните .env. Обязательный минимум:
PUBLIC_URL=https://mcp-wb.вашдомен.ru
MCP_DOMAIN=mcp-wb.вашдомен.ru
ACME_EMAIL=admin@вашдомен.ru
WB_TOKEN=<токен из шага 1>
SESSION_SECRET=<openssl rand -hex 32>
ALLOWED_EMAIL_DOMAINS=вашдомен.ru
ADMIN_EMAILS=вы@вашдомен.ru
RESPONDER_EMAILS=менеджер1@вашдомен.ru,менеджер2@вашдомен.ruПроверьте токен до запуска:
npm install && npx tsx scripts/probe-wb.ts3. Вход сотрудников
Google Workspace (IDENTITY_PROVIDER=google) — в Google Cloud Console создайте OAuth-клиент типа «Web application», в Authorized redirect URIs добавьте:
https://mcp-wb.вашдомен.ru/idp/google/callbackGOOGLE_CLIENT_ID и GOOGLE_CLIENT_SECRET — в .env.
Яндекс ID (IDENTITY_PROVIDER=yandex) — приложение на oauth.yandex.ru, Callback URI:
https://mcp-wb.вашдомен.ru/idp/yandex/callbackБез внешнего IdP (IDENTITY_PROVIDER=invite) — выдавайте одноразовые коды:
docker compose exec mcp-wb node dist/scripts/invite.js ivan@вашдомен.ru4. Запуск
docker compose up -d --buildCaddy сам получит сертификат Let's Encrypt. Проверка:
curl https://mcp-wb.вашдомен.ru/.well-known/oauth-protected-resource/mcpДолжен вернуться JSON с "resource": "https://mcp-wb.вашдомен.ru/mcp".
5. Подключение к организации Claude
Settings → Connectors в организации (пункт виден только Owner).
Add → Custom → Web.
URL:
https://mcp-wb.вашдомен.ru/mcpAdvanced settings трогать не нужно: сервер поддерживает Dynamic Client Registration и зарегистрирует Claude сам.
Сохраните — коннектор появится у всех сотрудников организации.
6. Что делает каждый сотрудник
Открывает Claude → Connectors → находит коннектор → Connect → входит корпоративной почтой. Дальше можно писать обычным языком: «покажи неотвеченные отзывы за неделю», «подготовь ответ на отзыв X».
Проверить свои права: wb_whoami.
Эксплуатация
Журнал действий. Всё, что ушло покупателю, лежит в таблице audit файла базы:
docker compose exec mcp-wb \
node -e "const d=require('better-sqlite3')('/data/mcp-wb.db');console.table(d.prepare('SELECT datetime(ts,\"unixepoch\") t,actor,action,target,outcome FROM audit ORDER BY ts DESC LIMIT 30').all())"Отозвать доступ у сотрудника — уберите его из ALLOWED_EMAILS / отключите в Google Workspace и перезапустите контейнер. Действующие токены проверяют список доступа при каждом запросе, так что доступ пропадёт сразу.
Замена токена WB — раз в 180 дней: новый токен в .env, затем docker compose … up -d.
Лимиты. Клиент сам держит темп: 3 запроса/с для отзывов и вопросов, 10 за 10 с для чатов, с ожиданием по заголовку X-Ratelimit-Retry при 429.
Разработка
npm install
npm run dev # tsx watch
npm run typecheck
WB_SANDBOX=true npm run dev # песочница WB (только отзывы и вопросы, чата в ней нет)Для локального прогона OAuth поставьте PUBLIC_URL=http://localhost:3000 и IDENTITY_PROVIDER=invite.
Границы
Чат: у WB нет sandbox-хоста, тестировать можно только на боевом кабинете.
Ответы на отзывы и вопросы проходят модерацию WB и публикуются не мгновенно.
Правка ответа — одна попытка в течение 60 дней, дальше текст фиксируется навсегда.
Заявки на возврат (
returns-api) требуют отдельной категории токена и в этой версии не подключены.Сервер работает без сессий: на каждый HTTP-запрос создаётся свой экземпляр MCP-сервера, поэтому серверных уведомлений в сторону клиента нет.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityBmaintenanceConnects Claude to Amazon Seller Central via the SP-API for natural language queries on sales, inventory, reports, fees, reimbursements, and analytics.2047
- AlicenseBqualityDmaintenanceEnables Claude to manage WhatsApp templates, flows, and send messages through the WhatsApp Cloud API.3126MIT
- AlicenseAqualityDmaintenanceConnects Claude to Open WebUI, enabling chat management, RAG knowledge bases, files, functions, and prompts directly from Claude.26252MIT
- FlicenseAqualityCmaintenanceConnects Claude to your Amazon Seller Central account via the Selling Partner API, enabling queries for recent orders, sales summaries, FBA inventory, and financial events.4
Related MCP Connectors
Drive your real WhatsApp inbox from Claude — send, reply, label, assign, and triage via TimelinesAI.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Amazon brand, seller, niche & buy-box intelligence inside your own Claude or ChatGPT.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hollowmountain/wb_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server