ahel is live on Product Hunt today. Upvote

yandex-direct-mcp-plus

MCP serverDev tools

API Яндекс.Директа v5: кампании, объявления, фразы, ставки, минус-фразы, статистика

Unavailable. This server has no hosted endpoint yet, so ahel can't serve it.

Connect ahel once, and every AI you use reads what you have installed.

From the project's README

As published by pavelsiba/yandex-direct-mcp-plus in README.md.

Ведение контекстной рекламы Яндекс.Директа из диалога с ассистентом: собрать кампанию, разобрать поисковые запросы, вычистить минус-фразы, поправить ставки и посмотреть расход — не переключаясь между разделами кабинета. Работает в любом MCP-клиенте: Claude Code, Claude Desktop, Cursor и другие.

  • 60 инструментов, из них 25 только читают. Кампании и стратегии, группы, объявления и модерация, ключевые фразы и ставки, минус-фразы и общие наборы, быстрые ссылки, уточнения, изображения, визитки, корректировки ставок, ретаргетинг, аудиторные и динамические цели, фиды, расписание показов, статистика, поисковые запросы, баланс и справочники.
  • Деньги — в рублях, на вводе и на выводе; в микроединицы API сервер переводит сам. Поддержан агентский режим (Client-Login).
  • ID — строками ("1915016273214320641"): 64-битные идентификаторы Директа не помещаются в число JavaScript и молча теряют точность. Здесь это стережёт правило линтера, а не внимательность.
  • Реклама боевая. Тестовой среды у Директа больше нет — какие инструменты тратят деньги и что удаляют необратимо, перечислено в разделе Что меняет данные.
  • Телеметрии нет. Сервер не отправляет никуда ничего, кроме запросов к API Яндекса.

Содержание

  • Что можно делать — примеры запросов обычным текстом
  • Установка — Claude Code, Claude Desktop, Cursor, из исходников
  • Токен — как получить и какие переменные окружения нужны
  • Что меняет данные — что тратит бюджет и что необратимо
  • Инструменты — полный список с описаниями
  • Разработка — сборка, тесты, архитектура

Что можно делать

Обычным текстом в чате — инструменты сервер подставляет сам:

Собери кампанию «Летняя распродажа»: бюджет 5000 ₽/день, старт 1 мая, показы будни 9–21
Добавь минус-фразы «бесплатно» и «скачать» в кампанию 12345, не затерев остальные
Посмотри поисковые запросы за месяц и предложи, что заминусовать
Подними ставку до 25 ₽ там, где CTR выше 8%, а показов меньше сотни
Что изменилось в кампаниях со вчера?
Покажи расход по кампаниям за неделю и баланс аккаунта
Найди код региона для Новосибирска

Полный список — 60 инструментов ниже.

Установка

Нужен Node.js 22+ и OAuth-токен Яндекс.Директа — как его получить.

Claude Code

claude mcp add yandex-direct -e YANDEX_DIRECT_TOKEN=ваш_токен -- npx -y yandex-direct-mcp-plus

Claude Desktop, Cursor и другие клиенты

{
  "mcpServers": {
    "yandex-direct": {
      "command": "npx",
      "args": ["-y", "yandex-direct-mcp-plus"],
      "env": {
        "YANDEX_DIRECT_TOKEN": "ваш_токен"
      }
    }
  }
}

Из исходников

git clone git@github.com:Pavelsiba/yandex-direct-mcp-plus.git
cd yandex-direct-mcp-plus
npm ci && npm run build

Дальше тот же конфиг, но "command": "node" и путь к dist/app/index.js вместо npx.

Токен

OAuth-токен выпускается для приложения, зарегистрированного в Яндекс OAuth, с доступом к API Директа. Подробности — регистрация приложения и получение токена. Доступ к API нужно запросить в интерфейсе Директа — заявку рассматривают от часа до нескольких суток.

ПеременнаяОбязательнаНазначение
YANDEX_DIRECT_TOKENдаOAuth-токен Яндекс.Директ
YANDEX_DIRECT_LOGINнетЛогин клиента для агентских токенов (заголовок Client-Login). Обязателен, если токен агентский
YANDEX_DIRECT_POLYGON_CAMPAIGN_IDнетТолько для npm run test:int: ID кампании-полигона, оставленной черновиком. Сетевые тесты пишут в неё и ни во что другое; без переменной они пропускаются

Что меняет данные

Тестовой среды у Яндекс.Директа больше нет: песочница отключена с июля 2026, и любой вызов идёт по боевому аккаунту. Отлаживать сценарии приходится на отдельной кампании, оставленной черновиком, — показов она не даёт и потому не тратит бюджет, пока не пройдёт модерацию и не будет включена.

Граница проходит не по «чтение или запись», а по скорости, с которой действие превращается в деньги.

25 инструментов только читают — все list_*, get_* и справочники. Вызвать их безопасно всегда.

Тратят бюджет или запускают показы — восемь:

ИнструментЧем именно
manage_campaignsresume — включает показы остановленной кампании
manage_adsresume и moderate — возвращает объявления в показ
moderate_adsОтправляет объявления на модерацию, после неё начнутся показы
update_campaignМеняет дневной бюджет
set_keyword_bidsМеняет ставки, то есть цену клика
set_strategyМеняет стратегию — переписывает всю экономику кампании
add_bid_adjustmentsЗаводит корректировку: +N% к ставке на срезе аудитории
set_bid_adjustmentsМеняет коэффициент существующей корректировки

Удаляют необратимо — эти инструменты помечены аннотацией DESTRUCTIVE, и хороший MCP-клиент спросит подтверждение перед вызовом:

manage_campaigns (delete), manage_ads (delete), manage_keywords (delete), delete_ad_groups, delete_ad_extensions, delete_sitelinks, delete_vcards, delete_bid_adjustments, delete_retargeting_lists, manage_ad_images (delete), manage_dynamic_targets (delete), set_audience_targets (delete), manage_negative_keyword_shared_sets (delete).

Сюда же — set_campaign_negative_keywords и set_ad_group_negative_keywords в режиме replace: он затирает прежний список минус-фраз целиком. Именно поэтому у них нет режима по умолчанию — mode приходится назвать явно. Так же устроен set_priority_goals: replace и remove убирают цели стратегии, а любая смена целей перезапускает её обучение.

Остальные инструменты создают и правят объекты. Пока кампания не прошла модерацию и не включена, показов по ней нет и бюджет не расходуется.

Инструменты (60)

Кампании

ИнструментОписание
list_campaignsСписок кампаний (фильтр по статусу/типу, пагинация)
get_campaignДетальная информация о кампании по ID
create_campaignСоздать кампанию (бюджет в рублях, выбор стратегии, часовой пояс, UTM-разметка)
update_campaignОбновить название/бюджет/UTM-разметку и/или статус (SUSPEND/RESUME/ARCHIVE/UNARCHIVE)
manage_campaignssuspend/resume/archive/unarchive/delete для списка кампаний
get_strategyПолучить стратегию текстово-графической кампании
set_strategyСменить стратегию: ручная, максимум кликов, средняя цена клика/конверсии, оплата за конверсию
set_priority_goalsЦели стратегии и их ценность в рублях: добавить, убрать или заменить список
get_time_targetingРасписание показов: часовой пояс, часы по дням недели, праздники
set_time_targetingЗадать расписание показов и почасовые коэффициенты (заменяет целиком)

Группы объявлений

ИнструментОписание
list_ad_groupsГруппы объявлений выбранных кампаний
create_ad_groupСоздать группу с таргетингом по регионам
delete_ad_groupsУдалить группы по ID
set_ad_group_negative_keywordsМинус-фразы группы: mode обязателен — replace, add или remove

Объявления

ИнструментОписание
list_adsОбъявления в группах
create_text_adСоздать текстовое объявление (≤56/≤30/≤81)
update_text_adОбновить заголовок/текст/ссылку
manage_adssuspend/resume/archive/unarchive/moderate/delete
moderate_adsОтправить объявления на модерацию

Ключевые слова и ставки

ИнструментОписание
list_keywordsКлючевые фразы в группах (ставки в рублях)
add_keywordsДобавить ключевые фразы
update_keywordsИзменить текст фразы и подстановочные переменные {param1}/{param2}
set_keyword_bidsУстановить ставки (поиск/сети, рубли) на фразах/группах/кампаниях
get_keyword_auctionАукцион по фразам: ставки и списываемые цены по позициям, ставки конкурентов, цена входа (рубли)
manage_keywordssuspend/resume/delete
set_campaign_negative_keywordsМинус-фразы кампании: mode обязателен — replace, add или remove
get_campaign_negative_keywordsПолучить минус-фразы кампаний

Быстрые ссылки, уточнения и корректировки

ИнструментОписание
list_sitelinksПолучить наборы быстрых ссылок
set_sitelinksСоздать новый набор быстрых ссылок
delete_sitelinksУдалить наборы быстрых ссылок
list_ad_extensionsПолучить уточнения (callouts)
add_ad_extensionsСоздать уточнения
delete_ad_extensionsУдалить уточнения
manage_ad_imagesЗагрузить, получить или удалить изображения
get_bid_adjustmentsПолучить корректировки: устройства, пол и возраст, аудитории, регионы, платёжеспособность, размещение
add_bid_adjustmentsСоздать корректировки на кампаниях или группах
set_bid_adjustmentsИзменить коэффициенты существующих корректировок
delete_bid_adjustmentsУдалить корректировки по ID

Аудитории, цели и фиды

ИнструментОписание
list_retargeting_listsПолучить условия ретаргетинга и подбора аудитории
add_retargeting_listСоздать условие ретаргетинга
update_retargeting_listsИзменить название, описание и правила условий (правила заменяются целиком)
delete_retargeting_listsУдалить условия ретаргетинга
list_audience_targetsПолучить аудиторные цели
set_audience_targetsadd/set_bids/suspend/resume/delete аудиторных целей
list_dynamic_targetsПолучить динамические цели
manage_dynamic_targetsadd/set_bids/suspend/resume/delete динамических целей
list_feedsПолучить товарные фиды
list_negative_keyword_shared_setsПолучить общие наборы минус-фраз
manage_negative_keyword_shared_setsadd/update/delete общих наборов
link_negative_keyword_setsПривязать общие наборы к кампаниям и группам объявлений

Статистика, аккаунт, справочники

ИнструментОписание
get_statisticsСтатистика за период (показы, клики, расход, CTR, CPC)
get_search_queriesФактические поисковые запросы для подбора минус-фраз
get_changesПроверить изменения кампаний, групп, объявлений и справочников
list_vcardsПолучить виртуальные визитки
add_vcardСоздать виртуальную визитку
delete_vcardsУдалить визитки по ID
list_businessesПолучить профили организаций Яндекс Бизнеса
get_account_balanceБаланс аккаунта (Live API v4)
get_regionsСправочник кодов регионов (225 = Россия), с вложенностью по запросу
list_time_zonesСправочник часовых поясов для расписания показов

Разработка

npm install
npm run build      # tsc → dist/
npm test           # vitest (моки fetch)
npm run dev        # tsx --conditions=development src/app/index.ts
npm run lint       # biome
npm run typecheck  # tsc --noEmit
npm run lint:dead  # knip

Код разложен по слоям app → tools → shared; инструмент — это каталог src/tools/<домен>/ с schema.ts, handler.ts и tool.ts. Подробности — в docs/architecture.md.

Происхождение и благодарности

Проект начат на коде theYahia/yandex-direct-mcp под лицензией MIT. Расширение с 20 до 48 инструментов и перевод ID на строки — работа Maxim (DrSeedon), PR #7; в npm эта версия не публиковалась. Дальше проект развивается самостоятельно и апстрим не отслеживает.

История до отделения от апстрима (версии 3.0.0–5.0.0, включая вклад DrSeedon) — в docs/CHANGELOG-upstream.md; дальнейшие изменения — в CHANGELOG.md. План — в docs/roadmap.md, архитектура — в docs/architecture.md.

Лицензия

MIT — см. LICENSE. Уведомление об авторских правах исходного проекта сохранено.

Signals

GitHub stars
1
Last commit
Sep 2026
Weekly downloads
314
Advanced
Delivery
yandex-direct-mcp-plus MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
Catalog kind
mcp-server
Gateway key
io-github-pavelsiba-yandex-direct-mcp-plus
Source
github.com/pavelsiba/yandex-direct-mcp-plus