Skip to main content

wildberries-mcp — MCP-сервер для API продавца Wildberries

PyPI Python License: MIT

wildberries-mcp подключает ИИ-агента — Claude, Cursor, VS Code, Codex и любой другой MCP-клиент — ко всему API продавца Wildberries: товарам и ценам, остаткам, заказам FBS, DBS и DBW, поставкам FBW, рекламе, отзывам и вопросам, аналитике, отчётам и финансам.

Сервер работает поверх wildberries-sdk и выходит вместе с ним. Wildberries меняет спецификации API несколько раз в неделю; после каждого изменения выходит новая версия SDK и сервера, и новые операции сразу доступны агенту.

📖 Справочник операций: https://eslazarev.github.io/wildberries-sdk/ · 📡 Изменения API: @wildberries_api_radar · 💻 Исходный код: GitHub

Что можно попросить у агента

  • «Сколько у меня необработанных отзывов? Покажи последние пять с оценкой ниже четырёх»
  • «Какие товары заканчиваются на складах WB?»
  • «Выгрузи отчёт о продажах за прошлую неделю и посчитай выручку по артикулам»
  • «Какие рекламные кампании сейчас активны и сколько на них потрачено?»
  • «Покажи новые сборочные задания FBS»
  • «Ответь на свежие вопросы покупателей» — изменяющая операция, клиент спросит подтверждение

Агент сам находит нужную операцию, читает её параметры и вызывает её. Знать пути API и названия методов не нужно.

Быстрый старт

  1. Установите uv. Он сам скачает сервер и Python 3.10+, ставить их вручную не нужно.
  2. Создайте токен API в личном кабинете продавца Wildberries. У токена должен быть доступ к тем категориям (контент, аналитика, вопросы и отзывы и т. д.), с которыми будет работать агент.
  3. Подключите сервер к клиенту — команды ниже. Сервер читает токен из переменной WB_API_TOKEN.
  4. Перезапустите клиент или начните новую сессию и спросите агента о своём магазине.

Подключение к клиентам

Claude Code

claude mcp add wildberries --env WB_API_TOKEN=<токен> -- uvx wildberries-mcp

С флагом -s user сервер будет доступен во всех проектах. Проверка: claude mcp list должен показать wildberries: uvx wildberries-mcp - ✔ Connected.

Claude Desktop, Cursor, Windsurf, Gemini CLI

Все четыре используют один формат. Добавьте сервер в раздел mcpServers файла конфигурации клиента — Claude Desktop: Settings → Developer → Edit Config; Cursor: ~/.cursor/mcp.json; Windsurf: ~/.codeium/windsurf/mcp_config.json; Gemini CLI: ~/.gemini/settings.json.

{
  "mcpServers": {
    "wildberries": {
      "command": "uvx",
      "args": ["wildberries-mcp"],
      "env": { "WB_API_TOKEN": "<токен>" }
    }
  }
}

VS Code

Файл .vscode/mcp.json в проекте (или команда MCP: Add Server):

{
  "servers": {
    "wildberries": {
      "type": "stdio",
      "command": "uvx",
      "args": ["wildberries-mcp"],
      "env": { "WB_API_TOKEN": "<токен>" }
    }
  }
}

Codex CLI

В ~/.codex/config.toml:

[mcp_servers.wildberries]
command = "uvx"
args = ["wildberries-mcp"]
env = { WB_API_TOKEN = "<токен>" }

Без uv

pip install wildberries-mcp      # Python 3.10+

В конфигурации клиента укажите команду wildberries-mcp без аргументов (или python -m wildberries_mcp) — вместо uvx и ["wildberries-mcp"].

Как это устроено

В API Wildberries около трёхсот операций. Если сделать по инструменту на каждую, их схемы займут контекст агента ещё до первого вопроса, а многие клиенты ограничивают число инструментов. Поэтому инструментов четыре, и агент работает с ними по шагам:

search_operations → describe_operation → call_read_operation   (GET)
                                       → call_write_operation  (POST, PUT, PATCH, DELETE)

1. Поиск. Агент ищет операцию словами — по-русски или по-английски, — по пути или по имени метода. Русские слова находятся в любой форме («отзывов» → «Отзывы»), а распространённые слова связаны с английскими путями: «остатки» находит /stocks, «отзывы» — /feedbacks.

search_operations({"query": "неотвеченные отзывы", "limit": 2})

{"operations": [
  {"operation_id": "communications.get_v1_feedbacks_count_unanswered",
   "verb": "GET", "path": "/api/v1/feedbacks/count-unanswered",
   "summary": "Необработанные отзывы", "module": "communications", "read_only": true},
  {"operation_id": "communications.get_v1_feedbacks",
   "verb": "GET", "path": "/api/v1/feedbacks",
   "summary": "Список отзывов", "module": "communications", "read_only": true}
 ],
 "modules": ["analytics", "communications", "..."]}

2. Описание. Агент получает описание операции из документации Wildberries (вместе с лимитами запросов), хост, параметры с JSON Schema и ссылку на страницу справочника.

describe_operation({"operation_id": "communications.get_v1_feedbacks"})

{"operation_id": "communications.get_v1_feedbacks", "verb": "GET",
 "path": "/api/v1/feedbacks", "host": "https://feedbacks-api.wildberries.ru",
 "description": "Метод возвращает список отзывов по заданным фильтрам…",
 "parameters": [
   {"name": "is_answered", "in": "query", "required": true, "wire_name": "isAnswered",
    "schema": {"type": "boolean", "description": "Вернуть только обработанные отзывы…"}},
   {"name": "take", "in": "query", "required": true,
    "schema": {"type": "integer", "description": "Количество отзывов (max. 5 000)"}},
   …
 ],
 "docs_url": "https://eslazarev.github.io/wildberries-sdk/reference/communications/get_api_v1_feedbacks/",
 "call_with": "call_read_operation"}

3. Вызов. Агент передаёт аргументы и получает HTTP-статус и тело ответа Wildberries.

call_read_operation({"operation_id": "communications.get_v1_feedbacks",
                     "arguments": {"isAnswered": false, "take": 5, "skip": 0}})

{"status": 200,
 "body": {"data": {"countUnanswered": 3, "feedbacks": […]}, "error": false},
 "rate_limit": {"X-Ratelimit-Remaining": "2"}}

Параметры можно называть так, как в документации Wildberries (isAnswered, nmId), или так, как в SDK (is_answered, nm_id). Значения пути, query и заголовков проверяются по типам SDK до отправки: агент получает понятную ошибку вместо ответа 400. Тело запроса уходит в Wildberries как есть — поле, которого ещё нет в спецификации, не потеряется.

Инструменты

Инструмент Аргументы Что делает
search_operations query, module (необязательно), limit (по умолчанию 15, до 100) ищет операции; пустой query с module выводит все операции раздела
describe_operation operation_id описание, хост, параметры, JSON Schema тела запроса, ссылка на справочник
call_read_operation operation_id, arguments выполняет GET-операцию
call_write_operation operation_id, arguments выполняет POST, PUT, PATCH и DELETE

Каждый инструмент отказывается выполнять операцию не своего типа: GET не пройдёт через call_write_operation, а POST — через call_read_operation.

Разделы API

module Раздел документации Wildberries
general Общее: проверка подключения, информация о продавце, рейтинг, новости и уведомления, пользователи кабинета
items Работа с товарами: карточки, цены и скидки, остатки, склады продавца
orders_fbs Заказы FBS: сборочные задания, поставки, пропуска
orders_dbw Заказы DBW
dbs DBS — доставка силами продавца
in_store_pickup Самовывоз
orders_fbw Поставки FBW: черновики и поставки, склады, опции приёмки
promotion Маркетинг и продвижение: рекламные кампании, ставки, бюджеты, акции
communications Общение с покупателями: отзывы, вопросы, чаты, заявки на возврат
rates Тарифы: комиссии по категориям, тарифы для коробов и монопаллет, на поставку и возврат
analytics Аналитика и данные: воронка продаж, поисковые запросы, остатки на складах
reports Отчёты: продажи, заказы, удержания, самовыкупы, маркировка, замеры склада
finances Документы и бухгалтерия: баланс, отчёты реализации, документы

Полный список операций с параметрами и примерами — в справочнике.

Чтение и изменение данных

Меньше половины операций — GET, они только читают данные. Остальные идут через call_write_operation: они меняют цены и скидки, остатки, карточки товаров, рекламные кампании и бюджеты, статусы заказов, публикуют ответы покупателям. У этого инструмента стоят аннотации MCP destructiveHint и idempotentHint: false: клиенты, которые их учитывают, спрашивают подтверждение перед каждым вызовом. Читайте, что агент собирается отправить, прежде чем соглашаться.

Часть отчётов и списков в API Wildberries тоже сделана через POST — например, отчёты об остатках и воронка продаж. Они проходят через call_write_operation, хотя ничего не меняют, поэтому клиент спросит подтверждение и для них.

Лимиты запросов

Wildberries ограничивает частоту запросов отдельно для каждой категории методов; лимиты каждой операции перечислены в её описании, которое агент получает из describe_operation. Вместе с ответом сервер передаёт агенту заголовки X-Ratelimit-* и Retry-After, если Wildberries их прислал. После ответа 429 агент видит, сколько ждать, и может повторить запрос.

Настройки

Переменная По умолчанию Назначение
WB_API_TOKEN — токен API продавца; без него поиск и описание работают, а вызовы — нет
WB_MCP_MAX_RESPONSE_CHARS 60000 ответ длиннее обрезается, и агент получает подсказку сузить запрос фильтрами и пагинацией

Частые проблемы

Что видит агент Причина и что делать
WB_API_TOKEN is not set переменная не попала в окружение сервера: проверьте блок env в конфигурации клиента и перезапустите клиент
401 и token is expired срок токена истёк — создайте новый в личном кабинете и замените его в конфигурации
401 на одних разделах при 200 на других у токена нет доступа к категории этой операции — выпустите токен с нужными категориями
429 Too Many Requests превышен лимит категории; подождите столько, сколько указано в заголовках ответа
Network error reaching Wildberries … Failed to resolve DNS-сервер сети не знает хост Wildberries (так бывает с роутерами); проверьте nslookup <хост> или смените DNS
response cut at … characters ответ слишком большой — попросите агента взять меньше записей за раз или увеличьте WB_MCP_MAX_RESPONSE_CHARS
file uploads are not supported through MCP файлы через сервер не передаются — загрузку медиафайла карточки и отправку файла в чат делайте через SDK напрямую
сервер не появляется в клиенте убедитесь, что uvx есть в PATH того окружения, из которого клиент запускает серверы; при необходимости укажите полный путь к uvx

Версии

Версия сервера совпадает с версией wildberries-sdk, и каждый выпуск зависит ровно от своей версии SDK. uvx wildberries-mcp берёт последнюю версию; чтобы зафиксировать конкретную, укажите uvx wildberries-mcp==<версия>. Что изменилось в API — в CHANGELOG и в Telegram-канале @wildberries_api_radar.

Ошибки и предложения — в issues.

In English

wildberries-mcp is an MCP server that gives AI agents (Claude, Cursor, VS Code, Codex and other MCP clients) access to every operation of the Wildberries seller API through wildberries-sdk. It exposes four tools — search_operations, describe_operation, call_read_operation and call_write_operation — instead of one tool per operation, so a few hundred schemas do not fill the agent's context. Write operations are annotated as destructive, and clients that honour MCP annotations ask before running them. The server is released together with the SDK, so new operations reach the agent as soon as Wildberries publishes them.

claude mcp add wildberries --env WB_API_TOKEN=<token> -- uvx wildberries-mcp

The server reads the seller's API token from WB_API_TOKEN. Operation summaries are in Russian; search accepts Russian and English words, paths and method names. Reference: https://eslazarev.github.io/wildberries-sdk/.

Лицензия

MIT

Metadata

Release files for wildberries-mcp 0.1.189

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wildberries-mcp 0.1.189
File Size Uploaded Provenance Actions
wildberries_mcp-0.1.189.tar.gz 23.5 kB Without provenance Details for wildberries_mcp-0.1.189.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for wildberries-mcp 0.1.189
File Interpreter ABI Platform Actions
wildberries_mcp-0.1.189-py3-none-any.whl Python 3 none any Details for wildberries_mcp-0.1.189-py3-none-any.whl

Total release size: 41.6 kB

Release files / wildberries_mcp-0.1.189.tar.gz

Download URL wildberries_mcp-0.1.189.tar.gz
Size 23.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1db1d0e6e40d99fe33272ba23bc1852f5159369275bc9c688da400ee2790f7b9
BLAKE2b-256 checksum
How to use checksums
0c7e60b667832a7a3f62e4190edd2b34c4e362b000ff01eff9242d08f7f65f27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / wildberries_mcp-0.1.189-py3-none-any.whl

Download URL wildberries_mcp-0.1.189-py3-none-any.whl
Size 18.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f2c046ad2b1224dc9102502359aae4fe146c584d42d31328c7600e6c99fc5a57
BLAKE2b-256 checksum
How to use checksums
be65d777bd4b7b38cfd697b2d8f9cca65660f7de355c0d09c29d83ee19ad1bca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Security for wildberries-mcp 0.1.189

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.189 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page