Yandex Direct MCP Server
MCP server for Yandex Direct, Yandex Metrika, and Wordstat with 120 tools to manage contextual advertising from AI assistants.
README
Yandex Direct MCP Server
MCP-сервер для Яндекс Директа, Яндекс Метрики и Wordstat — 120 инструментов для работы с контекстной рекламой из AI-ассистентов (Claude, Claude Code, Cursor, Windsurf и других MCP-клиентов).
Что эта сборка добавляет к исходному проекту
- Комбинаторные объявления (ResponsiveAd — несколько заголовков и текстов, которые система
сама комбинирует): создание, изменение, удаление. В исходном проекте их нельзя было загрузить
вообще — собирались только одиночные
TextAd. - Direct API v501 для них. Рабочий JSON-эндпоинт вычислен опытным путём: в документации указан SOAP-адрес, который на JSON отвечает XML-ошибкой. Без этого комбинаторные объявления не создаются.
- IAM-токены из ключа сервисного аккаунта. Яндекс запретил обмен Passport-токенов, выпущенных после 1 июня 2026 года, — на любом свежем токене Wordstat переставал работать совсем.
- Ретраи Wordstat на HTTP 429 и
num_phrasesпо умолчанию 2000 вместо 30: квота тратится на запрос, а не на фразу, поэтому старое значение сжигало единицу квоты ради 30 фраз. - Имена инструментов
yandex_direct_*/yandex_metrika_*/yandex_wordstat_*. Прежниеyd_*не находились семантическим поиском инструментов в MCP-клиентах: в названииyd_campaigns_getс описанием «Get list of campaigns» нет ни одного слова «yandex» или «direct». - Фильтры выдачи инструментов:
YD_READONLYубирает изменяющие инструменты изtools/list,YD_LEANоставляет только основной набор для клиентов с лимитом на число инструментов.
Что именно изменено, в каком коммите и почему — в FORK.md.
Форк Yurich-ru/yandex-ads-mcp (MIT) от коммита
7ad0551; ветка master — нетронутый апстрим, вся работа в fork-main.
Ключевые слова: Yandex Direct MCP server, Яндекс Директ MCP, Яндекс Метрика, Wordstat API, Model Context Protocol, комбинаторные объявления, ResponsiveAd, Direct API v501, контекстная реклама, Claude, Claude Code, Cursor, AI-агент, автоматизация рекламы.
Документация исходного проекта
MCP-сервер для управления рекламой в Яндекс Директе, аналитикой в Яндекс Метрике и подбором ключевых слов через Wordstat API.
120 инструментов для полного цикла управления рекламой из AI-ассистентов (Claude Code, Cursor, Windsurf и др.).
Возможности
| Сервис | Инструментов | Что умеет |
|---|---|---|
| Яндекс Директ | 77 | Кампании, группы, объявления, ключевики, ставки, корректировки, минус-фразы, быстрые ссылки, уточнения, визитки, фиды, изображения, видео, ретаргетинг, площадки, стратегии, отчёты |
| Яндекс Метрика | 43 | Счётчики, цели, сегменты, фильтры, доступы, отчёты, аннотации, офлайн-конверсии, расходы, звонки |
| Wordstat | 5 | Частотность запросов, динамика, региональное распределение, дерево регионов, квота API |
Быстрый старт
1. Установка
git clone https://github.com/YOUR_USER/yandex-ads-mcp.git
cd yandex-ads-mcp
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
2. Настройка токенов
Скопируйте .env.example в .env и заполните:
cp .env.example .env
3. Подключение к Claude Code
Добавьте в ~/.claude.json (секция mcpServers):
{
"yandex-ads": {
"type": "stdio",
"command": "/path/to/yandex-ads-mcp/venv/bin/python",
"args": ["/path/to/yandex-ads-mcp/server.py"],
"env": {
"YD_OAUTH_TOKEN": "YOUR_TOKEN",
"YC_FOLDER_ID": "YOUR_FOLDER_ID"
}
}
}
Перезапустите Claude Code.
Получение токенов
OAuth-токен для Директа и Метрики
Один токен используется для Директа и Метрики.
Шаг 1: Создать OAuth-приложение
- Зайдите на https://oauth.yandex.ru/
- Нажмите "Зарегистрировать новое приложение"
- Redirect URI: выберите "Подставить URL для разработки" (
https://oauth.yandex.ru/verification_code) - В разделе "Доступ к данным" отметьте:
- Яндекс Директ →
direct:api(управление рекламой) - Яндекс Метрика →
metrika:read(чтение данных) иmetrika:write(управление целями) - Яндекс Cloud →
cloud:auth(для Wordstat API)
- Яндекс Директ →
- Сохраните — запомните Client ID
Шаг 2: Получить токен
Откройте в браузере (подставьте свой Client ID):
https://oauth.yandex.ru/authorize?response_type=token&client_id=YOUR_CLIENT_ID
Авторизуйтесь → токен будет в адресной строке после access_token=.
Шаг 3: Подать заявку на API Директа
- Зайдите в Яндекс Директ → Настройки → API
- Нажмите "Получить доступ к API"
- Укажите Client ID приложения
- Опишите назначение: "Управление рекламными кампаниями через собственное приложение"
- Ожидайте одобрения (обычно несколько часов)
Folder ID для Wordstat API
Wordstat API работает через Yandex Cloud. Нужен платёжный аккаунт (карта не списывается, есть бесплатная квота).
Шаг 1: Зарегистрироваться в Yandex Cloud
- Зайдите на https://console.yandex.cloud/
- Создайте платёжный аккаунт (привяжите карту)
Шаг 2: Получить Folder ID
- В консоли Cloud → выберите каталог (обычно
default) - Скопируйте ID каталога (формат:
b1gxxxxxxxxxx)
Шаг 3: Назначить роль
- Перейдите в каталог → "Права доступа"
- Назначьте своему пользователю роль
search-api.executor
Шаг 4: Убедиться что OAuth-токен имеет scope cloud:auth
Если при создании приложения не добавляли Yandex Cloud — отредактируйте приложение на https://oauth.yandex.ru/ → добавьте cloud:auth → получите новый токен.
Переменные окружения
| Переменная | Обязательна | Описание |
|---|---|---|
YD_OAUTH_TOKEN |
Да | OAuth-токен с правами direct:api, metrika:read, metrika:write, cloud:auth |
YC_FOLDER_ID |
Для Wordstat | ID каталога Yandex Cloud |
YD_SANDBOX |
Нет | true для тестового режима Директа (sandbox) |
YD_LOGIN |
Нет | Логин клиента по умолчанию (для агентских аккаунтов) |
YD_READONLY |
Нет | true — блокирует все изменяющие инструменты (add/update/delete/action/set/...); отчёты и чтение работают |
YD_CONFIRM |
Нет | true — изменяющие вызовы требуют confirm=true, иначе возвращают только превью |
YD_ALLOWED_LOGINS |
Нет | Белый список агентских Client-Login через запятую (для инструментов Директа). Пусто = без ограничений |
YD_LOG_LEVEL |
Нет | DEBUG/INFO/WARNING/ERROR (по умолчанию INFO) |
YD_LOG_FILE |
Нет | Путь к лог-файлу. Пусто = только stderr, файл не пишется |
YD_LOG_BODIES |
Нет | true — писать тела запросов/ответов в лог (подробно; могут содержать данные кампаний) |
Безопасность и доступ (доработки форка)
Этот форк (upstream: Yurich-ru/yandex-ads-mcp) добавляет защитную обвязку для работы с боевыми кабинетами:
- Read-only режим (
YD_READONLY=true) — агент видит и анализирует данные, но физически не может создать/изменить/удалить кампании, ставки, счётчики или цели. - Confirm-режим (
YD_CONFIRM=true) — любой изменяющий вызов сначала возвращает превью операции; чтобы выполнить, нужно повторить вызов сconfirm=true. - Мульти-аккаунт — у инструментов Директа есть необязательный аргумент
client_loginдля выбора клиентского кабинета на уровне вызова;YD_ALLOWED_LOGINSограничивает, к каким логинам агент вообще имеет доступ. - Partial-success — изменяющие ответы Директа разбираются на per-item
Errors/Warningsи сводятся в поле_partial_success, чтобы наполовину провалившаяся массовая операция не выглядела как успех. - Логи по умолчанию не пишутся на диск — раньше сервер всегда писал
yandex-ads.logс полными телами запросов. Теперь файл создаётся только при заданномYD_LOG_FILE, а тела — только приYD_LOG_BODIES=true.
Офлайн-проверка обвязки (без сети и токенов): python3 test_safety.py.
Полный список инструментов
Яндекс Директ — Кампании
| Инструмент | Описание |
|---|---|
yd_campaigns_get |
Список кампаний с фильтрами |
yd_campaigns_add |
Создать кампанию (все стратегии: PAY_FOR_CONVERSION, WB_MAXIMUM_CLICKS и др.) |
yd_campaigns_update |
Обновить настройки кампании |
yd_campaigns_action |
Приостановить / возобновить / архивировать |
Яндекс Директ — Группы объявлений
| Инструмент | Описание |
|---|---|
yd_adgroups_add |
Создать группы объявлений |
yd_adgroups_get |
Получить группы |
yd_adgroups_update |
Обновить группу (имя, регионы, минус-фразы) |
Яндекс Директ — Объявления
| Инструмент | Описание |
|---|---|
yd_ads_add |
Создать текстовые объявления (с sitelinks и картинками) |
yd_ads_add_dynamic |
Создать динамические объявления |
yd_ads_add_image |
Создать графические объявления |
yd_ads_add_shopping |
Создать товарные объявления (ЕПК, v501) |
yd_ads_get |
Получить объявления |
yd_ads_update |
Обновить объявления |
yd_ads_action |
Модерация / пауза / архив |
Яндекс Директ — Ключевые фразы
| Инструмент | Описание |
|---|---|
yd_keywords_add |
Добавить ключевые фразы |
yd_keywords_get |
Получить фразы |
yd_keywords_has_volume |
Проверить наличие показов по фразам |
yd_keywords_research |
Дедупликация фраз |
Яндекс Директ — Ставки
| Инструмент | Описание |
|---|---|
yd_bids_set |
Установить ставки |
yd_keyword_bids_get |
Получить ставки и прогнозы |
yd_keyword_bids_set |
Установить ставки на ключевики |
yd_keyword_bids_set_auto |
Автоматические ставки |
yd_bid_modifiers_add |
Корректировки (устройства, демография, регионы) |
yd_bid_modifiers_get |
Получить корректировки |
yd_bid_modifiers_set |
Обновить корректировки |
yd_bid_modifiers_delete |
Удалить корректировки |
yd_bid_modifiers_toggle |
Включить/выключить корректировки |
Яндекс Директ — Минус-фразы
| Инструмент | Описание |
|---|---|
yd_negative_keywords_sets_add |
Создать набор минус-фраз |
yd_negative_keywords_sets_get |
Получить наборы |
yd_negative_keywords_sets_update |
Обновить набор |
yd_negative_keywords_sets_delete |
Удалить набор |
Яндекс Директ — Расширения
| Инструмент | Описание |
|---|---|
yd_sitelinks_add |
Создать быстрые ссылки |
yd_sitelinks_get |
Получить быстрые ссылки |
yd_sitelinks_delete |
Удалить быстрые ссылки |
yd_ad_extensions_add |
Создать уточнения (callouts) |
yd_ad_extensions_get |
Получить уточнения |
yd_ad_extensions_delete |
Удалить уточнения |
yd_callouts_link |
Привязать уточнения к объявлению (v501) |
Яндекс Директ — Визитки
| Инструмент | Описание |
|---|---|
yd_vcards_add |
Создать визитку |
yd_vcards_get |
Получить визитки |
yd_vcards_delete |
Удалить визитки |
Яндекс Директ — Изображения и видео
| Инструмент | Описание |
|---|---|
yd_ad_images_add |
Загрузить изображения (base64) |
yd_ad_images_get |
Получить изображения |
yd_ad_images_delete |
Удалить изображения |
yd_videos_upload |
Загрузить видео (из файла) |
yd_videos_get |
Получить видео |
yd_creatives_add |
Создать видеокреатив |
yd_creatives_get |
Получить креативы |
Яндекс Директ — Фиды
| Инструмент | Описание |
|---|---|
yd_feeds_add |
Добавить фид |
yd_feeds_get |
Получить фиды |
yd_feeds_update |
Обновить фид |
yd_feeds_delete |
Удалить фиды |
Яндекс Директ — Ретаргетинг
| Инструмент | Описание |
|---|---|
yd_retargeting_lists_add |
Создать список ретаргетинга |
yd_retargeting_lists_get |
Получить списки |
yd_retargeting_lists_delete |
Удалить списки |
yd_audience_targets_add |
Добавить таргетинг на аудиторию |
yd_audience_targets_get |
Получить таргетинги |
yd_audience_targets_delete |
Удалить таргетинги |
yd_smart_targets_add |
Создать смарт-таргет |
yd_smart_targets_get |
Получить смарт-таргеты |
yd_smart_targets_action |
Пауза / возобновление / удаление |
Яндекс Директ — Отчёты и справочники
| Инструмент | Описание |
|---|---|
yd_report |
Статистика (TSV, любой тип отчёта) |
yd_dictionaries |
Справочники (регионы, валюты и др.) |
yd_regions_get |
Справочник регионов (отдельный tool) |
yd_interests_get |
Справочник интересов |
yd_changes_check |
Проверка изменений |
yd_clients_get |
Информация об аккаунте |
yd_businesses_get |
Организации из Яндекс Бизнеса |
Яндекс Директ — Управление площадками и стратегией
| Инструмент | Описание |
|---|---|
yd_excluded_sites_get |
Получить список заблокированных площадок |
yd_excluded_sites_update |
Обновить список заблокированных площадок (SSP, сайты) |
yd_blocked_ips_update |
Заблокировать IP-адреса (до 25 шт.) |
yd_campaign_strategy_update |
Сменить стратегию, CPA, недельный бюджет, цель конверсии |
Яндекс Метрика — Счётчики
| Инструмент | Описание |
|---|---|
yd_metrika_counters_get |
Список счётчиков |
yd_metrika_counter_get |
Детали счётчика |
yd_metrika_counter_create |
Создать счётчик |
yd_metrika_counter_update |
Обновить счётчик |
yd_metrika_counter_delete |
Удалить счётчик |
Яндекс Метрика — Цели
| Инструмент | Описание |
|---|---|
yd_metrika_goals_get |
Список целей |
yd_metrika_goal_create |
Создать цель |
yd_metrika_goal_update |
Обновить цель |
yd_metrika_goal_delete |
Удалить цель |
Яндекс Метрика — Отчёты
| Инструмент | Описание |
|---|---|
yd_metrika_report |
Табличный отчёт (визиты, пользователи, конверсии) |
yd_metrika_report_by_time |
Отчёт по времени (день/неделя/месяц) |
yd_metrika_report_comparison |
Сравнение двух периодов |
yd_metrika_report_drilldown |
Иерархический drill-down |
Яндекс Метрика — Сегменты, фильтры, доступы
| Инструмент | Описание |
|---|---|
yd_metrika_segments_get/create/update/delete |
Управление сегментами |
yd_metrika_filters_get/create/update/delete |
Управление фильтрами |
yd_metrika_grants_get/add/update/delete |
Управление доступами |
yd_metrika_delegates_get/add/delete |
Управление делегатами |
Яндекс Метрика — Метки и аннотации
| Инструмент | Описание |
|---|---|
yd_metrika_labels_get/create/update/delete |
Управление метками |
yd_metrika_label_link/unlink |
Привязка счётчиков к меткам |
yd_metrika_annotations_get/create/update/delete |
Аннотации на графиках |
Яндекс Метрика — Офлайн-данные
| Инструмент | Описание |
|---|---|
yd_metrika_upload_conversions |
Загрузить офлайн-конверсии |
yd_metrika_conversions_status |
Статус загрузки конверсий |
yd_metrika_upload_calls |
Загрузить звонки |
yd_metrika_upload_expenses |
Загрузить расходы |
yd_metrika_upload_user_params |
Загрузить параметры пользователей |
Wordstat API
| Инструмент | Описание |
|---|---|
yd_wordstat_top_requests |
Популярные запросы (частотность) |
yd_wordstat_dynamics |
Динамика частотности |
yd_wordstat_regions |
Региональное распределение |
yd_wordstat_regions_tree |
Дерево регионов |
yd_wordstat_user_info |
Квота API |
Лицензия
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。