yandex-marketing-mcp
This MCP server provides 155 tools for managing Yandex Direct (ad campaigns), Yandex Metrika (analytics), Wordstat (keyword research), and Yandex Webmaster (SEO), with self-configuring OAuth and Yandex Cloud integration.
Authorization & Setup
Configure OAuth client ID, access tokens, and check auth status
Set up Yandex Cloud service accounts and IAM tokens for Wordstat
Yandex Direct — Campaigns & Ads
Create, update, pause, resume, archive/unarchive campaigns with all bidding strategies
Manage ad groups, text ads, dynamic ads, image ads, and shopping ads
Control ad lifecycle: moderate, pause, resume, archive
Yandex Direct — Keywords & Bidding
Add, retrieve, and check search volume of keywords; deduplicate and research keywords
Set manual/automatic bids and manage bid modifiers (device, demographic, regional)
Yandex Direct — Extensions & Negative Keywords
Manage shared negative keyword sets, sitelink sets, and ad extensions/callouts
Yandex Direct — Retargeting & Audiences
Create retargeting lists based on Metrika goals/segments; manage audience targeting conditions
Yandex Direct — Media Assets
Upload/manage ad images, videos, video creatives, product feeds, VCards, and smart ad targets
Yandex Direct — Reporting & Utilities
Generate TSV statistics reports; access reference dictionaries; manage excluded sites and blocked IPs
Update campaign strategies; get client account info; check account changes
Wordstat — Keyword Research
Get top search queries with frequency, regional, and device breakdown
Analyze search dynamics over time; view regional distribution; check API quota
Yandex Metrika — Analytics
Manage counters, goals, segments, filters, access grants, delegates, labels, and annotations
Generate table, time-series, comparison (A vs B), and drilldown reports
Upload offline conversions, calls, advertising expenses, and user parameters
Yandex Webmaster — SEO
Add/manage hosts, run site verification, view diagnostics and SQI history
Monitor indexing history, crawled/in-search page samples, and popular search queries
Manage sitemaps, inspect external backlinks and broken internal links, submit URLs for recrawl
Safety & Multi-Account Features
Read-only mode, confirm mode (preview before execution), sandbox mode for Direct testing
Multi-account support via
client_loginparameter; allowed logins whitelist for access control
Provides tools for configuring Yandex Cloud service accounts and IAM tokens to enable Wordstat keyword analysis and other Yandex marketing services.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@yandex-marketing-mcp create a new text campaign in Yandex Direct for summer sale"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
yandex-marketing-mcp
MCP-сервер для управления Яндекс Директом, аналитикой в Яндекс Метрике, подбором ключевых слов через Wordstat и SEO-инструментами Яндекс Вебмастера — с самонастраивающимся OAuth прямо из AI-ассистента.
155 инструментов для полного цикла работы с рекламой и поиском из Claude Code, Cursor, Windsurf и других MCP-клиентов.
Установка
npm install && npm run buildТребуется Node.js 20+.
Related MCP server: Yandex Webmaster MCP Server
Подключение к MCP-клиенту
Добавьте в конфигурацию MCP-клиента (например, ~/.claude.json, секция mcpServers):
{
"yandex-marketing": {
"type": "stdio",
"command": "node",
"args": ["F:/projects/yandex-marketing-mcp/build/index.js"]
}
}Поправьте путь к build/index.js под вашу систему.
Авторизация (самонастройка)
Сервер не требует токенов при запуске — он проведёт авторизацию через инструменты. Конфигурация хранится в ~/.yandex-marketing-mcp/config.json и обновляется автоматически. Переменные окружения (YANDEX_OAUTH_CLIENT_ID, YD_OAUTH_TOKEN, YC_FOLDER_ID) читаются один раз при старте как начальные значения — источник правды всегда файл конфигурации.
Шаг 1. Зарегистрируйте OAuth-приложение
Перейдите на https://oauth.yandex.ru/client/new и создайте приложение:
Redirect URI: выберите «Подставить URL для разработки» (
https://oauth.yandex.ru/verification_code)В разделе «Доступ к данным» отметьте следующие скоупы:
direct:api— управление рекламой в Яндекс Директеmetrika:read— чтение данных Метрикиmetrika:write— управление целями и счётчикамиcloud:auth— IAM-токен (для Wordstat больше не работает, см. «Настройка Wordstat» ниже)webmaster:hostview— просмотр данных Вебмастераwebmaster:verify— верификация сайтов в Вебмастере
Сохраните и запомните Client ID
Шаг 2. Сохраните Client ID через инструмент
Вызовите yd_set_client_id с вашим Client ID — инструмент сохранит его и вернёт ссылку для авторизации.
Шаг 3. Получите токен
Откройте ссылку из ответа yd_set_client_id в браузере, подтвердите доступ. После редиректа скопируйте значение параметра access_token из адресной строки.
Шаг 4. Сохраните токен
Вызовите yd_set_token с полученным токеном. Токен проверяется через API Метрики перед сохранением.
Проверка статуса: yd_auth_status — показывает, что настроено, валиден ли токен, и подсказывает следующий шаг. Поле token_valid относится к Директу, Метрике и Вебмастеру; готовность Wordstat показывается отдельно в wordstat_ready.
Шаг 5. Настройка Wordstat — сервисный аккаунт Yandex Cloud
Wordstat ходит через Yandex Cloud и требует IAM-токен. С 1 июня 2026 года Облако не обменивает на IAM пользовательские OAuth-токены, выпущенные начиная с этой даты — запрет привязан к дате выпуска токена, поэтому перевыпуск не помогает. Скоупа cloud:auth теперь недостаточно, нужен сервисный аккаунт.
# ID каталога
yc resource-manager folder list
# Сервисный аккаунт и авторизованный ключ
yc iam service-account create --name wordstat-mcp
yc iam key create --service-account-name wordstat-mcp -o key.jsonПриватный ключ в Облаке не хранится и повторно не выдаётся — если потеряете key.json, придётся создавать новый ключ.
Дальше вызовите yd_set_service_account:
{ "key_file": "~/key.json", "yc_folder_id": "b1g..." }Сервер подпишет JWT (PS256) и сам будет обменивать его на IAM-токен, продлевая по мере истечения. Проверить: yd_wordstat_regions_tree.
Временный вариант, если сервисный аккаунт заводить некогда: yc iam create-token и затем yd_set_iam_token. IAM-токен живёт не больше 12 часов, после чего вызовы упадут — это костыль на один сеанс, не решение.
Сервисному аккаунту нужна роль на каталог для доступа к Wordstat, а к облаку — привязанный платёжный аккаунт. Актуальные названия ролей и тарифы смотрите в документации Yandex Search API: сверьте их в браузере перед первым платным вызовом.
Возможности
Сервис | Инструментов | Описание |
Авторизация | 5 | Self-setup OAuth + сервисный аккаунт Yandex Cloud |
Яндекс Директ (основной) | 46 | Кампании, группы, объявления, ключевики, ставки, корректировки, минус-фразы, сайтлинки, ретаргетинг, изображения, отчёты |
Яндекс Директ (расширенный) | 26 | Визитки, фиды, смарт-таргеты, видео, креативы, площадки, стратегии |
Wordstat | 5 | Частотность запросов, динамика, регионы |
Яндекс Метрика | 43 | Счётчики, цели, сегменты, фильтры, доступы, отчёты, аннотации, офлайн-данные, метки |
Яндекс Вебмастер | 30 | Хосты, верификация, индексирование, поисковые запросы, ссылки, рекроул |
Полный список инструментов
Авторизация
Инструмент | Описание |
| Проверить статус: client_id, токен, folder_id, готовность Wordstat |
| Сохранить Client ID OAuth-приложения и получить ссылку для авторизации |
| Сохранить OAuth access_token (с валидацией через Метрику); опционально — folder_id |
| Настроить сервисный аккаунт Yandex Cloud для Wordstat (key_file или key_json) |
| Временно сохранить готовый IAM-токен из |
Яндекс Директ — Кампании
Инструмент | Описание |
| Список кампаний с фильтрами (тип, статус, ID) |
| Создать текстовую кампанию (все стратегии: PAY_FOR_CONVERSION, WB_MAXIMUM_CLICKS и др.) |
| Обновить настройки кампании (имя, бюджет, минус-фразы, дата окончания) |
| Приостановить / возобновить / архивировать / разархивировать кампанию |
Яндекс Директ — Группы объявлений
Инструмент | Описание |
| Создать группы объявлений в кампании |
| Получить группы по кампании или ID групп |
| Обновить группу (имя, регионы, минус-фразы, UTM-параметры) |
Яндекс Директ — Объявления
Инструмент | Описание |
| Создать текстовые объявления (с сайтлинками и картинками) |
| Обновить текстовые объявления |
| Получить объявления по кампании, группе или ID |
| Модерация / пауза / возобновление / архив объявлений |
| Создать динамическое текстовое объявление |
| Создать графическое объявление (TextImageAd) |
| Создать товарное объявление (v501 API) |
Яндекс Директ — Ключевые фразы
Инструмент | Описание |
| Добавить ключевые фразы в группу |
| Получить фразы по кампании, группе или ID |
| Проверить наличие трафика у фраз (до 10 000) |
| Дедупликация и устранение пересечений фраз |
Яндекс Директ — Ставки
Инструмент | Описание |
| Установить ставки для ключевых фраз |
| Получить ставки и прогнозы трафика |
| Установить ставки (поиск и сеть) |
| Автоматические ставки по целевой позиции |
Яндекс Директ — Корректировки ставок
Инструмент | Описание |
| Добавить корректировки (устройства, демография, регионы) |
| Получить корректировки |
| Обновить корректировки по ID |
| Удалить корректировки |
| Включить / выключить корректировки |
Яндекс Директ — Минус-фразы
Инструмент | Описание |
| Создать набор минус-фраз (общий, до 30 наборов) |
| Получить наборы минус-фраз |
| Обновить набор минус-фраз |
| Удалить набор минус-фраз |
Яндекс Директ — Сайтлинки и уточнения
Инструмент | Описание |
| Создать набор быстрых ссылок (1–8 штук) |
| Получить наборы быстрых ссылок |
| Удалить наборы быстрых ссылок |
| Создать уточнения (callouts, до 25 символов) |
| Получить уточнения |
| Удалить уточнения |
| Привязать уточнения к объявлению (v501) |
Яндекс Директ — Ретаргетинг и аудитории
Инструмент | Описание |
| Создать список ретаргетинга на основе целей Метрики |
| Получить списки ретаргетинга |
| Удалить списки ретаргетинга |
| Добавить аудиторный таргетинг в группу |
| Получить аудиторные таргетинги |
| Удалить аудиторные таргетинги |
Яндекс Директ — Изображения
Инструмент | Описание |
| Загрузить изображения (base64, до 100 за раз) |
| Получить изображения |
| Удалить изображения |
Яндекс Директ — Видео и креативы
Инструмент | Описание |
| Загрузить видео из файла |
| Получить видео |
| Создать видеокреатив |
| Получить креативы |
Яндекс Директ — Фиды
Инструмент | Описание |
| Добавить фид (RETAIL, HOTELS, REALTY, AUTOMOBILES, FLIGHTS, OTHER) |
| Получить фиды |
| Обновить фид |
| Удалить фиды |
Яндекс Директ — Визитки
Инструмент | Описание |
| Создать визитку для кампании |
| Получить визитки |
| Удалить визитки |
Яндекс Директ — Смарт-таргеты
Инструмент | Описание |
| Создать смарт-таргет (фильтр фида) |
| Получить смарт-таргеты |
| Пауза / возобновление / удаление смарт-таргетов |
Яндекс Директ — Площадки и стратегия
Инструмент | Описание |
| Получить список заблокированных площадок |
| Обновить список заблокированных площадок |
| Заблокировать IP-адреса (до 25 шт.) |
| Сменить стратегию ставок, CPA, цель, недельный бюджет |
Яндекс Директ — Отчёты и справочники
Инструмент | Описание |
| Статистика (TSV, любой тип: кампании, группы, объявления, фразы) |
| Справочники (регионы, валюты, категории, временные зоны и др.) |
| Справочник регионов |
| Справочник интересов |
| Проверка изменений с заданной временной метки |
| Информация об аккаунте (баланс, настройки, логин) |
| Организации из Яндекс Бизнеса |
Wordstat API
Инструмент | Описание |
| Популярные запросы с ключевым словом (частотность, регионы, устройства) |
| Динамика частотности по периодам (день / неделя / месяц) |
| Региональное распределение запросов |
| Дерево регионов Wordstat (ID для фильтрации) |
| Квота API Wordstat |
Яндекс Метрика — Счётчики
Инструмент | Описание |
| Список счётчиков |
| Детали счётчика |
| Создать счётчик |
| Обновить счётчик |
| Удалить счётчик |
Яндекс Метрика — Цели
Инструмент | Описание |
| Список целей счётчика |
| Создать цель |
| Обновить цель |
| Удалить цель |
Яндекс Метрика — Сегменты
Инструмент | Описание |
| Список сегментов |
| Создать сегмент |
| Обновить сегмент |
| Удалить сегмент |
Яндекс Метрика — Фильтры
Инструмент | Описание |
| Список фильтров счётчика |
| Создать фильтр (IP, URL, заголовок и др.) |
| Обновить фильтр |
| Удалить фильтр |
Яндекс Метрика — Доступы
Инструмент | Описание |
| Список прав доступа к счётчику |
| Добавить доступ (view или edit) |
| Обновить доступ |
| Удалить доступ |
| Список делегатов (глобальный доступ) |
| Добавить делегата |
| Удалить делегата |
Яндекс Метрика — Отчёты
Инструмент | Описание |
| Табличный отчёт (визиты, пользователи, конверсии, произвольные метрики) |
| Отчёт по времени (группировка: день, неделя, месяц) |
| Сравнение двух периодов (A vs B) |
| Иерархический drilldown |
Яндекс Метрика — Метки и аннотации
Инструмент | Описание |
| Список меток |
| Создать метку |
| Обновить метку |
| Удалить метку |
| Привязать счётчик к метке |
| Отвязать счётчик от метки |
| Список аннотаций на графиках |
| Создать аннотацию |
| Обновить аннотацию |
| Удалить аннотацию |
Яндекс Метрика — Офлайн-данные
Инструмент | Описание |
| Загрузить офлайн-конверсии |
| Статус загрузки конверсий |
| Загрузить данные о звонках |
| Загрузить рекламные расходы |
| Загрузить параметры пользователей |
Яндекс Вебмастер — Хосты
Инструмент | Описание |
| Получить данные текущего пользователя (user_id) |
| Список всех хостов (верифицированных и нет) |
| Добавить хост на верификацию |
| Детали хоста |
| Удалить (отвязать) хост |
| Сводка хоста: SQI и количество проблем |
| Список владельцев хоста |
Яндекс Вебмастер — Верификация
Инструмент | Описание |
| Статус верификации хоста |
| Запустить верификацию (DNS, HTML-файл, мета-тег и др.) |
Яндекс Вебмастер — Диагностика и SQI
Инструмент | Описание |
| Диагностика и список проблем хоста |
| История SQI (Site Quality Index) |
Яндекс Вебмастер — Индексирование
Инструмент | Описание |
| История crawled-страниц |
| Примеры проиндексированных страниц |
| История страниц в поиске |
| Примеры страниц в поиске |
| Примеры страниц, добавленных или удалённых из поиска |
Яндекс Вебмастер — Поисковые запросы
Инструмент | Описание |
| Популярные поисковые запросы (показы, клики, CTR, позиция) |
| Агрегированная история поисковых запросов |
Яндекс Вебмастер — Карты сайта
Инструмент | Описание |
| Карты сайта, известные Яндексу |
| Карты сайта, добавленные пользователем |
| Добавить карту сайта |
| Удалить карту сайта |
Яндекс Вебмастер — Ссылки
Инструмент | Описание |
| Примеры внешних ссылок (бэклинков) |
| История количества внешних ссылок |
| Примеры битых внутренних ссылок |
Яндекс Вебмастер — Рекроул
Инструмент | Описание |
| Отправить URL на переиндексацию |
| Список задач очереди рекроула |
| Статус задачи рекроула |
| Дневная квота рекроула |
| Мониторируемые важные страницы |
Переменные окружения
Все переменные опциональны — сервер запускается без них и проведёт настройку через инструменты.
Переменная | Описание |
| Client ID OAuth-приложения (seed; сохраняется через |
| OAuth access_token (seed; сохраняется через |
| ID каталога Yandex Cloud для Wordstat (seed; сохраняется через |
| ID сервисного аккаунта Yandex Cloud (seed; сохраняется через |
| ID авторизованного ключа сервисного аккаунта (seed) |
| Приватный ключ сервисного аккаунта в PEM (seed) |
| Готовый IAM-токен из |
|
|
| Логин клиента по умолчанию (для агентских аккаунтов) |
|
|
|
|
| Белый список логинов клиентов через запятую (только для инструментов Директа) |
|
|
| Путь к лог-файлу (пусто — только stderr, файл не создаётся) |
|
|
Режимы безопасности
Read-only (
YD_READONLY=true) — агент видит и анализирует данные, но физически не может создать, изменить или удалить кампании, ставки, счётчики или цели.Confirm-режим (
YD_CONFIRM=true) — любой изменяющий вызов сначала возвращает превью операции; для выполнения нужно повторить вызов сconfirm=true.Мульти-аккаунт — инструменты Директа принимают необязательный аргумент
client_login;YD_ALLOWED_LOGINSограничивает доступные логины.Partial-success — изменяющие ответы Директа разбираются на per-item
Errors/Warningsи сводятся в поле_partial_success.Логи — файл создаётся только при заданном
YD_LOG_FILE; тела запросов пишутся только приYD_LOG_BODIES=true.
Лицензия
MIT
Available Tools
153 toolsyd_ad_extensions_addB
Create ad extensions (callouts — short texts shown under ads, max 25 chars each).
Inputs: callouts (required), client_login.
yd_ad_extensions_deleteC
Delete ad extensions.
Inputs: ids (required), client_login.
yd_ad_extensions_getC
Get ad extensions by IDs.
Inputs: ids (required), client_login.
yd_adgroups_addC
Create ad groups in a campaign.
Inputs: campaign_id (required), groups (required), client_login.
yd_adgroups_getB
Get ad groups by campaign or group IDs.
Inputs: campaign_ids, group_ids, client_login.
yd_adgroups_updateC
Update an ad group (name, regions, negatives, tracking).
Inputs: adgroup_id (required), name, region_ids, negative_keywords, +2 more.
yd_ad_images_addC
Upload ad images (base64-encoded). Max 100 per request (recommended <=3).
Inputs: images (required), client_login.
yd_ad_images_deleteB
Delete ad images by hashes.
Inputs: ids (required), client_login.
yd_ad_images_getB
Get ad images by IDs or linked entities.
Inputs: ids, associated, client_login.
yd_ads_actionB
Moderate, suspend, resume, archive, or unarchive ads.
Inputs: ad_ids (required), action (required), client_login.
yd_ads_addA
Create text ads in ad groups. Supports bulk creation, sitelinks, and images.
Inputs: ads (required), client_login.
yd_ads_add_dynamicC
Create a dynamic text ad.
Inputs: adgroup_id (required), text (required), ad_image_hash, sitelink_set_id, +1 more.
yd_ads_add_imageB
Create an image ad (TextImageAd).
Inputs: adgroup_id (required), ad_image_hash (required), href (required), client_login.
yd_ads_add_shoppingC
Create a shopping ad (uses v501 API).
Inputs: adgroup_id (required), feed_id (required), conditions, default_texts, +2 more.
yd_ads_getB
Get ads by campaign, ad group, or ad IDs.
Inputs: campaign_ids, ad_group_ids, ad_ids, client_login.
yd_ads_updateC
Update existing text ads. Can change title, text, href, sitelinks, image, etc.
Inputs: ads (required), client_login.
yd_audience_targets_addC
Add audience targeting conditions to ad groups (retargeting lists or interests).
Inputs: targets (required), client_login.
yd_audience_targets_deleteC
Delete audience targeting conditions.
Inputs: ids (required), client_login.
yd_audience_targets_getB
Get audience targets by campaign, ad group, or target IDs.
Inputs: campaign_ids, ad_group_ids, ids, client_login.
yd_auth_statusA
Show Yandex auth status: whether client_id, OAuth token, and Wordstat folder_id are configured.
Inputs: client_login.
yd_bid_modifiers_addB
Add bid modifiers (adjustments) for demographics, devices, regions, etc.
Inputs: campaign_id, ad_group_id, mobile_adjustment, desktop_adjustment, +4 more.
yd_bid_modifiers_deleteB
Delete bid modifiers by IDs.
Inputs: ids (required), client_login.
yd_bid_modifiers_getC
Get bid modifiers for campaigns or ad groups.
Inputs: campaign_ids, ad_group_ids, client_login.
yd_bid_modifiers_setB
Update existing bid modifiers by their IDs.
Inputs: modifiers (required), client_login.
yd_bid_modifiers_toggleC
Enable or disable bid modifiers.
Inputs: bid_modifier_ids (required), enabled (required), client_login.
yd_bids_setC
Set bids for keywords.
Inputs: bids (required), client_login.
yd_blocked_ips_updateA
Set blocked IPs for a campaign (max 25). Only exact IPs, no subnets.
Inputs: campaign_id (required), ips (required), client_login.
yd_businesses_getB
Get organization profiles from Yandex Business linked to ads.
Inputs: ids (required), client_login.
yd_callouts_linkB
Link callout extensions to an ad (uses v501 API).
Inputs: ad_id (required), callout_ids (required), client_login.
yd_campaigns_actionC
Suspend, resume, archive, or unarchive campaigns.
Inputs: campaign_ids (required), action (required), client_login.
yd_campaigns_addB
Create a new text campaign. Supports all strategies: PAY_FOR_CONVERSION, WB_MAXIMUM_CLICKS, WB_MAXIMUM_CONVERSION_RATE, AVERAGE_CPA, SERVING_OFF, etc.
Inputs: name (required), start_date (required), end_date, daily_budget_amount, +11 more.
yd_campaigns_getC
Get list of campaigns. Filters: types, states, statuses, ids.
Inputs: types, states, ids, client_login.
yd_campaign_strategy_updateB
Update campaign bidding strategy. Change CPA, weekly limit, goal, or strategy type.
Inputs: campaign_id (required), strategy_search, strategy_network, cpa, +3 more.
yd_campaigns_updateB
Update campaign settings (name, budget, strategy, status, etc.).
Inputs: campaign_id (required), name, daily_budget_amount, daily_budget_mode, +3 more.
yd_changes_checkB
Check what changed since a given timestamp (campaigns, ad groups, ads, stats).
Inputs: timestamp (required), field_names (required), campaign_ids, client_login.
yd_clients_getA
Get advertiser account info (settings, balance, bonuses, etc.).
Inputs: client_login.
yd_creatives_addC
Create a video extension creative.
Inputs: video_id (required), client_login.
yd_creatives_getB
Get creatives. Optionally filter by IDs or types.
Inputs: creative_ids, types, client_login.
yd_dictionariesB
Get reference data: regions, currencies, ad categories, etc.
Inputs: names (required), client_login.
yd_excluded_sites_getB
Get list of excluded sites (blocked placements) for a campaign.
Inputs: campaign_id (required), client_login.
yd_excluded_sites_updateA
Set excluded sites (blocked placements) for a campaign. Replaces entire list.
Inputs: campaign_id (required), sites (required), client_login.
yd_feeds_addB
Add a feed for dynamic/smart/shopping ads.
Inputs: name (required), business_type (required), url (required), login, +3 more.
yd_feeds_deleteC
Delete feeds by IDs.
Inputs: feed_ids (required), client_login.
yd_feeds_getB
Get feeds. Optionally filter by IDs.
Inputs: feed_ids, client_login.
yd_feeds_updateC
Update a feed (name, URL, auth).
Inputs: feed_id (required), name, url, login, +2 more.
yd_interests_getC
Get interests dictionary (convenience wrapper).
Inputs: client_login.
yd_keyword_bids_getC
Get keyword bids and traffic forecasts.
Inputs: campaign_ids, ad_group_ids, keyword_ids, client_login.
yd_keyword_bids_setC
Set keyword bids (search and network).
Inputs: bids (required), client_login.
yd_keyword_bids_set_autoC
Set automatic bidding for keywords based on target position or other criteria.
Inputs: bids (required), client_login.
yd_keywords_addC
Add keywords to ad groups.
Inputs: keywords (required), client_login.
yd_keywords_getC
Get keywords by campaign, ad group, or keyword IDs.
Inputs: campaign_ids, ad_group_ids, keyword_ids, client_login.
yd_keywords_has_volumeA
Check if keywords have search volume (impressions) in specified regions. Returns YES/NO per device type. Max 10000 keywords, max 20 requests per 60 seconds.
Inputs: keywords (required), region_ids (required), client_login.
yd_keywords_researchA
Deduplicate keywords: merge duplicates, eliminate overlapping phrases. Preprocesses keywords before adding to campaigns.
Inputs: keywords (required), operations, client_login.
yd_metrika_annotation_createC
Create a chart annotation.
Inputs: counter_id (required), date (required), title (required), message.
yd_metrika_annotation_deleteB
Delete a chart annotation.
Inputs: counter_id (required), annotation_id (required).
yd_metrika_annotations_getC
List chart annotations for a counter.
Inputs: counter_id (required).
yd_metrika_annotation_updateC
Update a chart annotation.
Inputs: counter_id (required), annotation_id (required), date, title, +1 more.
yd_metrika_conversions_statusC
Get offline conversions upload status.
Inputs: counter_id (required).
yd_metrika_counter_createB
Create a new Metrika counter.
Inputs: name (required), site (required).
yd_metrika_counter_deleteC
Delete a Metrika counter.
Inputs: counter_id (required).
yd_metrika_counter_getB
Get counter details by ID.
Inputs: counter_id (required).
yd_metrika_counters_getA
List all Metrika counters. Optional search and favorite filter.
Inputs: search_string, favorite.
yd_metrika_counter_updateB
Update a Metrika counter.
Inputs: counter_id (required), name, site, favorite.
yd_metrika_delegate_addB
Add a delegate.
Inputs: user_login (required), comment.
yd_metrika_delegate_deleteC
Delete a delegate.
Inputs: user_login (required).
yd_metrika_delegates_getA
List all delegates.
Inputs: no named parameters.
yd_metrika_filter_createC
Create a filter for a counter.
Inputs: counter_id (required), attr (required), type (required), value (required), +2 more.
yd_metrika_filter_deleteB
Delete a filter.
Inputs: counter_id (required), filter_id (required).
yd_metrika_filters_getB
List filters for a counter.
Inputs: counter_id (required).
yd_metrika_filter_updateC
Update a filter.
Inputs: counter_id (required), filter_id (required), attr, type, +3 more.
yd_metrika_goal_createC
Create a goal for a counter.
Inputs: counter_id (required), name (required), goal_type (required), conditions (required).
yd_metrika_goal_deleteC
Delete a goal.
Inputs: counter_id (required), goal_id (required).
yd_metrika_goals_getC
List goals for a counter.
Inputs: counter_id (required).
yd_metrika_goal_updateC
Update a goal.
Inputs: counter_id (required), goal_id (required), name, goal_type, +1 more.
yd_metrika_grant_addB
Add access grant to a counter.
Inputs: counter_id (required), user_login (required), permission, comment.
yd_metrika_grant_deleteC
Delete access grant.
Inputs: counter_id (required), user_login (required).
yd_metrika_grants_getB
List access grants for a counter.
Inputs: counter_id (required).
yd_metrika_grant_updateC
Update access grant.
Inputs: counter_id (required), user_login (required), permission (required).
yd_metrika_label_createC
Create a label.
Inputs: name (required).
yd_metrika_label_deleteB
Delete a label.
Inputs: label_id (required).
yd_metrika_label_linkB
Link a counter to a label.
Inputs: counter_id (required), label_id (required).
yd_metrika_labels_getB
List all labels.
Inputs: no named parameters.
yd_metrika_label_unlinkB
Unlink a counter from a label.
Inputs: counter_id (required), label_id (required).
yd_metrika_label_updateC
Update a label.
Inputs: label_id (required), name (required).
yd_metrika_reportC
Get a Metrika report (table).
Inputs: counter_id (required), metrics (required), dimensions, date1, +4 more.
yd_metrika_report_by_timeC
Get a Metrika report grouped by time.
Inputs: counter_id (required), metrics (required), group (required), dimensions, +2 more.
yd_metrika_report_comparisonB
Get a Metrika comparison report (A vs B periods).
Inputs: counter_id (required), metrics (required), date1_a (required), date2_a (required), +3 more.
yd_metrika_report_drilldownD
Get a Metrika drilldown report.
Inputs: counter_id (required), metrics (required), dimensions (required), date1, +2 more.
yd_metrika_segment_createC
Create a segment.
Inputs: counter_id (required), name (required), expression (required).
yd_metrika_segment_deleteC
Delete a segment.
Inputs: counter_id (required), segment_id (required).
yd_metrika_segments_getB
List segments for a counter.
Inputs: counter_id (required).
yd_metrika_segment_updateC
Update a segment.
Inputs: counter_id (required), segment_id (required), name, expression.
yd_metrika_upload_callsC
Upload offline calls.
Inputs: counter_id (required), calls (required), client_id_type.
yd_metrika_upload_conversionsC
Upload offline conversions.
Inputs: counter_id (required), conversions (required), client_id_type.
yd_metrika_upload_expensesC
Upload advertising expenses.
Inputs: counter_id (required), expenses (required).
yd_metrika_upload_user_paramsC
Upload user parameters.
Inputs: counter_id (required), users (required), client_id_type.
yd_negative_keywords_sets_addA
Create shared negative keyword sets (max 30 total, reusable across campaigns).
Inputs: name (required), negative_keywords (required), client_login.
yd_negative_keywords_sets_deleteC
Delete shared negative keyword sets.
Inputs: ids (required), client_login.
yd_negative_keywords_sets_getB
Get shared negative keyword sets.
Inputs: ids, client_login.
yd_negative_keywords_sets_updateB
Update a shared negative keyword set.
Inputs: id (required), name, negative_keywords, client_login.
yd_regions_getC
Get regions dictionary (convenience wrapper).
Inputs: client_login.
yd_reportC
Get campaign statistics report. Returns TSV data.
Inputs: date_from (required), date_to (required), report_type (required), field_names (required), +2 more.
yd_retargeting_lists_addC
Create retargeting/audience conditions based on Yandex Metrika goals or audience segments.
Inputs: name (required), rules (required), description, client_login.
yd_retargeting_lists_deleteC
Delete retargeting lists.
Inputs: ids (required), client_login.
yd_retargeting_lists_getC
Get retargeting lists.
Inputs: ids, client_login.
yd_set_client_idA
Save the Yandex OAuth application client_id and return the authorization link. Register an app at https://oauth.yandex.ru/client/new with scopes direct:api, metrika:read, metrika:write, cloud:auth and redirect 'Подставить URL для разработки'.
Inputs: client_id (required), client_login.
yd_set_tokenA
Save the Yandex OAuth access_token (obtained via the authorize link). Validated against the Metrika API before saving. Optionally set yc_folder_id for Wordstat.
Inputs: oauth_token (required), yc_folder_id, client_login.
yd_sitelinks_addA
Create sitelink sets (quick links under ads, 1-8 per set).
Inputs: sitelinks (required), client_login.
yd_sitelinks_deleteC
Delete sitelink sets.
Inputs: ids (required), client_login.
yd_sitelinks_getB
Get sitelink sets by IDs.
Inputs: ids (required), client_login.
yd_smart_targets_actionC
Suspend, resume, or delete smart ad targets.
Inputs: target_ids (required), action (required), client_login.
yd_smart_targets_addC
Add a smart ad target (filter) to an ad group.
Inputs: adgroup_id (required), name (required), available_items_only, conditions, +1 more.
yd_smart_targets_getC
Get smart ad targets by campaign, ad group, or target IDs.
Inputs: campaign_ids, adgroup_ids, target_ids, client_login.
yd_vcards_addC
Add a VCard (business card) to a campaign.
Inputs: campaign_id (required), company (required), city_code (required), phone_number (required), +7 more.
yd_vcards_deleteB
Delete VCards by IDs.
Inputs: vcard_ids (required), client_login.
yd_vcards_getC
Get VCards. Optionally filter by IDs.
Inputs: vcard_ids, client_login.
yd_videos_getB
Get ad videos. Optionally filter by IDs.
Inputs: video_ids, client_login.
yd_videos_uploadB
Upload a video from a local file (base64-encoded).
Inputs: file_path (required), name, client_login.
yd_webmaster_broken_links_samplesB
Yandex Webmaster: get sample broken internal links for a host.
Inputs: host_id (required), offset, limit.
yd_webmaster_diagnostics_getA
Yandex Webmaster: get site diagnostics and problems for a host.
Inputs: host_id (required).
yd_webmaster_external_links_historyB
Yandex Webmaster: get external links count history for a host.
Inputs: host_id (required), indicator, date_from, date_to.
yd_webmaster_external_links_samplesB
Yandex Webmaster: get sample external backlinks for a host.
Inputs: host_id (required), offset, limit.
yd_webmaster_host_addB
Yandex Webmaster: add a new host for verification.
Inputs: host_url (required).
yd_webmaster_host_deleteB
Yandex Webmaster: delete (unregister) a host.
Inputs: host_id (required).
yd_webmaster_host_getB
Yandex Webmaster: get details of a specific host.
Inputs: host_id (required).
yd_webmaster_hosts_getA
Yandex Webmaster: list all verified and unverified hosts for the user.
Inputs: no named parameters.
yd_webmaster_host_summaryB
Yandex Webmaster: get host summary including SQI and problem counts.
Inputs: host_id (required).
yd_webmaster_important_urlsC
Yandex Webmaster: get monitored important pages for a host.
Inputs: host_id (required).
yd_webmaster_indexing_historyB
Yandex Webmaster: get crawled-pages indexing history for a host.
Inputs: host_id (required), date_from, date_to.
yd_webmaster_indexing_samplesB
Yandex Webmaster: get sample indexed pages for a host.
Inputs: host_id (required), offset, limit.
yd_webmaster_insearch_historyB
Yandex Webmaster: get history of pages in search for a host.
Inputs: host_id (required), date_from, date_to.
yd_webmaster_insearch_samplesA
Yandex Webmaster: get sample pages currently in search for a host.
Inputs: host_id (required), offset, limit.
yd_webmaster_owners_getB
Yandex Webmaster: list owners of a host.
Inputs: host_id (required).
yd_webmaster_recrawl_listB
Yandex Webmaster: list recrawl queue tasks for a host.
Inputs: host_id (required), offset, limit, date_from, +1 more.
yd_webmaster_recrawl_quotaA
Yandex Webmaster: get daily recrawl quota for a host.
Inputs: host_id (required).
yd_webmaster_recrawl_submitC
Yandex Webmaster: submit a URL for recrawl (returns task_id).
Inputs: host_id (required), url (required).
yd_webmaster_recrawl_taskB
Yandex Webmaster: get status of a specific recrawl task.
Inputs: host_id (required), task_id (required).
yd_webmaster_search_events_samplesB
Yandex Webmaster: get sample pages added or removed from search for a host.
Inputs: host_id (required), offset, limit.
yd_webmaster_search_queries_historyC
Yandex Webmaster: get aggregated search queries history for a host.
Inputs: host_id (required), query_indicator, date_from, date_to, +1 more.
yd_webmaster_search_queries_popularC
Yandex Webmaster: get popular search queries for a host.
Inputs: host_id (required), order_by, query_indicator, device_type_indicator, +4 more.
yd_webmaster_sitemaps_getB
Yandex Webmaster: get sitemaps known to Yandex for a host.
Inputs: host_id (required), parent_id, limit, from.
yd_webmaster_sqi_historyB
Yandex Webmaster: get SQI (Site Quality Index) history for a host.
Inputs: host_id (required), date_from, date_to.
yd_webmaster_user_getA
Yandex Webmaster: get current authenticated user info (user_id).
Inputs: no named parameters.
yd_webmaster_user_sitemap_addA
Yandex Webmaster: add a sitemap URL for a host.
Inputs: host_id (required), url (required).
yd_webmaster_user_sitemap_deleteA
Yandex Webmaster: delete a user-added sitemap for a host.
Inputs: host_id (required), sitemap_id (required).
yd_webmaster_user_sitemaps_getB
Yandex Webmaster: get user-added sitemaps for a host.
Inputs: host_id (required), limit, from.
yd_webmaster_verification_getB
Yandex Webmaster: get verification status for a host.
Inputs: host_id (required).
yd_webmaster_verification_startB
Yandex Webmaster: start host verification with a specified method.
Inputs: host_id (required), verification_type (required).
yd_wordstat_dynamicsA
Get search frequency dynamics over time for a keyword. Date alignment is enforced by the API: monthly → both dates must be the 1st of a month; weekly → from=Monday, to=Sunday; daily → any dates.
Inputs: phrase (required), period (required), from_date (required), to_date (required), +2 more.
yd_wordstat_regionsB
Get regional distribution of search queries for a keyword. Shows which regions search most. 2 quota units.
Inputs: phrase (required), region_type, devices.
yd_wordstat_regions_treeA
Get the full tree of Wordstat-supported regions with IDs. No quota cost. Use to find region IDs for other Wordstat methods.
Inputs: no named parameters.
yd_wordstat_top_requestsA
Get popular search queries containing a keyword from Yandex Wordstat (last 30 days). Returns phrases with search counts. 1 quota unit per request.
Inputs: phrase (required), num_phrases, regions, devices.
yd_wordstat_user_infoA
Get Wordstat API quota info (uses IAM token).
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 153 tools
Tools are well-organized by domain (Direct, Metrika, Webmaster, Wordstat) with clear prefixes and distinct operations. Each tool has a unique purpose, minimizing confusion even with many tools.
All tools follow the consistent pattern 'yd_<domain>_<action>' (e.g., yd_adgroups_add, yd_metrika_counter_create). The naming is predictable and uniform across all services.
With 153 tools covering multiple Yandex services (Direct, Metrika, Webmaster, Wordstat, etc.), the count is large but justified by the broad scope. However, it might be split into smaller servers for easier navigation.
The tool set provides comprehensive CRUD operations for each domain, including ads, analytics, site management, and keyword research. All essential workflows are covered without obvious gaps.
Maintenance
Related MCP Connectors
MCP servers for Yandex APIs: Wordstat, Search, Webmaster, Metrika, Direct. Open source, by Seyka AI.
Meta Ads and Google Ads MCP server: 250+ tools for Claude, ChatGPT, Cursor and Codex.
Hosted MCP server for marketing agencies: connect Google Ads, GA4, Search Console, Meta, LinkedIn and more to Claude or ChatGPT. Pull reports and make changes via OAuth login, no setup.
MCP for Yandex Direct: manage ad campaigns & analytics from Claude or ChatGPT
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for Yandex Direct, Metrika, Wordstat, and Webmaster APIs, providing 132 tools to manage advertising campaigns, analytics, keyword research, and reporting through any MCP-compatible client.58MIT
- AlicenseCqualityDmaintenanceMCP server that provides 46 tools for managing Yandex Webmaster API v4, enabling site management, sitemaps, indexing, search analytics, and more through natural language.4630 npm7MIT
- AlicenseAqualityCmaintenanceA local MCP server that connects Yandex Direct advertising reports and safe campaign creation to AI agents, enabling natural-language analytics and protected campaign setup.82MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that gives AI agents direct access to the Yandex Direct API to manage campaigns, groups, ads, keywords, bids, and reports via natural language.117 npm6Apache 2.0