The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Yandex Merchants MCP listing page.
A1 Яндекс Товары MCP подключает AI-приложение к партнёрскому API Яндекс Товаров. Можно обычными словами менять цены, скидки и видимость отдельных товаров — без редактирования и повторной загрузки всего YML-фида. Подключение начинается прямо в диалоге: не нужно заранее создавать токен или редактировать конфигурацию.
status: "OK" в ответе Яндекс Товаров.npx; OAuth-токен остаётся на вашем компьютере.Попробуйте первым сообщением:
Проверь подключение к Яндекс Товарам и покажи доступные фиды.
Подключить сервер · Посмотреть сценарии · Открыть техническую документацию
Вы: Проверь подключение и покажи мои фиды.
Ассистент: Проверяет токен и показывает
feedIdи адрес каждого доступного фида.Вы: В фиде 1069 подготовь новую цену для SKU-123: 1 490 ₽ вместо 1 990 ₽. Сначала покажи изменение.
Ассистент: Подготовлено: фид 1069, товар SKU-123, новая цена 1 490 ₽, зачёркнутая цена 1 990 ₽. Отправить изменение?
Вы: Да, обнови.
Ассистент: Отправляет изменение и проверяет поле
statusв ответе. Операция завершена, если Яндекс Товары вернулиstatus: "OK".
Понадобятся Node.js 20 или новее, загруженный в Яндекс Товары YML-фид и логин Яндекса, под которым этот фид загружен. Сервер запускается через npx, поэтому отдельно устанавливать пакет не требуется.
YANDEX_MERCHANTS_OAUTH_TOKEN в конфигурации, этот шаг не нужен.Через интерфейс приложения:
Откройте Settings → MCP servers.
Нажмите Add server.
Выберите STDIO, затем укажите команду запуска npx -y mcp-yandex-merchants@latest.
Нажмите Save, затем Restart.
Через командную строку:
Проверьте подключение:
Затем в чате Codex попросите: «Подключи Яндекс Товары».
Проверьте сервер командой:
Затем начните диалог с просьбы подключить Яндекс Товары.
Актуальный официальный путь — Settings → Extensions. Для пользовательского desktop extension откройте Advanced settings → Extension Developer → Install Extension…, выберите файл .mcpb и следуйте подсказкам.
Этот репозиторий сейчас публикует npm-пакет со stdio и пока не содержит .mcpb. Поэтому используйте приведённый ниже JSON stdio-конфиг как fallback только в сборках Claude Desktop, где ещё поддерживается локальная конфигурация:
В таких сборках сохраните его в ~/Library/Application Support/Claude/claude_desktop_config.json на macOS или %APPDATA%\Claude\claude_desktop_config.json на Windows.
После сохранения перезапустите Claude Desktop, откройте новый диалог и попросите подключить Яндекс Товары.
Для всех проектов создайте ~/.cursor/mcp.json (Windows: %USERPROFILE%\.cursor\mcp.json); только для текущего проекта — .cursor/mcp.json:
В чате Cursor сервер появится среди доступных инструментов. Попросите подключить Яндекс Товары и пройдите вход через Яндекс.
Откройте палитру команд и выполните MCP: Open User Configuration. Добавьте в mcp.json:
Проверьте запуск командой MCP: List Servers, затем откройте чат и попросите подключить Яндекс Товары.
Это локальный MCP-сервер: приложение запускает
npxна вашем компьютере. Веб-версии ChatGPT и Claude сами по себе не могут запустить такой процесс — используйте настольное приложение, CLI или редактор с поддержкой локальных MCP-серверов.
check_access.feedId и адрес каждого фида — list_feeds.feedId понадобится для любого изменения. API не показывает состав фида, его статус и текущие значения товаров.
set_offer_price.update_offer_prices.set_offer_discount.set_offer_price.Цены передаются только в рублях. Если в одном фиде несколько предложений с одинаковым id, API изменит только первое.
hide_offer.hide_offers.show_offers.Товар можно скрыть бессрочно или на срок до 720 часов. При бессрочном скрытии он останется невидимым до отдельной команды на возврат.
raw_request позволяет обратиться к методу партнёрского API, для которого нет отдельного готового действия. Он поддерживает GET, POST и DELETE и принимает данные в исходном формате API.
raw_requestможет изменить реальные данные. Если нужное действие уже есть среди готовых инструментов, безопаснее использовать его.
Полные названия полей, форматы ответов и коды ошибок собраны в справочнике инструментов.
Сервер не создаёт, не удаляет и не загружает фиды. Он берёт feedId уже существующего YML-фида и отправляет в Яндекс Товары точечные изменения для указанных товаров.
Это удобно, когда нужно быстро:
Сам YML-фид по-прежнему управляется через кабинет Яндекс Товаров или Вебмастер. Содержимое фида сервер прочитать не может, поэтому id товаров и журнал изменений нужно хранить на своей стороне.
| Действие | Что происходит | Меняет данные |
|---|---|---|
check_access, list_feeds | Проверяет токен и показывает id и адреса фидов | Нет |
set_offer_price, set_offer_discount | Меняет цену одного товара | Да |
update_offer_prices | Меняет цены у 1–2 000 товаров | Да |
hide_offer, hide_offers | Скрывает один или несколько товаров | Да |
show_offers | Возвращает скрытые товары в показ | Да |
raw_request | Выполняет выбранный вызов API | Зависит от метода |
Сервер снижает риск ошибок следующим образом:
status в теле ответа, потому что HTTP 200 ещё не означает успешную запись;raw_request отправить OAuth-токен на посторонний адрес;Подтверждение перед записью зависит от AI-приложения. Если хотите сначала проверить значения, попросите ассистента подготовить изменение, показать
feedId, id товара и новые значения, а выполнить его — только после следующей команды.
Для обычного использования токен заранее не нужен:
Сервер использует PKCE: код из чата сам по себе нельзя обменять на токен — это может сделать только ваш запущенный сервер. Он запрашивает единственное право — products:partner-api («API поиска по товарам»). Полученный токен хранится локально в ~/.config/mcp-yandex-merchants/credentials.json с правами только для владельца и продлевается автоматически. Перезапускать AI-приложение после входа не нужно.
Проверить состояние — попросите «покажи статус подключения», отключить — «отключи Яндекс Товары». Выданный доступ отзывается в Яндекс ID.
Для CI и нестандартных установок доступна настройка через переменные окружения:
| Переменная | Назначение |
|---|---|
YANDEX_MERCHANTS_OAUTH_TOKEN | Готовый OAuth-токен с доступом products:partner-api — для CI и установок без диалога. Имеет приоритет над входом из диалога; сервер такой токен не обновляет и не удаляет. |
YANDEX_MERCHANTS_OAUTH_CLIENT_ID | ClientID собственного OAuth-приложения для входа из диалога вместо приложения A1 по умолчанию. |
YANDEX_MERCHANTS_BASE_URL | Корневой адрес API; по умолчанию https://yandex.ru/products/api/ext/partner. |
YANDEX_MERCHANTS_TIMEOUT_MS | Таймаут одного запроса; по умолчанию 60 000 мс. |
YANDEX_MERCHANTS_MAX_RETRIES | Число повторов при 429; по умолчанию 3. При 5xx и сетевых ошибках повторяются только запросы на чтение. |
Если используете собственное OAuth-приложение, зарегистрируйте его на oauth.yandex.ru/client/new (платформа «Веб-сервисы», Redirect URI https://oauth.yandex.ru/verification_code) и добавьте доступ products:partner-api — «API поиска по товарам». Готовый токен для YANDEX_MERCHANTS_OAUTH_TOKEN выдаёт страница https://oauth.yandex.ru/authorize?response_type=token&client_id=<ClientID>, открытая под логином, который загрузил YML-фид. Храните токен как пароль: не добавляйте конфигурацию с реальным токеном в Git и не отправляйте её посторонним.
Сервер запускается на вашем компьютере и напрямую обращается к https://yandex.ru/products/api/ext/partner. OAuth-токен добавляется только к запросам этого API: даже raw_request принимает относительный путь и не может отправить токен на другой сайт. При входе из диалога сервер дополнительно обращается к oauth.yandex.ru — только чтобы обменять код подтверждения на токен и продлевать его.
По умолчанию сервер отправляет на usage.gistrec.cloud анонимную техническую телеметрию: случайный идентификатор установки, имя события или инструмента, версию пакета, версию Node.js, ОС и сведения о подключившемся AI-клиенте. В неё не попадают OAuth-токен, данные аккаунта, id фидов и товаров, цены, аргументы инструментов и тексты запросов. Отправка выполняется в фоне и не влияет на работу сервера.
Чтобы отключить телеметрию для MCP-серверов A1, задайте переменную окружения:
Нашли ошибку или не хватает сценария? Создайте issue или напишите в Telegram.