yandex-ads-mcp
MCP server for Yandex Direct, Metrika, Audience & Wordstat APIs — 152 tools for campaign management, audience segments, analytics, and keyword research
Install / Use
claude mcp add Yurich-ru -- npx -y github:Yurich-ru/yandex-ads-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Data & AnalyticsSupported Platforms
Our assessment of yandex-ads-mcp
yandex-ads-mcp scores 87/100 on our quality scale, 401st of 597 Data & Analytics skills we index.
Its MCP Server is 19 KB long, well organised into 42 sections with 7 code examples: a thorough specification that gives an agent plenty to work with.
It has 42 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 3 days ago, so yandex-ads-mcp is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 85/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
yandex-ads-mcp compared with similar skills
All 4 of these similar skills score higher than yandex-ads-mcp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| yandex-ads-mcp (this skill)by Yurich-ru | 87 | 42 | 3d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 93.0k | 22d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 74.6k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.3k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 86.1k | today | MCP Server |
Frequently asked questions
- How do I install yandex-ads-mcp?
- Run
claude mcp add Yurich-ru -- npx -y github:Yurich-ru/yandex-ads-mcp. The install tabs above show the steps for each supported agent. - Which AI agents does yandex-ads-mcp work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is yandex-ads-mcp safe to use?
- It declares no license and scores 85/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is yandex-ads-mcp still maintained?
- The repository was last updated 3 days ago, so yandex-ads-mcp is actively maintained.
Skill content
View source on GitHubYandex Ads MCP Server
MCP-сервер для управления рекламой в Яндекс Директе, сегментами в Яндекс Аудиториях, аналитикой в Яндекс Метрике и подбором ключевых слов через Wordstat API.
152 инструмента для полного цикла управления рекламой из AI-ассистентов (Claude Code, Cursor, Windsurf и др.).
Возможности
| Сервис | Инструментов | Что умеет | |--------|-------------|-----------| | Яндекс Директ | 86 | Кампании, группы, объявления, ключевики, автотаргетинг, ставки, корректировки, минус-фразы, быстрые ссылки, уточнения, визитки, фиды, изображения, видео, ретаргетинг, площадки, стратегии, отчёты | | Яндекс Метрика | 43 | Счётчики, цели, сегменты, фильтры, доступы, отчёты, аннотации, офлайн-конверсии, расходы, звонки | | Яндекс Аудитории | 23 | Сегменты из CRM-данных (email/телефоны/ID устройств), lookalike, гео-сегменты, сегменты из Метрики/AppMetrica, пиксели, права доступа, делегаты | | Wordstat | 5 | Частотность запросов, динамика, региональное распределение, дерево регионов, квота API |
Быстрый старт
1. Установка
git clone https://github.com/Yurich-ru/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-токен для Директа, Метрики и Аудиторий
Один токен используется для Директа, Метрики и Аудиторий — если все сервисы живут в одном Яндекс-аккаунте.
Сервисы в разных аккаунтах? OAuth-токен привязан к аккаунту, поэтому одним токеном два аккаунта не покрыть. Выпустите токен в каждом аккаунте и разложите их по переменным:
YD_OAUTH_TOKEN— аккаунт с кабинетом Директа,YD_METRIKA_TOKEN/YD_AUDIENCE_TOKEN— аккаунт с Метрикой и Аудиториями.
Шаг 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
Если приложение уже создано без прав Аудиторий — отредактируйте его на https://oauth.yandex.ru/, добавьте доступ к Яндекс Аудиториям и получите новый токен (шаг 2). Без этого инструменты
yd_audience_*возвращают403 access_denied.
Шаг 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 и доступом к Яндекс Аудиториям |
| YD_METRIKA_TOKEN | Нет | Отдельный токен для Метрики (мульти-аккаунт). Пусто = YD_OAUTH_TOKEN |
| YD_AUDIENCE_TOKEN | Нет | Отдельный токен для Аудиторий (мульти-аккаунт). Пусто = YD_OAUTH_TOKEN |
| YC_FOLDER_ID | Для Wordstat | ID каталога Yandex Cloud |
| YC_API_KEY | Для Wordstat | API-ключ сервисного аккаунта (роль search-api.executor). Обязателен для OAuth-токенов, выпущенных после 01.06.2026 — Яндекс Облако больше не меняет их на IAM. Пусто = старый обмен OAuth→IAM |
| YD_SANDBOX | Нет | true для тестового режима Директа (sandbox) |
| YD_LOGIN | Нет | Логин клиента по умолчанию (для агентских аккаунтов или кабинета из YD_DIRECT_TOKENS) |
| YD_DIRECT_TOKENS | Нет | Дополнительные кабинеты Директа: логин:токен,логин2:токен2. Кабинет выбирается аргументом client_login; для таких логинов используется их токен и не шлётся Client-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 — писать тела запросов/ответов в лог (подробно; могут содержать данные кампаний) |
Безопасность и работа с боевыми кабинетами
Все защитные механизмы — opt-in через env-переменные (см. таблицу выше). С дефолтными настройками поведение не меняется по сравнению с базовым MCP-сервером.
- Read-only режим (
YD_READONLY=true) — агент видит и анализирует данные, но физически не может создать/изменить/удалить кампании, ставки, счётчики или цели. Блокировка происходит до сетевого вызова. - Confirm-режим (
YD_CONFIRM=true) — любой изменяющий вызов сначала возвращает превью операции; чтобы выполнить, нужно повторить вызов сconfirm=true. В схемах мутирующих инструментов автоматически появляется параметрconfirm. - Мульти-аккаунт — у инструментов Директа есть необязательный аргумент
client_loginдля выбора кабинета на уровне вызова (передаётся черезcontextvars, безопасно для конкурентных вызовов);YD_ALLOWED_LOGINSограничивает, к каким логинам агент вообще имеет доступ. Два режима:- агентский — логин субклиента передаётся в заголовке
Client-Loginс основным токеном; - несколько самостоятельных кабинетов (не агентство) — у каждого кабинета свой токен в
YD_DIRECT_TOKENS=логин:токен,...;client_loginс таким логином переключает токен.yd_direct_accounts_getпоказывает все доступные кабинеты с живой проверкой.
- агентский — логин субклиента передаётся в заголовке
- Partial-success — изменяющие ответы Директа разбираются на per-item
Errors/Warningsи сводятся в поле_partial_success, чтобы наполовину провалившаяся массовая операция не выглядела как успех. - Retry / backoff — экспоненциальный backoff на 429/5xx для вызовов Direct API, с уважением заголовка
Retry-After. Балансы очков Direct API из заголовкаUnitsлогируются (WARN если осталось менее 5%). - IAM-токен — TTL берётся из ответа Yandex Cloud IAM (
expiresAt), а не из захардкоженных 11 часов. - Логи по умолчанию не пишутся на диск — файл
yandex-ads.logсоздаётся только при заданномYD_LOG_FILE. Тела запросов/ответов пишутся только приYD_LOG_BODIES=true(могут содержать данные кампаний; токены никогда не логируются).
Рекомендуемая конфигурация для агента, работающего с боевыми кабинетами:
YD_READONLY=true # либо
YD_CONFIRM=true # для интерактивного подтверждения мутаций
YD_ALLOWED_LOGINS=client1,client2 # для агентского аккаунта
Офлайн-проверка защитной обвязки (без сети и токенов): 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_ads_update набор заголовков и текстов в
responsive_ad. Поля titles (1–7) и texts (1–3) обязательны; также нужен href или
business_id. Быстрые ссылки прикрепляются через responsive_ad.sitelink_set_id. Не смешивайте
responsive_ad с полями старого текстового формата в одном объявлении. Комбинаторные объявления
обновляются через обязательную для этого типа версию Direct API v501.
{
"ads": [{
"id": 123456,
"responsive_ad": {
"titles": ["Основной заголовок", "Дополнительный заголовок"],
"texts": ["Текст объявления"],
"href": "https://example.com",
"sitelink_set_id": 123456
}
}]
}
Яндекс Директ — Ключевые фразы и автотаргетинг
| Инструмент | Описание |
|-----------|----------|
| yd_keywords_add | Добавить ключевые фразы или автотаргетинг с настройками категорий и брендов |
| yd_keywords_update | Изменить категории запросов и упоминания брендов для автотаргетинга |
| yd_keywords_get | Получить фразы и полные настройки автотаргетинга |
| yd_keywords_has_volume | Проверить наличие показов по фразам |
| yd_keywords_research | Дедупликация фраз |
| yd_keywords_suspend | Приостановить ключевые фразы по ID |
| yd_keywords_resume | Возобновить ключевые фразы по ID |
| yd_keywords_delete | Удалить ключевые фразы по ID |
Автотаргетинг создаётся как специальный критерий ---autotargeting, а его настройки передаются
в autotargeting_settings. Для изменения существующего критерия сначала получите его ID через
yd_keywords_get, затем вызовите yd_keywords_update:
{
"keywords": [{
"id": 123456789,
"autotargeting_settings": {
"categories": {
"exact": "YES",
"narrow": "YES",
"alternative": "NO",
"accessory": "NO",
"broader": "NO"
},
"brand_options": {
"with_advertiser_brand": "YES",
"with_competitors_brand": "NO",
"without_brands": "YES"
}
}
}]
}
Яндекс Директ — Ставки
| Инструмент | Описание |
|-----------|----------|
| yd_bids_set | Установить ставки |
| `yd_keyword_bids_g
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
93.0kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
74.6kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.3kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
86.1k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
