Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Yandex Direct MCP

NPM · MCP-YANDEX-DIRECT

MCP server for Yandex Direct API v5: manage PPC campaigns, ads, keywords, and statistics.

Available components

−3 this week 73 Trust /100

Last scanned (2 hours ago)

Scores higher than 45% of npm servers

Category Marketing and SEO

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 30 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability61
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 10509 tokens (~228/item across 46 items; 46 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management77
  • Stability check failed: the tool surface changed between 1.5.1 and 1.12.2: 3 tool removals, 0 breaking changes, 5 additions. See how to fix → Fail
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 98% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 47 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 −2
    • Package version: 1.5.3 → 1.12.2 functional
  • 4 Nov 26 0
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Package version: 1.12.1 → 1.12.2 functional
  • 1 Nov 26 +15
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Malware scan: unverified → pass ▲ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Package version: 1.12.0 → 1.12.1 functional
  • 31 Oct 26 −1
    • Known CVEs: fail → unverified ▼ security
    • Stability: pass → fail ▼ security
    • Malware scan: unverified → pass ▲ security
    • Schema quality: 189 → 228 ▼ functional
    • Dependency health: 0.85 → unverified ▼ functional
    • Package version: 1.9.0 → 1.12.0 functional
    • Package version: 1.9.0 → 1.11.0 functional
    • Package version: 1.9.0 → 1.10.1 functional
    • Package version: 1.9.0 → 1.10.0 functional
  • 30 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Stability: 0.97 → pass security
    • Package version: 1.7.0 → 1.9.0 functional
    • Package version: 1.7.0 → 1.8.0 functional
  • 29 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
    • Stability: pass → 0.97 functional
  • 28 Oct 26 0
    • Security disclosure: fail → unverified ▼ functional
  • 27 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/mcp-yandex-direct@1.12.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 93 packages
Packages resolved 93
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 46 exposed · ~10,029 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
ad_action ~102

Выполняет действие над объявлениями по id: moderate, suspend, resume, archive, unarchive или delete.

NameTypeReqDescription
actionstringyes–
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idsarrayyesId объявлений, к которым применить действие.

No output schema declared.

No examples provided.

add_bid_modifier ~354

Добавляет корректировку ставок на кампанию или группу объявлений. Значения BidModifier — проценты по правилам API (например, 0–1300), а не деньги. API принимает в одном элементе BidModifiers только один тип корректировки, поэтому каждый переданный тип (mobile, desktop, demographics, retargeting, regional) уходит отдельным элементом в одном вызове bidmodifiers/add, в этом порядке. Каждая запись AddResults помечена полем Type (MOBILE_ADJUSTMENT, DESKTOP_ADJUSTMENT, DEMOGRAPHICS_ADJUSTMENT, RETARGETING_ADJUSTMENT, REGIONAL_ADJUSTMENT): типы создаются независимо, при частичной ошибке повторять только типы с Errors. Внутри одного типа (массивы demographics/retargeting/regional) API создаёт всё или ничего.

NameTypeReqDescription
adGroupIdinteger–Id группы объявлений (либо это поле, либо campaignId).
campaignIdinteger–Id кампании (либо это поле, либо adGroupId).
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
demographicsarray–Корректировки по демографии.
desktopobject–Корректировка для десктопа.
mobileobject–Корректировка для мобильных.
regionalarray–Корректировки по регионам.
retargetingarray–Корректировки по ретаргетингу.

No output schema declared.

No examples provided.

add_callouts ~139

Создаёт уточнения, до 25 символов каждое, не более 1000 за вызов. Уточнения неизменяемы — чтобы поменять, нужно удалить и создать заново. Привязка к объявлениям — через сервис Ads.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
textsarrayyesТексты уточнений, до 25 символов каждый, не более 1000 за вызов.

No output schema declared.

No examples provided.

add_keywords ~107

Добавляет ключевые фразы в группу объявлений, при необходимости — со ставками для поиска и сетей.

NameTypeReqDescription
adGroupIdintegeryesId группы объявлений.
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
keywordsarrayyesКлючевые фразы для добавления.

No output schema declared.

No examples provided.

auth_status ~101

Показывает, подключён ли Яндекс Директ: есть ли токен, откуда он взят (переменная окружения YANDEX_DIRECT_TOKEN или сохранённый вход), когда истекает и где лежит файл с сохранёнными данными. Ничего не отправляет в сеть и не показывает сам токен. Вызовите это, если инструменты Директа отвечают, что подключение не настроено.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

campaign_action ~101

Выполняет действие над кампаниями по id: suspend, resume, archive, unarchive или delete.

NameTypeReqDescription
actionstringyes–
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idsarrayyesId кампаний, к которым применить действие.

No output schema declared.

No examples provided.

clients_overview ~423

Сводка по всем клиентам агентства и кабинетам в управлении за один вызов — для вопросов вроде «что у меня по аккаунтам в управлении»: по каждому клиенту баланс общего счёта и число кампаний по состояниям (on — идут или могут идти, suspended — остановлены пользователем, off — не идут по другой причине, ended) и статусам модерации (moderation, rejected, draft). Архивные кампании не считаются. Клиенты — из list_clients, либо явный список logins. Ошибка по одному клиенту (нет доступа, нет общего счёта) не прерывает остальных и попадает в его строку. С параметром stats добавляет показы, клики и расход (с НДС, в валюте клиента) за период — по одному отчёту Reports на клиента, строго по очереди: Яндекс пускает примерно один отчёт в 10 секунд, так что 30 клиентов — около 5 минут; клиенты без неархивных кампаний не запрашиваются, а кто не уложился в 5 минут, помечается statsSkipped. Без stats ответ приходит за секунды — запрашивать расход, только когда вопрос про деньги или трафик. Не вызывать list_campaigns по каждому клиенту в цикле — эта сводка дешевле. Тратит баллы API каждого клиента: один запрос кампаний на клиента и один запрос баланса на 50 клиентов у агентства (у обычного аккаунта — на каждого).

NameTypeReqDescription
limitinteger–Сколько клиентов обойти, 1–200. По умолчанию 50.
loginsarray–Только эти логины клиентов. По умолчанию — все из list_clients.
searchstring–Только клиенты, у которых логин или название содержит эту подстроку.
statsstring–Добавить показы, клики и расход за этот период. Медленно: около 10 с на клиента.

No output schema declared.

No examples provided.

create_ad_group ~120

Создаёт группу объявлений в кампании с заданными регионами показа.

NameTypeReqDescription
campaignIdintegeryesId родительской кампании.
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
namestringyesНазвание группы объявлений.
regionIdsarrayyesId регионов показа, например [225] — Россия.

No output schema declared.

No examples provided.

create_sitelinks_set ~175

Создаёт набор быстрых ссылок (1–8 штук). Лимиты API: текст ссылки до 30 символов, описание до 60, URL до 1024 (с протоколом и доменом); длиннее API отв��чает «Превышена допустимая длина», поэтому сокращать заранее. Наборы неизменяемы — чтобы поменять ссылки, нужно создать новый набор и переназначить его объявлению.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
sitelinksarrayyesОт 1 до 8 быстрых ссылок.

No output schema declared.

No examples provided.

create_text_ad ~347

Создаёт текстовое объявление (TextAd) в группе объявлений. Новые объявления создаются черновиками. TextAdAdd требует хотя бы одно из Href/TurboPageId/BusinessId — этот инструмент передаёт посадочную страницу через href (обязателен); объявление с BusinessId вместо ссылки создаётся через raw_request. Визитки (VCardId) Директ больше не поддерживает: контакты задаются организацией из Яндекс Бизнеса (BusinessId). Директ создаёт такие объявления комбинаторными (тип RESPONSIVE_AD), а Title2 объединяет с Title через «. », если вместе они короче 56 символов, иначе отбрасывает; о таких изменениях API сообщает предупреждениями.

NameTypeReqDescription
adGroupIdintegeryesId родительской группы объявлений.
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
hrefstringyesURL посадочной страницы (обязателен для TextAdAdd).
mobileboolean–Мобильное ли это объявление. Поле в API устарело (значение принудительно NO), но остаётся обязательным.
textstringyesТекст объявления, до 81 символа.
titlestringyesЗаголовок (Title 1), до 56 символов.
title2string–Второй заголовок (Title 2), до 30 символов.

No output schema declared.

No examples provided.

create_text_campaign ~294

Создаёт кампанию TextCampaign (текстово-графические объявления). Без biddingStrategy применяются ручные ставки на поиске с отключёнными сетями (Search HIGHEST_POSITION, Network SERVING_OFF); чтобы включить автостратегию или сети, передать biddingStrategy целиком — {Search, Network}.

NameTypeReqDescription
biddingStrategyobject–Полный объект BiddingStrategy {Search, Network} в формате API, деньги (WeeklySpendLimit, BidCeiling, AverageCpc, AverageCpa, Cpa…) в валюте аккаунта. Заменяет значение по умолчанию.
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
dailyBudgetAmountnumber–Дневной бюджет в валюте аккаунта (конвертируется в микроединицы).
dailyBudgetModestring–Режим траты дневного бюджета: STANDARD — показы как можно быстрее, DISTRIBUTED — равномерно в течение дня. По умолчанию STANDARD.
endDatestring–Дата окончания в формате YYYY-MM-DD.
namestringyesНазвание кампании.
startDatestringyesДата начала в формате YYYY-MM-DD.

No output schema declared.

No examples provided.

delete_ad_groups ~103

Удаляет группы объявлений по id (adgroups/delete). Вместе с группой удаляются её объявления и ключевые фразы; отменить это нельзя.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idsarrayyesId групп, которые нужно удалить.

No output schema declared.

No examples provided.

delete_bid_modifiers ~87

Удаляет корректировки ставок по id (bidmodifiers/delete).

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idsarrayyesId корректировок, которые нужно удалить.

No output schema declared.

No examples provided.

delete_callouts ~83

Удаляет уточнения по id (adextensions/delete).

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idsarrayyesId уточнений, которые нужно удалить.

No output schema declared.

No examples provided.

delete_sitelinks ~102

Удаляет наборы быстрых ссылок по id (удалить можно только наборы, не привязанные ни к одному объявлению).

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idsarrayyesId наборов, которые нужно удалить.

No output schema declared.

No examples provided.

finish_login ~124

Второй шаг подключения: обменивает код подтверждения из start_login на токен доступа, сохраняет его в файл только для владельца (0600) и сразу проверяет живым запросом к Директу. После успеха остальные инструменты работают немедленно — перезапускать клиент не нужно. Код одноразовый и живёт 10 минут: если он не принят, вызовите start_login заново и попросите свежий.

NameTypeReqDescription
codestringyesКод подтверждения, который Яндекс показал пользователю после входа.

No output schema declared.

No examples provided.

get_account_info ~112

Возвращает данные текущего аккаунта рекламодателя (логин, валюта, тип, страна) через сервис `clients` Яндекс Директа.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
fieldNamesarray–Какие поля клиента вернуть. По умолчанию — типовой набор.

No output schema declared.

No examples provided.

get_ad_images ~127

Возвращает список изображений из библиотеки изображений, ключ — хеш изображения. Новые изображения загружает upload_ad_image.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
hashesarray–Фильтр по хешам изображений.
limitinteger–Максимум объектов на страницу.
offsetinteger–Смещение постраничной выдачи.

No output schema declared.

No examples provided.

get_ad_videos ~129

Читает видео из библиотеки видео по id (API требует id). Загрузка идёт через raw_request (advideos/add).

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idsarrayyesId видео (обязательны по требованию API).
limitinteger–Максимум объектов на страницу.
offsetinteger–Смещение постраничной выдачи.

No output schema declared.

No examples provided.

get_balance ~227

Возвращает баланс общего счёта и финансовые поля (Amount, AmountAvailableForTransfer, Currency, Discount, AccountID) через устаревший сервис AccountManagement Live v4 — единственный API Яндекс Директа, который отдаёт баланс (в v5 финансового метода нет). Amount — строка в ВАЛЮТЕ АККАУНТА (не в микроединицах); отрицательный Amount означает задолженность. По умолчанию — собственный аккаунт токена, а при переданном client_login — счёт этого клиента; чтобы получить несколько общих счетов разом (агентство, до 50 логинов), передать logins.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
loginsarray–Логины аккаунтов, по которым нужны данные. По умолчанию — собственный аккаунт токена.

No output schema declared.

No examples provided.

get_bid_modifiers ~195

Читает корректировки ставок (мобильные, десктоп, демография, ретаргетинг, регионы, видео) для кампаний или групп объявлений. BidModifier — это процент, а не деньги.

NameTypeReqDescription
adGroupIdsarray–Фильтр по id групп объявлений.
campaignIdsarray–Фильтр по id кампаний.
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idsarray–Фильтр по id корректировок.
levelsarray–Уровни, на которых читать. По умолчанию оба: CAMPAIGN и AD_GROUP.
typesarray–Фильтр по типам корректировок.

No output schema declared.

No examples provided.

get_callouts ~123

Возвращает список уточнений из библиотеки adextensions. Привязать уточнение к объявлению можно через сервис Ads.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idsarray–Фильтр по id уточнений.
limitinteger–Максимум объектов на страницу.
offsetinteger–Смещение постраничной выдачи.

No output schema declared.

No examples provided.

get_creatives ~126

Возвращает список креативов (смарт-баннеры, HTML5) из библиотеки креативов.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idsarray–Фильтр по id креативов.
limitinteger–Максимум объектов на страницу.
offsetinteger–Смещение постраничной выдачи.

No output schema declared.

No examples provided.

get_dictionaries ~117

Возвращает справочники Яндекс Директа (валюты, часовые пояса, константы, категории объявлений, …). GeoRegions может быть очень большим — для поиска регионов лучше get_regions.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
namesarrayyesНазвания нужных справочников.

No output schema declared.

No examples provided.

get_quota ~95

Возвращает сегодняшнюю квоту баллов API (потрачено / осталось / лимит) из заголовка Units — чтобы не упереться в дневной лимит.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.

No output schema declared.

No examples provided.

get_regions ~143

Ищет id регионов для таргетинга (те самые regionIds, которые нужны create_ad_group). Фильтр — подстрока названия; количество результатов ограничено limit.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
limitinteger–Максимум регионов в ответе. По умолчанию 50.
querystring–Подстрока названия региона без учёта регистра, например 'Москва' или 'Moscow'.

No output schema declared.

No examples provided.

get_sitelinks ~138

Читает наборы быстрых ссылок по id. API требует id наборов — их можно взять из поля SitelinkSetId объявлений.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idsarrayyesId наборов быстрых ссылок (обязательны по требованию API).
limitinteger–Максимум объектов на страницу.
offsetinteger–Смещение постраничной выдачи.

No output schema declared.

No examples provided.

get_statistics ~1,144

Запрашивает отчёт по эффективности через сервис Reports Яндекс Директа. По умолчанию отчёт АГРЕГИРОВАН за весь период (одна строка на объект) — добавлять "Date" в fieldNames только для динамики по дням или вопросов о трендах. Почасовой статистики в Reports нет: минимум — сутки, внутридневную динамику дают только повторные снимки TODAY. Готового ROAS нет — считать Revenue / Cost; GoalsRoi — это ROI ((Revenue − Cost) / Cost), не ROAS. Revenue, Profit, GoalsRoi и конверсии заполняются только по целям Метрики с ценностью. ALL_TIME без фильтра по кампаниям отклоняется для отчётов SEARCH_QUERY/CRITERIA: нужно передать campaignIds или ограниченный период. SEARCH_QUERY_PERFORMANCE_REPORT возвращает не сырые строки, а ВЫЧИСЛЕННУЮ СВОДКУ (итоги по ВСЕМ строкам + детализация top-N + свёртка хвоста + количество строк без кликов и без конверсий); её форму задают sortBy/topN/minCost/queryContains/zeroClicksOnly/zeroConversionsOnly, а для подсчётов по конверсиям нужно добавить Conversions в fieldNames. Остальные типы отчётов возвращают строки, разделённые табуляцией (без заголовка). compareTo — сравнение двух периодов: инструмент запускает ДВЕ задачи Reports (текущий период dateFrom/dateTo и compareTo) и возвращает JSON, где строки сопоставлены по разрезам отчёта (matchKey; название кампании или группы не учитывается, если запрошен её id — переименование не ломает сопоставление), с current, previous, delta и deltaPct по каждой метрике. Это только значения Яндекса и их разность: вклад факторов (расход = показы × CTR × CPC) инструмент не считает — при объяснении изменений считать по колонкам ответа и называть порядок факторов. Последние ~3 дня статистики Яндекс может пересчитать.

NameTypeReqDescription
attributionModelsarray–Модели атрибуции для конверсий по целям из goals; без goals не применяются (API их тогда не принимает). По умолчанию LC (последний переход).
campaignIdsarray–Ограничить отчёт этими id кампаний.
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
compareToobject–Период, с которым сравнить текущий (dateFrom/dateTo, обязательны). Лучше той же длины. Не для SEARCH_QUERY_PERFORMANCE_REPORT и не с Date/Week/Month/Quarter/Year в fieldNames. sortBy задаёт сортировк…
dateFromstring–Дата начала YYYY-MM-DD (обязательна для CUSTOM_DATE).
dateRangeTypestring–Предустановленный период. Если заданы dateFrom/dateTo, подставляется CUSTOM_DATE.
dateTostring–Дата окончания YYYY-MM-DD (обязательна для CUSTOM_DATE).
fieldNamesarray–Колонки отчёта (должны быть допустимы для его типа). Сверх базовых метрик: Conversions, ConversionRate, CostPerConversion, Revenue, Profit, GoalsRoi. Разрезы CUSTOM_REPORT: Date, Device, Age, Gender,…
filtersarray–Произвольные условия SelectionCriteria.Filter, складываются с campaignIds по И. Например Clicks GREATER_THAN 0 или Device EQUALS MOBILE.
goalsarray–Id целей Яндекс Метрики (не более 10). Без них Conversions и Revenue считаются по всем целям кампании; с ними колонки приходят как <поле>_<idЦели>_<модель> (по одной на цель × модель). Для SEARCH_QUE…
includeVatboolean–Включать ли НДС в расход. По умолчанию true.
minCostnumber–Включать в детализацию только строки с Cost >= этого значения.
orderstring–Порядок сортировки строк детализации. По умолчанию desc.
queryContainsstring–Включать только строки, где запрос или условие содержит эту подстроку (без учёта регистра).
reportTypestring–Тип отчёта. По умолчанию CAMPAIGN_PERFORMANCE_REPORT.
sortBystring–Метрика для ранжирования строк детализации. По умолчанию Cost.
topNinteger–Максимум строк детализации в сводке (на сервере ограничено 100). По умолчанию 50.
zeroClicksOnlyboolean–Включать в детализацию только строки с 0 кликов.
zeroConversionsOnlyboolean–Только строки с clicks>0 и 0 конверсий (нужно Conversions в fieldNames).

No output schema declared.

No examples provided.

keyword_action ~101

Выполняет действие над ключевыми фразами по id: suspend, resume или delete.

NameTypeReqDescription
actionstringyes–
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idsarrayyesId ключевых фраз, к которым применить действие.

No output schema declared.

No examples provided.

list_ad_groups ~192

Возвращает список групп объявлений. Нужно передать campaignIds и/или ids — API Яндекс Директа требует хотя бы один критерий отбора.

NameTypeReqDescription
autoPaginateboolean–Забрать все страницы, идя по LimitedBy (limit тогда не ограничивает общий объём).
campaignIdsarray–Фильтр по id кампаний.
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
fieldNamesarray–Какие поля группы вернуть.
idsarray–Фильтр по id групп объявлений.
limitinteger–Максимум объектов на страницу.
offsetinteger–Смещение постраничной выдачи (сколько объектов пропустить).

No output schema declared.

No examples provided.

list_ads ~273

Возвращает список объявлений. Нужно передать campaignIds, adGroupIds или ids — API Яндекс Директа требует хотя бы один из них; states и statuses только сужают выборку.

NameTypeReqDescription
adGroupIdsarray–Фильтр по id групп объявлений.
autoPaginateboolean–Забрать все страницы, идя по LimitedBy (limit тогда не ограничивает общий объём).
campaignIdsarray–Фильтр по id кампаний.
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
fieldNamesarray–Какие поля объявления вернуть. Тексты и ссылки (Title, Title2, Text, Href, …) приходят в объекте TextAd.
idsarray–Фильтр по id объявлений.
limitinteger–Максимум объектов на страницу.
offsetinteger–Смещение постраничной выдачи (сколько объектов пропустить).
statesarray–Фильтр по состояниям объявлений.
statusesarray–Фильтр по статусам модерации.

No output schema declared.

No examples provided.

list_campaigns ~362

Возвращает список кампаний с необязательными фильтрами по id, типу, состоянию и статусу. Денежные поля (DailyBudget.Amount и Funds общего счёта — Sum, Balance, SumAvailableForTransfer, Spend) отдаются в валюте аккаунта. strategy: true добавляет блок TextCampaign/UnifiedCampaign со стратегией (BiddingStrategy), ключевыми целями (PriorityGoals), счётчиками Метрики, моделью атрибуции и пакетной стратегией — деньги в нём тоже в валюте аккаунта, а сам объект BiddingStrategy в этом виде принимает set_campaign_strategy.

NameTypeReqDescription
autoPaginateboolean–Забрать все страницы, идя по LimitedBy (limit тогда не ограничивает общий объём).
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
fieldNamesarray–Какие поля кампании вернуть. Стратегия здесь не запрашивается — для неё strategy: true.
idsarray–Фильтр по id кампаний.
limitinteger–Максимум объектов на страницу.
offsetinteger–Смещение постраничной выдачи (сколько объектов пропустить).
statesarray–Фильтр по состояниям кампаний.
statusesarray–Фильтр по статусам модерации.
strategyboolean–Вернуть стратегию показа и ключевые цели (блок TextCampaign или UnifiedCampaign).
typesarray–Фильтр по типам кампаний.

No output schema declared.

No examples provided.

list_clients ~265

Перечисляет рекламодателей, с которыми может работать токен: клиентов агентства (AgencyClients.get) и кабинеты в управлении из YANDEX_DIRECT_CLIENTS. Логин из ответа передаётся в параметр client_login любого инструмента данных — так один сервер работает со всеми клиентами без перезапуска. accountType=agency — токен агентства: без client_login (и без YANDEX_DIRECT_LOGIN) инструменты видят собственный аккаунт агентства, где обычно нет кампаний. accountType=advertiser — обычный аккаунт: API не перечисляет кабинеты, где этот логин представитель, поэтому список есть только если его задали в YANDEX_DIRECT_CLIENTS. Архивные клиенты агентства по умолчанию скрыты. Сводка по всем клиентам сразу (баланс, кампании) — clients_overview.

NameTypeReqDescription
includeArchivedboolean–Показать и архивных клиентов агентства. По умолчанию — только активных.
limitinteger–Сколько клиентов вернуть, 1–1000. По умолчанию 200.
searchstring–Фильтр по подстроке логина или названия клиента, без учёта регистра.

No output schema declared.

No examples provided.

list_keywords ~225

Возвращает список ключевых фраз. Нужно передать campaignIds, adGroupIds или ids — API Яндекс Директа требует хотя бы один из них. Bid и ContextBid отдаются в валюте аккаунта.

NameTypeReqDescription
adGroupIdsarray–Фильтр по id групп объявлений.
autoPaginateboolean–Забрать все страницы, идя по LimitedBy (limit тогда не ограничивает общий объём).
campaignIdsarray–Фильтр по id кампаний.
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
fieldNamesarray–Какие поля ключевой фразы вернуть.
idsarray–Фильтр по id ключевых фраз.
limitinteger–Максимум объектов на страницу.
offsetinteger–Смещение постраничной выдачи (сколько объектов пропустить).

No output schema declared.

No examples provided.

logout ~84

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

raw_request ~246

Универсальный запрос: вызывает напрямую любой сервис или метод API Яндекс Директа v5 (например service "bidmodifiers", method "get"). Нужен для сервисов, у которых нет отдельного инструмента. Деньги — в микроединицах (без конвертации). Методы чтения (get/has/check) выполняются свободно; любой другой метод считается записью и требует confirmWrite=true.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
confirmWriteboolean–Должен быть true для запуска метода записи (всё, кроме get/has/check).
methodstringyesМетод API, например get, add, update, delete, set, toggle, checkCampaigns.
paramsobject–Объект params для метода — как есть.
servicestringyesПуть сервиса строчными буквами, например campaigns, bidmodifiers, sitelinks, adextensions, changes, keywordsresearch.

No output schema declared.

No examples provided.

set_bid_modifiers ~145

Меняет процент существующих корректировок (bidmodifiers/set) по id корректировки. BidModifierSetItem принимает только Id и BidModifier; включить/выключить корректировку через API нельзя (метод bidmodifiers/toggle устарел и не поддерживается) — чтобы отключить корректировку, удалить её через delete_bid_modifiers.

NameTypeReqDescription
bidsarrayyesВ каждом элементе нужны id и percent.
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.

No output schema declared.

No examples provided.

set_campaign_strategy ~512

Меняет стратегию показа (BiddingStrategy) текстовой кампании или ЕПК. Формат — объект API как есть, в том же виде, в каком его отдаёт list_campaigns с strategy: true, поэтому порядок такой: прочитать текущую стратегию, показать её пользователю, скопировать и поправить нужное поле. Сервер делает только три вещи: (1) одним campaigns.get узнаёт тип кампании и кладёт стратегию в TextCampaign или UnifiedCampaign; (2) переводит деньги из валюты аккаунта в микроединицы — WeeklySpendLimit, BidCeiling, AverageCpc, AverageCpa, Cpa, SpendLimit, MinimumExplorationBudget (Crr и BudgetIncreasePercent — проценты, не деньги); (3) возвращает previous — стратегию до изменения — рядом с UpdateResults. Больше ничего не дописывается и не проверяется: правила совместимости проверяет API и отвечает ошибкой по объекту. Передаются обе стороны, search и network. Внутри структуры параметров непереданные поля той же стратегии сохраняют текущие значения (проверено вживую на ЕПК). PriorityGoals, CounterIds и AttributionModel этим инструментом не меняются (raw_request). Правила API: автостратегия на поиске ⇒ в сетях только NETWORK_DEFAULT или SERVING_OFF; автостратегия в сетях ⇒ на поиске SERVING_OFF. Конверсионные стратегии требуют GoalId цели Метрики и счётчик на кампании; стратегии *_MULTIPLE_GOALS берут цели из PriorityGoals. Минимумы бюджета и ставок — get_dictionaries → Currencies. Смена типа стратегии перезапускает её обучение. Кампании других типов и кампании в пакетной стратегии — через raw_request.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idintegeryesId кампании.
networkobjectyesСтратегия в сетях в формате API: {BiddingStrategyType, <Структура параметров>: {...}}, деньги в валюте аккаунта.
searchobjectyesСтратегия на поиске в формате API: {BiddingStrategyType, <Структура параметров>: {...}}, деньги в валюте аккаунта.

No output schema declared.

No examples provided.

set_keyword_bids ~203

Задаёт ручные ставки на поиске и в сетях для ключевых фраз либо для всех фраз указанных групп объявлений или кампаний (keywordbids/set). Ставки — в валюте аккаунта. Тип цели один на весь вызов: все элементы bids используют только keywordId, только adGroupId или только campaignId; для целей разных типов нужны отдельные вызовы.

NameTypeReqDescription
bidsarrayyesВ каждом элементе ровно один целевой id (keywordId, adGroupId или campaignId) и хотя бы одно из полей bid/contextBid. Тип id одинаков во всех элементах: смешивать keywordId, adGroupId и campaignId в…
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.

No output schema declared.

No examples provided.

start_login ~123

Первый шаг подключения Яндекс Директа без правки конфигурации и без перезапуска клиента. Возвращает ссылку на страницу Яндекс OAuth. Покажите ссылку пользователю целиком и попросите: открыть её в браузере под аккаунтом, у которого есть доступ к нужному рекламному кабинету, подтвердить доступ и прислать показанный код подтверждения. Полученный код передайте в finish_login. Код действует 10 минут. Сам по себе код бесполезен для постороннего: обменять его может только этот сервер.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

update_ad_group ~162

Обновляет название и/или регионы показа группы объявлений (adgroups/update).

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
idintegeryesId группы, которую нужно обновить.
namestring–Новое название группы.
negativeKeywordsarray–Заменяет минус-фразы группы; пустой массив очищает их. Чтобы дописать или убрать отдельные фразы, не затирая список, — update_negative_keywords.
regionIdsarray–Новые id регионов показа.

No output schema declared.

No examples provided.

update_campaign ~282

Обновляет название, дату окончания и/или дневной бюджет кампании (campaigns/update). API требует передавать режим бюджета (Mode) вместе с суммой, поэтому если dailyBudgetMode не задан, текущий режим кампании дочитывается через campaigns/get и сохраняется — смена суммы не меняет темп открутки.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
dailyBudgetAmountnumber–Дневной бюджет в валюте аккаунта.
dailyBudgetModestring–Режим траты дневного бюджета: STANDARD — показы как можно быстрее, DISTRIBUTED — равномерно в течение дня. Если не задан, сохраняется текущий режим кампании.
endDatestring–Новая дата окончания в формате YYYY-MM-DD.
idintegeryesId кампании, которую нужно обновить.
namestring–Новое название кампании.
negativeKeywordsarray–Заменяет минус-фразы кампании; пустой массив очищает их. Чтобы дописать или убрать отдельные фразы, не затирая список, — update_negative_keywords.

No output schema declared.

No examples provided.

update_excluded_sites ~509

Меняет список площадок, где кампании запрещено показываться (ExcludedSites): сайты, мобильные приложения и внешние сети РСЯ. Действует только в сетях, на поиске площадки не запрещаются. API хранит список целиком и при записи заменяет его, поэтому действие задаётся явно: - add — дописать площадки к текущим. Инструмент читает текущий список (campaigns/get) и записывает объединённый (campaigns/update): два вызова API. Уже исключённые не дублируются. - remove — вернуть показы на указанных площадках. Тоже чтение + запись. - replace — записать ровно переданный список вместо текущего, без чтения. Пустой список здесь не принимается — для очистки есть clear. - clear — снять все запреты (отправляется null). Значения: домен без протокола (example.com — API сам уберёт www. и приведёт к нижнему регистру), id приложения Android/iOS в виде com.example.app (числовой id App Store вида id123456789 API отвергает), название внешней сети из get_dictionaries → SupplySidePlatforms (например BidSwitch). Значение площадки из отчёта get_statistics (поле Placement, строки с AdNetworkType=AD_NETWORK) передаётся как есть. Если add/remove ничего не меняют, записи нет (changed: false). Ответ: before/after — число площадок до и после, added/alreadyPresent или removed/notFound. Между чтением и записью нет блокировки: правка того же списка в интерфейсе в эту секунду будет перезаписана. Лимиты API: до 1000 площадок, до 255 символов в каждой. Текущий список — list_campaigns с fieldNames ["ExcludedSites"].

NameTypeReqDescription
actionstringyesadd, remove, replace или clear — см. описание инструмента.
campaignIdintegeryesId кампании.
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
sitesarray–Площадки: домены, id приложений, названия внешних сетей. Не передаётся для clear.

No output schema declared.

No examples provided.

update_negative_keywords ~487

Меняет минус-фразы одной кампании или одной группы объявлений. API хранит список целиком и при записи заменяет его, поэтому действие задаётся явно: - add — дописать фразы к текущим. Инструмент читает текущий список (campaigns/get или adgroups/get) и записывает объединённый (update): два вызова API. Уже имеющиеся фразы не дублируются. - remove — убрать указанные фразы из текущего списка. Тоже чтение + запись. - replace — записать ровно переданный список вместо текущего, без чтения. Пустой список здесь не принимается — для очистки есть clear. - clear — удалить все минус-фразы (отправляется null). Фразы сравниваются без учёта регистра и лишних пробелов — так же склеивает их сам API; морфологию и порядок слов инструмент не учитывает. Если add/remove ничего не меняют, записи нет (changed: false). Ответ: before/after — число фраз до и после, added/alreadyPresent или removed/notFound — что именно произошло. Между чтением и записью нет блокировки: правка того же списка в интерфейсе в эту секунду будет перезаписана. Ограничения API: фраза без минуса в начале, до 7 слов, слово до 35 символов; суммарно до 20 000 символов на кампанию и 4096 на группу — нарушения API вернёт ошибкой по объекту. Минус-фразы кампании и группы действуют вместе.

NameTypeReqDescription
actionstringyesadd, remove, replace или clear — см. описание инструмента.
adGroupIdinteger–Id группы объявлений (либо это поле, либо campaignId).
campaignIdinteger–Id кампании (либо это поле, либо adGroupId).
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
phrasesarray–Минус-фразы без ведущего минуса, например ["бесплатно", "!скачать"]. Не передаётся для clear.

No output schema declared.

No examples provided.

update_text_ad ~177

Обновляет заголовок, текст или посадочную страницу текстового объявления (ads/update). Правка активного объявления отправляет его на повторную модерацию.

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
hrefstring–Новый URL посадочной страницы.
idintegeryesId объявления, которое нужно обновить.
textstring–Новый текст объявления, до 81 символа.
titlestring–Новый заголовок (Title 1), до 56 символов.
title2string–Новый второй заголовок (Title 2), до 30 символов.

No output schema declared.

No examples provided.

upload_ad_image ~243

Загружает изображение в библиотеку изображений (adimages/add) и возвращает его AdImageHash — этот хеш подставляется в поле AdImageHash текстово-графического объявления. Изображение передаётся публичным URL (сервер сам скачает и закодирует) или в base64 через imageData. Яндекс принимает JPG/PNG/GIF до 10 МБ; текстово-графическому объявлению нужна горизонтальная картинка (минимум 1080×607).

NameTypeReqDescription
client_loginstring–Логин клиента агентства или кабинета в управлении (из list_clients). Если не указан — YANDEX_DIRECT_LOGIN из конфигурации, а без него собственный аккаунт токена.
imageDatastring–Байты изображения в base64 (префикс data:-URL отбрасывается). Нужно передать это поле или url.
namestringyesНазвание изображения в библиотеке.
urlstring–Публичный URL изображения; сервер скачает его и закодирует в base64. Нужно передать это поле или imageData.

No output schema declared.

No examples provided.

Install

How do I install the Yandex Direct MCP server?

Yandex Direct MCP runs locally as an npm package, launched with npx -y mcp-yandex-direct. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · mcp-yandex-direct

# add to Claude Code
claude mcp add askads-mcp-yandex-direct -- npx -y mcp-yandex-direct
Common questions

What is the Yandex Direct MCP server?

Yandex Direct MCP is listed in the public MCP registry as io.github.askads/mcp-yandex-direct. MCP server for Yandex Direct API v5: manage PPC campaigns, ads, keywords, and statistics. This page covers its npm package (mcp-yandex-direct).

Is the Yandex Direct MCP server safe to use?

Yandex Direct MCP scores 73 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Yandex Direct MCP server expose?

Yandex Direct MCP exposes 46 tools: auth_status, start_login, finish_login, logout, get_account_info, and 41 more. Their descriptions and schemas cost roughly 10,029 tokens of context every time the server is loaded.

Is the Yandex Direct MCP server still maintained?

Yandex Direct MCP is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Yandex Direct MCP server under?

Yandex Direct MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.