Яндекс.Директ
NPM · YANDEX-DIRECT-MCP-PLUS
API Яндекс.Директа v5: кампании, объявления, фразы, ставки, минус-фразы, статистика
Available components
Last scanned (3 minutes ago)
Scores higher than 95% of npm servers
Category Marketing and SEO
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 Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 0 of 6 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to Pavelsiba/yandex-direct-mcp-plus). View diagnostics → Pass
- Clear OSI-approved license (AGPL-3.0-only).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability68
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 10683 tokens (~161/item across 66 items; 66 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 Management87
- Stability check failed: the tool surface changed between 1.7.0 and 2.1.0: 2 tool removals, 0 breaking changes, 9 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 67 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
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 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87.
- 4 Nov 26 −2
- Stability: fail → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 2.0.1 → 2.1.0 functional
- 1 Nov 26 −1
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Stability: pass → fail ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 1.8.0 → 2.0.1 functional
- 29 Oct 26 +1
- Stability: 0.97 → pass security
- 28 Oct 26 −1
- Stability: pass → 0.97 functional
- 26 Oct 26 +1
- Stability: fail → pass ▲ security
- 17 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 85 to 98.
- 16 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 82 to 85.
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/yandex-direct-mcp-plus@2.1.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | Pavelsiba/yandex-direct-mcp-plus |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/Pavelsiba/yandex-direct-mcp-plus/.github/workflows/release.yml@refs/heads/main |
| Rekor log index | 3690139133 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:d5d54d0c4967229f1f877cc4c7ea26db023db2b175ee226cd954bc1560c34611437c83e00c23ef62a70c1e1de5417deccbb1831af4e54511411a6d247 |
Background: How many MCP packages publish verified provenance →
Dependencies 6 packages
| Packages resolved | 6 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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 →
add_ad_extensions Создать уточнения ~45
Создать уточнения (callouts), каждый текст до 25 символов.
| Name | Type | Req | Description |
|---|---|---|---|
| callouts | array | yes | Тексты уточнений, каждый до 25 символов |
No output schema declared.
No examples provided.
add_bid_adjustments Создать корректировки ставок ~141
Создать корректировки ставок на кампаниях или группах. Коэффициент — проценты от ставки: 100 ничего не меняет, 0 отключает показы среза.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_ids | array | – | Группы, которым добавляются корректировки; вместо campaign_ids |
| adjustments | array | yes | Корректировки; каждая ставится каждому объекту из campaign_ids или ad_group_ids. Всего за вызов не больше 1000 корректировок — это цели, умноженные на виды |
| campaign_ids | array | – | Кампании, которым добавляются корректировки; вместо ad_group_ids |
No output schema declared.
No examples provided.
add_keywords Добавить ключевые слова ~64
Добавить ключевые фразы в группу объявлений.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | ID группы, в которую добавляются фразы |
| keywords | array | yes | Ключевые фразы; минус-слова внутри фразы записываются через дефис |
No output schema declared.
No examples provided.
add_retargeting_list Создать список ретаргетинга ~118
Создать условие ретаргетинга из целей Метрики, сегментов или интересов.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Описание условия — видно только в интерфейсе, на показы не влияет |
| name | string | yes | Название условия ретаргетинга |
| rules | array | yes | Правила условия; между собой они соединяются логическим И |
| type | string | – | RETARGETING — по целям Метрики, AUDIENCE — по сегментам Яндекс.Аудиторий |
No output schema declared.
No examples provided.
auth_status Подключение к Директу ~49
Откуда сервер берёт токен (переменная окружения, вход из диалога или запрос) и до когда он действует. В сеть не ходит, баллов не тратит.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
create_ad_group Создать группу ~126
Создать группу объявлений в кампании с таргетингом по регионам (см. get_regions).
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | ID кампании, в которой создаётся группа |
| name | string | yes | Название группы |
| region_ids | array | yes | Регионы показа, коды из get_regions: ["225"] — Россия, ["225","-213"] — Россия кроме Москвы, ["0"] — все регионы. Минус-регионы нельзя сочетать с 0 и нельзя отправлять одни, без обычного региона |
No output schema declared.
No examples provided.
create_campaign Создать кампанию ~408
Создать новую текстово-графическую кампанию. Бюджет в рублях. Смарт-баннеры и динамические объявления Директ через API не создаёт с 22.05.2026, единую перфоманс-кампанию этот сервер пока не создаёт: такие кампании заводятся в интерфейсе Директа, дальше их можно читать и править здесь. ⚠️ Тестовой среды у Директа нет: кампания создаётся в боевом аккаунте. Деньги она начнёт тратить после модерации и включения, поэтому созданную для проверки оставляйте черновиком.
| Name | Type | Req | Description |
|---|---|---|---|
| daily_budget | number | – | Дневной бюджет в рублях, например 1000 — это 1000 ₽ |
| name | string | yes | Название кампании |
| network_strategy | string | – | Стратегия показов в сетях (РСЯ); SERVING_OFF отключает показы в сетях |
| search_strategy | string | – | Стратегия показов на поиске; SERVING_OFF отключает показы на поиске |
| start_date | string | yes | Дата начала показов, YYYY-MM-DD |
| time_zone | string | – | Часовой пояс показов, например Europe/Moscow (по умолчанию). Список — в справочнике list_time_zones; на даты отчётов не влияет, они всегда по Москве |
| tracking_params | – | – | UTM-разметка, дописывается к ссылкам всех объявлений кампании. Без ведущего «?»: utm_source=yandex&utm_campaign={campaign_id}. Допустимы подстановки Директа в фигурных скобках. null снимает разметку |
| type | string | – | Тип кампании. Через API создаётся только текстово-графическая: смарт-баннеры и динамические объявления Директ через API не создаёт |
No output schema declared.
No examples provided.
create_responsive_ad Создать комбинаторное объявление ~178
Создать комбинаторное объявление: от 1 до 7 заголовков (≤56 символов), от 1 до 3 текстов (≤81) и ссылка; варианты показа Директ собирает из них сам. Текстовые объявления через API больше не создаются — Директ заводит их комбинаторными. В группе — не больше 3 неархивных комбинаторных объявлений.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | ID группы, в которой создаётся объявление |
| href | string | yes | Ссылка на сайт |
| texts | array | yes | Тексты, от 1 до 3, каждый до 81 символов |
| titles | array | yes | Заголовки, от 1 до 7, каждый до 56 символов |
No output schema declared.
No examples provided.
delete_ad_extensions Удалить уточнения ~46
Удалить уточнения по ID. ⚠️ Необратимо.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_extension_ids | array | yes | Уточнения, которые будут удалены безвозвратно |
No output schema declared.
No examples provided.
delete_ad_groups Удалить группы ~48
Удалить группы объявлений по их ID. ⚠️ Необратимо.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_ids | array | yes | Группы, которые будут удалены безвозвратно |
No output schema declared.
No examples provided.
delete_bid_adjustments Удалить корректировки ставок ~62
Удалить корректировки по их ID. Ставка среза возвращается к базовой; отменить удаление нельзя.
| Name | Type | Req | Description |
|---|---|---|---|
| adjustment_ids | array | yes | Корректировки, которые нужно удалить; ID берутся из get_bid_adjustments |
No output schema declared.
No examples provided.
delete_retargeting_lists Удалить списки ретаргетинга ~84
Удалить условия ретаргетинга и подбора аудитории по ID; удаление необратимо. Отказ по отдельному условию приходит строкой ❌ в ответе, остальные при этом удалены.
| Name | Type | Req | Description |
|---|---|---|---|
| retargeting_list_ids | array | yes | Условия, которые нужно удалить; ID берутся из list_retargeting_lists |
No output schema declared.
No examples provided.
delete_sitelinks Удалить быстрые ссылки ~67
Удалить наборы быстрых ссылок по ID. Набор, привязанный к объявлению, Директ удалить не даст.
| Name | Type | Req | Description |
|---|---|---|---|
| sitelink_set_ids | array | yes | Наборы, которые нужно удалить; ID берутся из list_sitelinks |
No output schema declared.
No examples provided.
delete_vcards Удалить визитки ~72
Удалить визитки по ID; удаление необратимо. Отказ по отдельной визитке приходит строкой ❌ в ответе, остальные при этом удалены.
| Name | Type | Req | Description |
|---|---|---|---|
| vcard_ids | array | yes | Визитки, которые нужно удалить; ID берутся из list_vcards |
No output schema declared.
No examples provided.
finish_login Вход в Яндекс.Директ: код ~81
Второй шаг входа: меняет код подтверждения от пользователя на токен и сохраняет его на этом компьютере. Токен в ответ не попадает.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Код подтверждения, который Яндекс показал пользователю после входа по ссылке из start_login. Одноразовый, живёт около 10 минут |
No output schema declared.
No examples provided.
get_account_balance Баланс аккаунта ~57
Баланс и финансовая информация аккаунта (Amount, Currency) через Live API v4.
| Name | Type | Req | Description |
|---|---|---|---|
| logins | array | – | Логины аккаунтов для агентского токена; по умолчанию — аккаунт самого токена |
No output schema declared.
No examples provided.
get_bid_adjustments Корректировки ставок ~168
Получить корректировки ставок кампании или группы: устройства, пол и возраст, аудитории, регионы, платёжеспособность, размещение.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_ids | array | – | Группы, корректировки которых нужно получить |
| adjustment_ids | array | – | Конкретные корректировки по их ID |
| campaign_ids | array | – | Кампании, корректировки которых нужно получить |
| levels | array | yes | Уровни корректировок: CAMPAIGN и/или AD_GROUP |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
| types | array | – | Фильтр по типу корректировки |
No output schema declared.
No examples provided.
get_campaign Кампания по ID ~168
Детальная информация о кампании по ID: бюджет (руб), статус и пояснение к нему, даты, статистика, UTM-разметка, цели и их ценность (PriorityGoals), счётчики Метрики, модель атрибуции и прочие настройки. Реальные ID целей — PriorityGoals.Items[].GoalId; GoalId 13 в стратегии — служебное «ключевые цели», то есть оптимизация по этим PriorityGoals. Пустой ответ по ID из веб-интерфейса не значит, что номер неверный: кампании «Баннер на поиске» (MCBANNER) API не отдаёт, по ID они приходят пустыми.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | ID рекламной кампании, десятичная строка |
No output schema declared.
No examples provided.
get_campaign_negative_keywords Получить минус-фразы кампаний ~44
Получить текущие минус-фразы кампаний по их ID.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_ids | array | yes | Кампании, минус-фразы которых нужно прочитать |
No output schema declared.
No examples provided.
get_changes Изменения объектов ~210
Проверить изменения кампаний, групп и объявлений начиная с указанного времени, а также изменения справочников (mode=dictionaries) и текущее время сервера Директа.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_ids | array | – | Группы для mode=objects |
| ad_ids | array | – | Объявления для mode=objects |
| campaign_ids | array | – | Кампании для mode=objects |
| field_names | array | – | Какие изменения интересуют; по умолчанию — соответствующие переданным ID |
| mode | string | yes | campaigns — какие кампании менялись целиком; objects — что изменилось внутри выбранных объектов; dictionaries — менялись ли справочники регионов, часовых поясов и интересов |
| timestamp | string | – | Момент, начиная с которого искать изменения: YYYY-MM-DDThh:mm:ssZ. Обязателен для campaigns и objects; для dictionaries без него возвращается только текущее время сервера |
No output schema declared.
No examples provided.
get_keyword_auction Аукцион по фразам ~379
Сколько стоит трафик по фразам: текущие ставки и торги на поиске и в сетях. Всё в рублях. На поиске Search.AuctionBids — для каждого объёма трафика фразы TrafficVolume Bid — сколько поставить и Price — сколько спишется за клик. Объём трафика — индекс кликабельности места показа: 100 — первое место премиум-показов, следующие места — 85, 75, 65; выше 100 — места кликабельнее первого, например показ в расширенном формате. В сетях Network.Coverage — ставка под долю аудитории (Probability, %). Отбор по одному уровню: фразы, группы или кампании. Торги видны при любой стратегии, но ставкой управляются только при ручной: на автостратегии (WB_*, AVERAGE_CPA, AVERAGE_CPC и прочие) ставки назначает Директ. Стратегию кампании проверяйте через get_strategy.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_ids | array | – | Аукцион по всем фразам указанных групп |
| campaign_ids | array | – | Аукцион по всем фразам указанных кампаний |
| keyword_ids | array | – | Аукцион по указанным фразам и автотаргетингам |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
| placements | array | – | Чьи торги показать: search — поиск, network — сети. По умолчанию обе; у кампании с выключенными показами на одной из площадок запрашивайте только другую |
No output schema declared.
No examples provided.
get_keyword_forecast Прогноз по фразам ~396
Прогноз трафика и цены клика по списку фраз без кампании — для подбора семантики. Отдаёт таблицу TSV, строка на фразу: Shows — показы за прошедший месяц; Clicks, CTR — нижний блок без первого места; FirstPlaceClicks, FirstPlaceCTR — первое место; PremiumClicks, PremiumCTR — спецразмещение; Min и Max — цена клика за вход в нижний блок и за первое место в нём; PremiumMin и PremiumMax — то же в спецразмещении. С auction_bids — колонки «P<блок><место> Bid» (ставка за позицию) и «… Price» (списываемая цена): P11–P14 — спецразмещение, P21–P24 — нижний блок. Строка «Итого» — суммы по всем фразам, где Min/Max/PremiumMin уже бюджет за месяц, а не цена клика. Деньги — в валюте из currency. Ждёт готовности отчёта до 90 секунд.
| Name | Type | Req | Description |
|---|---|---|---|
| auction_bids | boolean | – | Добавить по каждой фразе ставку и списываемую цену для каждой позиции показа (AuctionBids) |
| currency | string | – | Валюта цен и бюджетов в ответе; по умолчанию RUB |
| negative_keywords | array | – | Минус-фразы, общие для всех фраз прогноза |
| phrases | array | yes | Фразы для прогноза, до 100. Пересекающиеся фразы прогнозируются с учётом друг друга |
| region_ids | array | – | Регионы, коды из get_regions: ["65"] — Новосибирск, ["225","-213"] — Россия кроме Москвы. По умолчанию — все регионы |
No output schema declared.
No examples provided.
get_regions Справочник регионов ~175
Справочник кодов регионов (GeoRegions) для таргетинга. Фильтр по названию, 225 = Россия. with_parents=true показывает вложенность и различает одноимённые города.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Сколько регионов вернуть, максимум 500 |
| search | string | – | Фильтр по названию региона: подстрока без учёта регистра, например «москва» |
| with_parents | boolean | – | Показать, во что вложен регион (Новосибирск → Новосибирская область, Россия) — так различаются одноимённые города. По умолчанию выключено; требует search. Ищет при этом сам Директ — по похожему назва… |
No output schema declared.
No examples provided.
get_search_queries Поисковые запросы ~128
Отчёт по фактическим поисковым запросам для анализа и добавления минус-фраз.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_ids | array | yes | Кампании, по которым нужен отчёт о поисковых запросах |
| date_from | string | yes | Первый день периода, YYYY-MM-DD |
| date_to | string | yes | Последний день периода включительно, YYYY-MM-DD |
| fields | array | – | Поля отчёта; по умолчанию Query, CampaignId, CampaignName, AdGroupId, AdGroupName, Criterion, Impressions, Clicks, Cost |
No output schema declared.
No examples provided.
get_statistics Статистика ~311
Статистика за период по кампаниям, группам, объявлениям, условиям показа или аккаунту: показы, клики, расход (руб), CTR, CPC (ReportService, TSV).
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_ids | array | – | Кампании, по которым строится отчёт. Обязательны для всех типов, кроме ACCOUNT_PERFORMANCE_REPORT |
| date_from | string | yes | Первый день периода, YYYY-MM-DD |
| date_to | string | yes | Последний день периода включительно, YYYY-MM-DD |
| fields | array | – | Поля отчёта; по умолчанию — свой набор для каждого типа отчёта. Допустимость поля зависит от типа: например, Query бывает только в поисковых запросах, а Keyword — только фильтр. Date делит строки по… |
| report_type | string | – | Уровень отчёта: CAMPAIGN_PERFORMANCE_REPORT — по кампаниям, ADGROUP_PERFORMANCE_REPORT — по группам, AD_PERFORMANCE_REPORT — по объявлениям, CRITERIA_PERFORMANCE_REPORT — по условиям показа (фразы, а… |
No output schema declared.
No examples provided.
get_strategy Стратегия кампании ~166
Получить текущую стратегию показов текстово-графической кампании вместе с целями (PriorityGoals), счётчиками и моделью атрибуции. Реальные ID целей Метрики, по которым работает кампания, — TextCampaign.PriorityGoals.Items[].GoalId (рядом их ценность Value в рублях), счётчики — CounterIds. GoalId внутри BiddingStrategy бывает служебным: 13 — «оптимизировать по ключевым целям», то есть по тем же PriorityGoals; 12 — «Вовлечённые сессии». Названий целей API Директа не отдаёт — они есть только в Метрике.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | ID текстово-графической кампании |
No output schema declared.
No examples provided.
get_time_targeting Расписание показов кампании ~60
Временной таргетинг кампании: часовой пояс, часы показов по дням недели, почасовые коэффициенты и настройка праздников.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | ID кампании, десятичная строка |
No output schema declared.
No examples provided.
link_negative_keyword_sets Привязать общие минус-фразы ~185
Заменить привязки общих наборов минус-фраз у кампаний и/или групп объявлений. Привязка к кампании действует на все её группы. Пустой set_ids очищает привязки.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_ids | array | – | Группы, которым назначаются наборы |
| campaign_ids | array | – | Кампании, которым назначаются наборы. Привязка на уровне кампании действует на все её группы. Тип кампании сервер читает сам — это дополнительный вызов API; общие наборы поддерживают TEXT_CAMPAIGN, D… |
| set_ids | array | yes | Полный новый список наборов объекта — прежние привязки затираются. Пустой массив снимает все |
No output schema declared.
No examples provided.
list_ad_extensions Список уточнений ~117
Получить уточнения (callouts) с их статусами и текстом.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_extension_ids | array | – | Конкретные уточнения; без них возвращаются все |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
| states | array | – | Фильтр по состоянию уточнения |
| statuses | array | – | Фильтр по статусу модерации уточнения |
No output schema declared.
No examples provided.
list_ad_groups Список групп ~157
Группы объявлений выбранных кампаний: названия, регионы, статусы. По умолчанию возвращается узкий набор полей; нужны другие (NegativeKeywords, NegativeKeywordSharedSetIds, TrackingParams, ServingStatus и прочие из AdGroupFieldEnum) — перечислите их в fields.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_ids | array | yes | Кампании, группы которых нужно выбрать |
| fields | array | – | Какие поля вернуть; по умолчанию Id, Name, CampaignId, RegionIds, Status, Type |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
No output schema declared.
No examples provided.
list_ads Список объявлений ~362
Объявления: все заголовки и тексты, ссылки, статусы, тип и подтип объявления, привязанные сайтлинки, изображения и видео. Текстовые объявления Директ отдаёт комбинаторными (RESPONSIVE_AD). Причина отказа модерации приходит в StatusClarification. Отбор по ID объявлений, группам или кампаниям — хотя бы одно из трёх; сужается состоянием, статусом и типом. Без фильтра по состоянию архивные приходят наравне с активными. Список может быть неполным: объявления, тексты которых генерирует нейросеть Яндекса, через API недоступны и в выдачу не попадают, а по ответу это никак не видно. Поэтому «в группе только эти объявления» из ответа не следует — ни из пустого, ни из непустого; для полноты картины сверяйтесь с интерфейсом Директа.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_ids | array | – | Группы, объявления которых нужно выбрать |
| ad_ids | array | – | Конкретные объявления по ID |
| campaign_ids | array | – | Кампании, объявления которых нужно выбрать, до 10 |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
| states | array | – | Фильтр по состоянию: ON — показывается, SUSPENDED — остановлено, ARCHIVED — в архиве |
| statuses | array | – | Фильтр по статусу модерации |
| types | array | – | Фильтр по типу объявления |
No output schema declared.
No examples provided.
list_audience_targets Аудиторные цели ~179
Получить условия нацеливания на аудиторию по ID кампании, группы, ретаргетинга или интереса.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_ids | array | – | Условия выбранных групп |
| audience_target_ids | array | – | Конкретные условия нацеливания |
| campaign_ids | array | – | Условия выбранных кампаний |
| interest_ids | array | – | Условия, построенные на этих интересах |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
| retargeting_list_ids | array | – | Условия, построенные на этих списках ретаргетинга |
| states | array | – | Фильтр по состоянию: ON или SUSPENDED |
No output schema declared.
No examples provided.
list_businesses Профили организаций ~83
Получить доступные профили организаций из Яндекс Бизнеса.
| Name | Type | Req | Description |
|---|---|---|---|
| business_ids | array | – | Конкретные профили; без них возвращаются все доступные |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
No output schema declared.
No examples provided.
list_campaigns Список кампаний ~243
Список рекламных кампаний Яндекс.Директ с фильтрацией по статусу и типу. Бюджеты — в рублях. По умолчанию возвращается узкий набор полей; нужны другие (Funds, TimeZone, NegativeKeywords и прочие из CampaignFieldEnum) — перечислите их в fields. Кампаний «Баннер на поиске» (MCBANNER) API не отдаёт вовсе: их нет в списке, и это граница API, а не ошибка логина или фильтра — такие кампании видны только в веб-интерфейсе.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Какие поля вернуть; по умолчанию Id, Name, Status, StatusClarification, State, DailyBudget, StartDate, Type, Statistics |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
| status | string | – | Фильтр по статусу модерации кампании |
| types | array | – | Фильтр по типам кампаний |
No output schema declared.
No examples provided.
list_dynamic_targets Динамические цели ~123
Получить условия нацеливания динамических текстовых объявлений.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_ids | array | – | Цели выбранных групп |
| campaign_ids | array | – | Цели выбранных кампаний |
| dynamic_target_ids | array | – | Конкретные динамические цели |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
| states | array | – | Фильтр по состоянию: ON или SUSPENDED |
No output schema declared.
No examples provided.
list_feeds Список фидов ~90
Получить товарные фиды, их источники, статусы обработки и связанные кампании.
| Name | Type | Req | Description |
|---|---|---|---|
| feed_ids | array | – | Конкретные фиды; без них возвращаются все фиды аккаунта |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
No output schema declared.
No examples provided.
list_keywords Список ключевых слов ~244
Ключевые фразы в группах объявлений: фразы, ставки (руб), статусы. По умолчанию возвращается узкий набор полей; нужны другие (StatisticsSearch, StatisticsNetwork, Productivity, ServingStatus и прочие из KeywordFieldEnum) — перечислите их в fields. Автотаргетинг — спецфраза ---autotargeting в той же группе; его категории запросов — с autotargeting: true.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_ids | array | yes | Группы, ключевые фразы которых нужно выбрать |
| autotargeting | boolean | – | true — добавить к ответу AutotargetingSettings: категории запросов и брендов у фразы ---autotargeting (YES/NO). У обычных фраз поле пустое |
| fields | array | – | Какие поля вернуть; по умолчанию Id, Keyword, CampaignId, AdGroupId, Status, State, Bid, ContextBid |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
No output schema declared.
No examples provided.
list_negative_keyword_shared_sets Общие наборы минус-фраз ~86
Получить общие наборы минус-фраз аккаунта.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
| set_ids | array | – | Конкретные наборы; без них возвращаются все наборы аккаунта |
No output schema declared.
No examples provided.
list_retargeting_lists Списки ретаргетинга ~125
Получить условия ретаргетинга и подбора аудитории с правилами и областью применения.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
| retargeting_list_ids | array | – | Конкретные условия; без них возвращаются все |
| types | array | – | Фильтр по типу: RETARGETING — цели Метрики, AUDIENCE — сегменты Аудиторий |
No output schema declared.
No examples provided.
list_sitelinks Список быстрых ссылок ~88
Получить все или выбранные наборы быстрых ссылок.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
| sitelink_set_ids | array | – | Конкретные наборы; без них возвращаются все наборы аккаунта |
No output schema declared.
No examples provided.
list_time_zones Справочник часовых поясов ~99
Справочник часовых поясов (TimeZones) для set_time_targeting и create_campaign. Фильтр по коду или названию.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Сколько часовых поясов вернуть, максимум 500 |
| search | string | – | Фильтр по коду или названию пояса: подстрока без учёта регистра, например «moscow» или «Екатеринбург» |
No output schema declared.
No examples provided.
list_vcards Список визиток ~137
Получить виртуальные визитки по ID или найти их через объявления выбранных кампаний. Создавать визитки Директ через API не даёт — новая визитка заводится в интерфейсе Директа.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_ids | array | – | Найти визитки, привязанные к объявлениям этих кампаний |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
| vcard_ids | array | – | Конкретные визитки по их ID |
No output schema declared.
No examples provided.
logout Выход из Директа ~46
Удаляет сохранённый вход из диалога с этого компьютера. Переменную YANDEX_DIRECT_TOKEN не трогает; доступ приложения отзывается в Яндекс ID.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
manage_ad_images Управление изображениями ~170
Загрузить, получить или удалить изображения объявлений (AdImages). Для add данные передаются в base64.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Что сделать: add, get или delete (необратимо) |
| ad_image_hashes | array | – | Хеши изображений: фильтр при action=get, обязателен при action=delete |
| associated | string | – | Фильтр при action=get: YES — только привязанные к объявлениям, NO — только свободные |
| images | array | – | Изображения для загрузки; обязателен при action=add |
| limit | integer | – | Сколько объектов вернуть (максимум 10000) |
| offset | integer | – | Смещение выборки: сюда передаётся LimitedBy предыдущей страницы |
No output schema declared.
No examples provided.
manage_ads Управление объявлениями ~79
Действие над объявлениями: suspend/resume/archive/unarchive/moderate/delete. ⚠️ delete необратимо.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Действие: suspend, resume, archive, unarchive, moderate или delete (необратимо) |
| ad_ids | array | yes | Объявления, над которыми выполняется действие |
No output schema declared.
No examples provided.
manage_campaigns Управление кампаниями ~94
Запустить, остановить, архивировать, разархивировать или удалить кампании. ⚠️ delete необратимо и недоступен кампании с накопленной статистикой — такую только архивировать.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Действие: suspend, resume, archive, unarchive или delete (необратимо) |
| campaign_ids | array | yes | ID кампаний, над которыми выполняется действие |
No output schema declared.
No examples provided.
manage_dynamic_targets Управление динамическими целями ~114
Создать, изменить ставки, остановить, возобновить или удалить динамические цели.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Что сделать: add, set_bids, suspend, resume или delete (необратимо) |
| bids | array | – | Новые ставки и приоритеты; обязателен при action=set_bids |
| dynamic_target_ids | array | – | Цели для suspend, resume или delete |
| targets | array | – | Цели для добавления; обязателен при action=add |
No output schema declared.
No examples provided.
manage_keywords Управление ключевыми словами ~69
Действие над ключевыми фразами: suspend/resume/delete. ⚠️ delete необратимо.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Действие: suspend, resume или delete (необратимо) |
| keyword_ids | array | yes | Фразы, над которыми выполняется действие |
No output schema declared.
No examples provided.
manage_negative_keyword_shared_sets Управление общими минус-фразами ~114
Создать, изменить или удалить общие наборы минус-фраз аккаунта.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Что сделать с наборами: add, update или delete (необратимо) |
| add_sets | array | – | Наборы для создания; обязателен при action=add |
| set_ids | array | – | Наборы для удаления; обязателен при action=delete |
| update_sets | array | – | Наборы для изменения; обязателен при action=update |
No output schema declared.
No examples provided.
moderate_ads Отправить объявления на модерацию ~38
Отправить выбранные объявления на модерацию.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_ids | array | yes | Объявления, отправляемые на модерацию |
No output schema declared.
No examples provided.
How do I install the Яндекс.Директ MCP server?
Яндекс.Директ runs locally as an npm package, launched with npx -y yandex-direct-mcp-plus. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · yandex-direct-mcp-plus
claude mcp add pavelsiba-yandex-direct-mcp-plus -- npx -y yandex-direct-mcp-plus
What is the Яндекс.Директ MCP server?
Яндекс.Директ is an MCP server listed in the public MCP registry as io.github.Pavelsiba/yandex-direct-mcp-plus. API Яндекс.Директа v5: кампании, объявления, фразы, ставки, минус-фразы, статистика. This page covers its npm package (yandex-direct-mcp-plus).
Is the Яндекс.Директ MCP server safe to use?
Яндекс.Директ scores 92 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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 Яндекс.Директ MCP server expose?
Яндекс.Директ exposes 66 tools: start_login, finish_login, auth_status, logout, list_campaigns, and 61 more. Their descriptions and schemas cost roughly 10,358 tokens of context every time the server is loaded.
Is the Яндекс.Директ MCP server still maintained?
Яндекс.Директ 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 Яндекс.Директ MCP server under?
Яндекс.Директ declares the AGPL-3.0-only licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.