MCP server for the Yandex Merchants partner API: feeds, offer prices, discounts, hide/unhide.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Яндекс Товары MCP — MCP-сервер, с которым Claude, Cursor, Codex и другие AI-клиенты обновляют цены, скидки и видимость офферов в Яндекс Товарах по обычной команде. Он работает поверх уже загруженного YML-фида: для точечного изменения не нужно редактировать и повторно отправлять весь файл.
raw_request.status из ответа API: OK означает успех, ERROR — ошибку операции; одного HTTP 200 недостаточно.npx на Node.js 20+ и подключается к AI-клиенту по stdio.Кому подходит: e-commerce-командам, которые уже передают YML-фид в Яндекс Товары и хотят быстро исправлять отдельные цены или видимость офферов из AI-клиента. Сервер не создаёт фиды, не заменяет кабинет и не умеет читать текущую цену или список скрытых товаров.
Если цена изменилась или товар закончился, полная пересборка фида добавляет лишнюю цепочку: найти источник, изменить выгрузку, загрузить её и дождаться обработки. MCP-сервер отправляет точечное изменение в партнёрский API. При этом он не притворяется системой учёта: API умеет записывать состояние офферов, но почти не позволяет читать его обратно.
Проверить доступ без изменений
Вы: Проверь токен и покажи доступные фиды. Ничего не меняй.
Ассистент: Вызову
check_accessиlist_feeds, верну количество фидов, их id и URL.
Обновить цену с явным подтверждением
Вы: Подготовь изменение цены SKU-123 в фиде 1069 на 1 490 ₽ со старой ценой 1 990 ₽. Сначала покажи, что отправишь.
Ассистент: Покажу
feed_id,offer_id, новую и зачёркнутую цену.set_offer_priceвызову только после вашей следующей команды.
Скрыть закончившиеся товары
Вы: Скрой SKU-7 и SKU-8 из фида 1069. Это реальное изменение.
Ассистент: Отправлю оба оффера через
hide_offersи проверюstatusв ответе API. Прочитать список скрытых офферов после записи этот API не позволяет.
Цена, скрытие и возобновление показа — реальные записи. Безопасный первый шаг — check_access или list_feeds. Все остальные специализированные инструменты изменяют данные в Яндекс Товарах.
Подключить сервер · Посмотреть сценарии · Открыть справочник инструментов
Вы: Проверь подключение и покажи мои фиды.
Ассистент: Токен работает, доступно два фида. Верну их
feedIdи URL; никаких записей не выполняю.Вы: Для SKU-123 из нужного фида поставь цену 1 490 ₽ вместо 1 990 ₽. Перед записью проверь, что скидка попадает в допустимый диапазон.
Ассистент: Скидка валидна. После подтверждения отправлю одну запись и признаю её успешной только при
status: "OK".Вы: Товар закончился. Скрой его до отдельной команды на возврат.
Ассистент: Вызову
hide_offerбез TTL. Когда товар вернётся, отдельныйshow_offersвозобновит показ.
Примеры показывают последовательность доступных инструментов. Реальные фиды, результаты операций и доступность офферов всегда определяются вашим аккаунтом и ответами API Яндекс Товаров.
Нужны Node.js 20+, загруженный в Яндекс Товары YML-фид и OAuth-токен со scope products:partner-api.
Получите OAuth-токен под тем же логином, который загрузил фид.
Добавьте MCP-сервер в Codex:
Начните новую задачу Codex и проверьте подключение запросом без записи:
Проверь доступ к API Яндекс Товаров и покажи мои фиды. Ничего не изменяй.
Для Claude Code, Claude Desktop, Cursor и VS Code готовые конфигурации находятся в разделе «Установка в другие AI-клиенты».
{ ok, feedsCount } без изменения данных — check_access.feedId и URL каждого фида — list_feeds.feed_id нужен для любой записи. API не возвращает состав, статус или текущие значения офферов внутри фида.
set_offer_price.update_offer_prices.set_offer_discount.Все цены отправляются в рублях с currencyId: "RUR". Если в одном фиде несколько предложений имеют одинаковый id, API обновляет только первое.
hide_offer.hide_offers.show_offers.Скрытие может быть бессрочным или содержать ttl_in_hours до 720 часов. Поскольку описание сериализации TTL в официальной документации неполное, при сбое используйте скрытие без срока и отдельный show_offers.
raw_request вызывает относительный путь партнёрского API Яндекс Товаров с методом GET, POST или DELETE. Тело запроса передаётся в исходном wire-формате API.
raw_requestпомечен как разрушительный инструмент. Он способен выполнять произвольную запись. Используйте специализированный инструмент, если он уже есть.
Полные входные схемы, коды ошибок и форматы ответов собраны в справочнике инструментов.
Партнёрский API Яндекс Товаров — write-mostly API. Из трёх ресурсов только feeds-info читает данные; цены и видимость записываются без возможности проверить текущее состояние тем же API.
| Действие | Что происходит | Изменяет офферы |
|---|---|---|
check_access, list_feeds | Проверяет токен и читает id с URL фидов | Нет |
set_offer_price, set_offer_discount | Меняет цену одного оффера | Да |
update_offer_prices | Меняет цены 1–2 000 офферов | Да |
hide_offer, hide_offers | Скрывает один или несколько офферов | Да |
show_offers | Возобновляет показ скрытых офферов | Да |
raw_request | Выполняет произвольный поддерживаемый вызов API | Зависит от метода |
Что сервер делает для снижения риска:
status, чтобы AI-клиент мог отличить OK от ERROR, даже если HTTP-ответ имеет код 200.raw_request хостом Merchants API, чтобы OAuth-токен не ушёл на посторонний адрес.Поведение подтверждений задаёт AI-клиент, а не MCP-сервер. Если хотите сначала увидеть изменение, прямо попросите ассистента показать feed_id, offer_id и новые значения, но не вызывать инструмент до подтверждения.
После подключения начните новую задачу и сначала запустите check_access без изменений.
Откройте claude_desktop_config.json: на macOS он находится в ~/Library/Application Support/Claude/, на Windows — в %APPDATA%\Claude\.
Добавьте сервер в ~/.cursor/mcp.json или в .cursor/mcp.json проекта:
Создайте .vscode/mcp.json. Здесь используется ключ servers, а не mcpServers:
https://oauth.yandex.ru/verification_code.products:partner-api — «API поиска по товарам».https://oauth.yandex.ru/authorize?response_type=token&client_id=<ClientID> под логином, который загрузил YML-фид.YANDEX_MERCHANTS_OAUTH_TOKEN.check_access.Логин токена должен совпадать с логином, под которым загружен фид. Иначе API не вернёт доступные фиды. После подтверждения прав на сайт в Вебмастере доступ к API может появиться не сразу.
Токен хранится открытым текстом в конфигурации AI-клиента. Относитесь к нему как к паролю и не добавляйте конфиг с реальным токеном в Git.
| Переменная | Обязательна | По умолчанию | Что задаёт |
|---|---|---|---|
YANDEX_MERCHANTS_OAUTH_TOKEN | да | — | OAuth-токен со scope products:partner-api |
YANDEX_MERCHANTS_BASE_URL | нет | https://yandex.ru/products/api/ext/partner | Корневой URL API |
YANDEX_MERCHANTS_TIMEOUT_MS | нет | 60000 | Таймаут одного запроса, мс |
YANDEX_MERCHANTS_MAX_RETRIES | нет | 3 | Повторы при 429; для 5xx и сетевых ошибок — только GET-запросы |
ASKADS_TELEMETRY | нет | включена | 0, false, off или no отключает анонимную телеметрию |
Сервер запускается на вашей машине и обращается к https://yandex.ru/products/api/ext/partner напрямую. OAuth-токен добавляется только к запросам этого API. Даже raw_request принимает относительный путь: переход на посторонний хост блокируется.
По умолчанию сервер отправляет на usage.gistrec.cloud три вида технических событий: запуск сервера, имя вызванного инструмента и код причины неудачного запуска.
В событие входят случайный идентификатор установки, версия пакета, имя и версия AI-клиента, версия Node.js и операционная система. OAuth-токен, данные аккаунта, id фидов и офферов, цены, аргументы инструментов и тексты запросов не читаются и не отправляются. Отправка выполняется в фоне с таймаутом 2 секунды и не влияет на работу сервера.
Чтобы отключить телеметрию для MCP-серверов Ask Ads, добавьте:
Реализация находится в src/telemetry.ts.
currencyId: "RUR"; другие валюты API не принимает.mcp-yandex-merchants.Проверить проект локально:
Тесты не обращаются к сети. npm run smoke — отдельная живая read-only проверка с реальным токеном.
Нашли ошибку или не хватает сценария? Создайте issue или напишите в Telegram: @gistrec.
MIT — см. LICENSE.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/yandex-merchants-mcp)<a href="https://allmcps.com/mcp/yandex-merchants-mcp"><img src="https://allmcps.com/api/badge/yandex-merchants-mcp?style=directory" alt="Yandex Merchants MCP on AllMCPs" /></a>