Yandex Direct MCP
NPM · MCP-YANDEX-DIRECT · SCANNED SEP 20
MCP server for Yandex Direct API v5: manage PPC campaigns, ads, keywords, and statistics.
Available components
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 Security98
- 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
- 31 of 96 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 32 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability76
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 5674 tokens (~128/item across 44 items; 44 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 observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 94% 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 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 45 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
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
claude mcp add askads-mcp-yandex-direct -- npx -y mcp-yandex-direct
{
"mcpServers": {
"askads-mcp-yandex-direct": {
"command": "npx",
"args": [
"-y",
"mcp-yandex-direct"
]
}
}
} {
"servers": {
"askads-mcp-yandex-direct": {
"command": "npx",
"args": [
"-y",
"mcp-yandex-direct"
]
}
}
} codex mcp add askads-mcp-yandex-direct -- npx -y mcp-yandex-direct
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"askads-mcp-yandex-direct": {
"type": "local",
"command": [
"npx",
"-y",
"mcp-yandex-direct"
],
"enabled": true
}
}
} openclaw mcp add askads-mcp-yandex-direct --command npx --arg -y --arg mcp-yandex-direct
mcp_servers:
askads-mcp-yandex-direct:
command: "npx"
args: ["-y", "mcp-yandex-direct"] {
"McpServers": {
"askads-mcp-yandex-direct": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"mcp-yandex-direct"
]
}
}
} assistant mcp add askads-mcp-yandex-direct -t stdio -c npx -a -y mcp-yandex-direct
{
"mcpServers": {
"askads-mcp-yandex-direct": {
"command": "npx",
"args": [
"-y",
"mcp-yandex-direct"
]
}
}
} 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.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 −3
- Stability: pass → 0.80 functional
- 17 Sept 26 0
- Stability: 0.97 → pass security
- 16 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 8 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.
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 20 Sept 2026 · Analysed npm/mcp-yandex-direct@1.5.1
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 →
Dependencies 96 packages
| Packages resolved | 96 |
|---|---|
| Stale | 31 |
| 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 →
ad_action Действие с объявлениями ~54
Выполняет действие над объявлениями по id: moderate, suspend, resume, archive, unarchive или delete.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| ids | array | yes | Id объявлений, к которым применить действие. |
No output schema declared.
No examples provided.
add_bid_modifier Добавить корректировку ставок ~167
Добавляет корректировку ставок на кампанию или группу объявлений. Значения BidModifier — проценты по правилам API (например, 0–1300), а не деньги.
| Name | Type | Req | Description |
|---|---|---|---|
| adGroupId | integer | – | Id группы объявлений (либо это поле, либо campaignId). |
| campaignId | integer | – | Id кампании (либо это поле, либо adGroupId). |
| demographics | array | – | Корректировки по демографии. |
| desktop | object | – | Корректировка для десктопа. |
| mobile | object | – | Корректировка для мобильных. |
| regional | array | – | Корректировки по регионам. |
| retargeting | array | – | Корректировки по ретаргетингу. |
No output schema declared.
No examples provided.
add_callouts Добавить уточнения ~73
Создаёт уточнения, до 25 символов каждое. Уточнения неизменяемы — чтобы поменять, нужно удалить и создать заново. Привязка к объявлениям — через сервис Ads.
| Name | Type | Req | Description |
|---|---|---|---|
| texts | array | yes | Тексты уточнений, до 25 символов каждый. |
No output schema declared.
No examples provided.
add_keywords Добавить ключевые фразы ~59
Добавляет ключевые фразы в группу объявлений, при необходимости — со ставками для поиска и сетей.
| Name | Type | Req | Description |
|---|---|---|---|
| adGroupId | integer | yes | Id группы объявлений. |
| keywords | array | yes | Ключевые фразы для добавления. |
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 Действие с кампаниями ~53
Выполняет действие над кампаниями по id: suspend, resume, archive, unarchive или delete.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| ids | array | yes | Id кампаний, к которым применить действие. |
No output schema declared.
No examples provided.
create_ad_group Создать группу объявлений ~72
Создаёт группу объявлений в кампании с заданными регионами показа.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | integer | yes | Id родительской кампании. |
| name | string | yes | Название группы объявлений. |
| regionIds | array | yes | Id регионов показа, например [225] — Россия. |
No output schema declared.
No examples provided.
create_sitelinks_set Создать набор быстрых ссылок ~71
Создаёт набор быстрых ссылок (1–8 штук). Наборы неизменяемы — чтобы поменять ссылки, нужно создать новый набор и переназначить его объявлению.
| Name | Type | Req | Description |
|---|---|---|---|
| sitelinks | array | yes | От 1 до 8 быстрых ссылок. |
No output schema declared.
No examples provided.
create_text_ad Создать текстовое объявление ~214
Создаёт текстовое объявление (TextAd) в группе объявлений. Новые объявления создаются черновиками. TextAdAdd требует хотя бы одно из Href/TurboPageId/VCardId/BusinessId — этот инструмент передаёт посадочную страницу через href (обязателен); объявление с BusinessId вместо ссылки создаётся через raw_request.
| Name | Type | Req | Description |
|---|---|---|---|
| adGroupId | integer | yes | Id родительской группы объявлений. |
| href | string | yes | URL посадочной страницы (обязателен для TextAdAdd). |
| mobile | boolean | – | Мобильное ли это объявление. Поле в API устарело (значение принудительно NO), но остаётся обязательным. |
| text | string | yes | Текст объявления, до 81 символа. |
| title | string | yes | Заголовок (Title 1), до 56 символов. |
| title2 | string | – | Второй заголовок (Title 2), до 30 символов. |
No output schema declared.
No examples provided.
create_text_campaign Создать текстовую кампанию ~215
Создаёт кампанию TextCampaign (текстово-графические объявления). Без biddingStrategy применяются ручные ставки на поиске с отключёнными сетями (Search HIGHEST_POSITION, Network SERVING_OFF); чтобы включить автостратегию или сети, передать biddingStrategy целиком — {Search, Network}.
| Name | Type | Req | Description |
|---|---|---|---|
| biddingStrategy | object | – | Полный объект BiddingStrategy {Search, Network}. Заменяет значение по умолчанию. |
| dailyBudgetAmount | number | – | Дневной бюджет в валюте аккаунта (конвертируется в микроединицы). |
| dailyBudgetMode | string | – | Режим траты дневного бюджета: STANDARD — показы как можно быстрее, DISTRIBUTED — равномерно в течение дня. По умолчанию STANDARD. |
| endDate | string | – | Дата окончания в формате YYYY-MM-DD. |
| name | string | yes | Название кампании. |
| startDate | string | yes | Дата начала в формате YYYY-MM-DD. |
No output schema declared.
No examples provided.
create_vcard Создать визитку ~219
Создаёт виртуальную визитку в кампании. Визитки неизменяемы — чтобы поменять, нужно удалить и создать заново.
| Name | Type | Req | Description |
|---|---|---|---|
| apartment | string | – | – |
| building | string | – | – |
| campaignId | integer | yes | Кампания, к которой относится визитка. |
| city | string | yes | Город, например Москва. |
| companyName | string | yes | Название организации. |
| contactEmail | string | – | – |
| contactPerson | string | – | – |
| country | string | yes | Страна, например Россия. |
| extraMessage | string | – | Дополнительная информация на визитке. |
| house | string | – | – |
| ogrn | string | – | ОГРН. |
| phone | object | yes | Контактный телефон. |
| street | string | – | – |
| workTime | string | yes | Время работы в формате API, например "1#5#9#00#18#00" — пн–пт 09:00–18:00. |
No output schema declared.
No examples provided.
delete_ad_groups Удалить группы объявлений ~55
Удаляет группы объявлений по id (adgroups/delete). Вместе с группой удаляются её объявления и ключевые фразы; отменить это нельзя.
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | Id групп, которые нужно удалить. |
No output schema declared.
No examples provided.
delete_bid_modifiers Удалить корректировки ставок ~39
Удаляет корректировки ставок по id (bidmodifiers/delete).
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | Id корректировок, которые нужно удалить. |
No output schema declared.
No examples provided.
delete_callouts Удалить уточнения ~35
Удаляет уточнения по id (adextensions/delete).
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | Id уточнений, которые нужно удалить. |
No output schema declared.
No examples provided.
delete_sitelinks Удалить наборы быстрых ссылок ~54
Удаляет наборы быстрых ссылок по id (удалить можно только наборы, не привязанные ни к одному объявлению).
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | Id наборов, которые нужно удалить. |
No output schema declared.
No examples provided.
delete_vcards Удалить визитки ~37
Удаляет визитки по id (vcards/delete).
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | Id визиток, которые нужно удалить. |
No output schema declared.
No examples provided.
finish_login Завершить подключение Директа ~124
Второй шаг подключения: обменивает код подтверждения из start_login на токен доступа, сохраняет его в файл только для владельца (0600) и сразу проверяет живым запросом к Директу. После успеха остальные инструменты работают немедленно — перезапускать клиент не нужно. Код одноразовый и живёт 10 минут: если он не принят, вызовите start_login заново и попросите свежий.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Код подтверждения, который Яндекс показал пользователю после входа. |
No output schema declared.
No examples provided.
get_account_info Данные аккаунта ~64
Возвращает данные текущего аккаунта рекламодателя (логин, валюта, тип, страна) через сервис `clients` Яндекс Директа.
| Name | Type | Req | Description |
|---|---|---|---|
| fieldNames | array | – | Какие поля клиента вернуть. По умолчанию — типовой набор. |
No output schema declared.
No examples provided.
get_ad_images Изображения объявлений ~79
Возвращает список изображений из библиотеки изображений, ключ — хеш изображения. Новые изображения загружает upload_ad_image.
| Name | Type | Req | Description |
|---|---|---|---|
| hashes | array | – | Фильтр по хешам изображений. |
| limit | integer | – | Максимум объектов на страницу. |
| offset | integer | – | Смещение постраничной выдачи. |
No output schema declared.
No examples provided.
get_ad_videos Видео объявлений ~81
Читает видео из библиотеки видео по id (API требует id). Загрузка идёт через raw_request (advideos/add).
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | Id видео (обязательны по требованию API). |
| limit | integer | – | Максимум объектов на страницу. |
| offset | integer | – | Смещение постраничной выдачи. |
No output schema declared.
No examples provided.
get_balance Баланс аккаунта ~154
Возвращает баланс общего счёта и финансовые поля (Amount, AmountAvailableForTransfer, Currency, Discount, AccountID) через устаревший сервис AccountManagement Live v4 — единственный API Яндекс Директа, который отдаёт баланс (в v5 финансового метода нет). Amount — строка в ВАЛЮТЕ АККАУНТА (не в микроединицах); отрицательный Amount означает задолженность. По умолчанию — собственный аккаунт токена; чтобы получить конкретные общие счета, передать logins.
| Name | Type | Req | Description |
|---|---|---|---|
| logins | array | – | Логины аккаунтов, по которым нужны данные. По умолчанию — собственный аккаунт токена. |
No output schema declared.
No examples provided.
get_bid_modifiers Корректировки ставок ~147
Читает корректировки ставок (мобильные, десктоп, демография, ретаргетинг, регионы, видео) для кампаний или групп объявлений. BidModifier — это процент, а не деньги.
| Name | Type | Req | Description |
|---|---|---|---|
| adGroupIds | array | – | Фильтр по id групп объявлений. |
| campaignIds | array | – | Фильтр по id кампаний. |
| ids | array | – | Фильтр по id корректировок. |
| levels | array | – | Уровни, на которых читать. По умолчанию оба: CAMPAIGN и AD_GROUP. |
| types | array | – | Фильтр по типам корректировок. |
No output schema declared.
No examples provided.
get_callouts Уточнения ~75
Возвращает список уточнений из библиотеки adextensions. Привязать уточнение к объявлению можно через сервис Ads.
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | – | Фильтр по id уточнений. |
| limit | integer | – | Максимум объектов на страницу. |
| offset | integer | – | Смещение постраничной выдачи. |
No output schema declared.
No examples provided.
get_creatives Креативы ~78
Возвращает список креативов (смарт-баннеры, HTML5) из библиотеки креативов.
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | – | Фильтр по id креативов. |
| limit | integer | – | Максимум объектов на страницу. |
| offset | integer | – | Смещение постраничной выдачи. |
No output schema declared.
No examples provided.
get_dictionaries Справочники ~69
Возвращает справочники Яндекс Директа (валюты, часовые пояса, константы, категории объявлений, …). GeoRegions может быть очень большим — для поиска регионов лучше get_regions.
| Name | Type | Req | Description |
|---|---|---|---|
| names | array | yes | Названия нужных справочников. |
No output schema declared.
No examples provided.
get_quota Квота API ~47
Возвращает сегодняшнюю квоту баллов API (потрачено / осталось / лимит) из заголовка Units — чтобы не упереться в дневной лимит.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_regions Поиск регионов ~95
Ищет id регионов для таргетинга (те самые regionIds, которые нужны create_ad_group). Фильтр — подстрока названия; количество результатов ограничено limit.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Максимум регионов в ответе. По умолчанию 50. |
| query | string | – | Подстрока названия региона без учёта регистра, например 'Москва' или 'Moscow'. |
No output schema declared.
No examples provided.
get_sitelinks Наборы быстрых ссылок ~90
Читает наборы быстрых ссылок по id. API требует id наборов — их можно взять из поля SitelinkSetId объявлений.
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | Id наборов быстрых ссылок (обязательны по требованию API). |
| limit | integer | – | Максимум объектов на страницу. |
| offset | integer | – | Смещение постраничной выдачи. |
No output schema declared.
No examples provided.
get_statistics Статистика ~564
Запрашивает отчёт по эффективности через сервис Reports Яндекс Директа. По умолчанию отчёт АГРЕГИРОВАН за весь период (одна строка на объект) — добавлять "Date" в fieldNames только для динамики по дням или вопросов о трендах. ALL_TIME без фильтра по кампаниям отклоняется для отчётов SEARCH_QUERY/CRITERIA: нужно передать campaignIds или ограниченный период. SEARCH_QUERY_PERFORMANCE_REPORT возвращает не сырые строки, а ВЫЧИСЛЕННУЮ СВОДКУ (итоги по ВСЕМ строкам + детализация top-N + свёртка хвоста + количество строк без кликов и без конверсий); её форму задают sortBy/topN/minCost/queryContains/zeroClicksOnly/zeroConversionsOnly, а для подсчётов по конверсиям нужно добавить Conversions в fieldNames. Остальные типы отчётов возвращают строки, разделённые табуляцией (без заголовка).
| Name | Type | Req | Description |
|---|---|---|---|
| campaignIds | array | – | Ограничить отчёт этими id кампаний. |
| dateFrom | string | – | Дата начала YYYY-MM-DD (обязательна для CUSTOM_DATE). |
| dateRangeType | string | – | Предустановленный период. Если заданы dateFrom/dateTo, подставляется CUSTOM_DATE. |
| dateTo | string | – | Дата окончания YYYY-MM-DD (обязательна для CUSTOM_DATE). |
| fieldNames | array | – | Колонки отчёта (должны быть допустимы для его типа). |
| includeVat | boolean | – | Включать ли НДС в расход. По умолчанию true. |
| minCost | number | – | Включать в детализацию только строки с Cost >= этого значения. |
| order | string | – | Порядок сортировки строк детализации. По умолчанию desc. |
| queryContains | string | – | Включать только строки, где запрос или условие содержит эту подстроку (без учёта регистра). |
| reportType | string | – | Тип отчёта. По умолчанию CAMPAIGN_PERFORMANCE_REPORT. |
| sortBy | string | – | Метрика для ранжирования строк детализации. По умолчанию Cost. |
| topN | integer | – | Максимум строк детализации в сводке (на сервере ограничено 100). По умолчанию 50. |
| zeroClicksOnly | boolean | – | Включать в детализацию только строки с 0 кликов. |
| zeroConversionsOnly | boolean | – | Только строки с clicks>0 и 0 конверсий (нужно Conversions в fieldNames). |
No output schema declared.
No examples provided.
get_vcards Визитки ~81
Читает виртуальные визитки по id. API требует id — их можно взять из поля VCardId объявлений.
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | Id визиток (обязательны по требованию API). |
| limit | integer | – | Максимум объектов на страницу. |
| offset | integer | – | Смещение постраничной выдачи. |
No output schema declared.
No examples provided.
keyword_action Действие с ключевыми фразами ~53
Выполняет действие над ключевыми фразами по id: suspend, resume или delete.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| ids | array | yes | Id ключевых фраз, к которым применить действие. |
No output schema declared.
No examples provided.
list_ad_groups Список групп объявлений ~144
Возвращает список групп объявлений. Нужно передать campaignIds и/или ids — API Яндекс Директа требует хотя бы один критерий отбора.
| Name | Type | Req | Description |
|---|---|---|---|
| autoPaginate | boolean | – | Забрать все страницы, идя по LimitedBy (limit тогда не ограничивает общий объём). |
| campaignIds | array | – | Фильтр по id кампаний. |
| fieldNames | array | – | Какие поля группы вернуть. |
| ids | array | – | Фильтр по id групп объявлений. |
| limit | integer | – | Максимум объектов на страницу. |
| offset | integer | – | Смещение постраничной выдачи (сколько объектов пропустить). |
No output schema declared.
No examples provided.
list_ads Список объявлений ~185
Возвращает список объявлений с необязательными фильтрами по кампании, группе, id, состоянию и статусу.
| Name | Type | Req | Description |
|---|---|---|---|
| adGroupIds | array | – | Фильтр по id групп объявлений. |
| autoPaginate | boolean | – | Забрать все страницы, идя по LimitedBy (limit тогда не ограничивает общий объём). |
| campaignIds | array | – | Фильтр по id кампаний. |
| fieldNames | array | – | Какие поля объявления вернуть. |
| ids | array | – | Фильтр по id объявлений. |
| limit | integer | – | Максимум объектов на страницу. |
| offset | integer | – | Смещение постраничной выдачи (сколько объектов пропустить). |
| states | array | – | Фильтр по состояниям объявлений. |
| statuses | array | – | Фильтр по статусам модерации. |
No output schema declared.
No examples provided.
list_campaigns Список кампаний ~202
Возвращает список кампаний с необязательными фильтрами по id, типу, состоянию и статусу. Денежные поля (DailyBudget.Amount и Funds общего счёта — Sum, Balance, SumAvailableForTransfer, Spend) отдаются в валюте аккаунта.
| Name | Type | Req | Description |
|---|---|---|---|
| autoPaginate | boolean | – | Забрать все страницы, идя по LimitedBy (limit тогда не ограничивает общий объём). |
| fieldNames | array | – | Какие поля кампании вернуть. |
| ids | array | – | Фильтр по id кампаний. |
| limit | integer | – | Максимум объектов на страницу. |
| offset | integer | – | Смещение постраничной выдачи (сколько объектов пропустить). |
| states | array | – | Фильтр по состояниям кампаний. |
| statuses | array | – | Фильтр по статусам модерации. |
| types | array | – | Фильтр по типам кампаний. |
No output schema declared.
No examples provided.
list_keywords Список ключевых фраз ~165
Возвращает список ключевых фраз с фильтром по кампании, группе объявлений или id. Bid и ContextBid отдаются в валюте аккаунта.
| Name | Type | Req | Description |
|---|---|---|---|
| adGroupIds | array | – | Фильтр по id групп объявлений. |
| autoPaginate | boolean | – | Забрать все страницы, идя по LimitedBy (limit тогда не ограничивает общий объём). |
| campaignIds | array | – | Фильтр по id кампаний. |
| fieldNames | array | – | Какие поля ключевой фразы вернуть. |
| ids | array | – | Фильтр по id ключевых фраз. |
| limit | integer | – | Максимум объектов на страницу. |
| offset | integer | – | Смещение постраничной выдачи (сколько объектов пропустить). |
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 Прямой вызов API Яндекс Директа ~198
Универсальный запрос: вызывает напрямую любой сервис или метод API Яндекс Директа v5 (например service "bidmodifiers", method "get"). Нужен для сервисов, у которых нет отдельного инструмента. Деньги — в микроединицах (без конвертации). Методы чтения (get/has/check) выполняются свободно; любой другой метод считается записью и требует confirmWrite=true.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmWrite | boolean | – | Должен быть true для запуска метода записи (всё, кроме get/has/check). |
| method | string | yes | Метод API, например get, add, update, delete, set, toggle, checkCampaigns. |
| params | object | – | Объект params для метода — как есть. |
| service | string | yes | Путь сервиса строчными буквами, например campaigns, bidmodifiers, sitelinks, vcards, changes, keywordsresearch. |
No output schema declared.
No examples provided.
set_bid_modifiers Изменить корректировки ставок ~97
Меняет процент существующих корректировок (bidmodifiers/set) по id корректировки. BidModifierSetItem принимает только Id и BidModifier; включить/выключить корректировку через API нельзя (метод bidmodifiers/toggle устарел и не поддерживается) — чтобы отключить корректировку, удалить её через delete_bid_modifiers.
| Name | Type | Req | Description |
|---|---|---|---|
| bids | array | yes | В каждом элементе нужны id и percent. |
No output schema declared.
No examples provided.
set_keyword_bids Задать ставки ключевых фраз ~83
Задаёт ручные ставки на поиске и в сетях для ключевых фраз либо для всех фраз указанных групп объявлений или кампаний (keywordbids/set). Ставки — в валюте аккаунта.
| Name | Type | Req | Description |
|---|---|---|---|
| bids | array | yes | В каждом элементе нужен один целевой id и хотя бы одно из полей bid/contextBid. |
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 Обновить группу объявлений ~91
Обновляет название и/или регионы показа группы объявлений (adgroups/update).
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | Id группы, которую нужно обновить. |
| name | string | – | Новое название группы. |
| negativeKeywords | array | – | Заменяет минус-фразы группы; пустой массив очищает их. |
| regionIds | array | – | Новые id регионов показа. |
No output schema declared.
No examples provided.
update_campaign Обновить кампанию ~211
Обновляет название, дату окончания и/или дневной бюджет кампании (campaigns/update). API требует передавать режим бюджета (Mode) вместе с суммой, поэтому если dailyBudgetMode не задан, текущий режим кампании дочитывается через campaigns/get и сохраняется — смена суммы не меняет темп открутки.
| Name | Type | Req | Description |
|---|---|---|---|
| dailyBudgetAmount | number | – | Дневной бюджет в валюте аккаунта. |
| dailyBudgetMode | string | – | Режим траты дневного бюджета: STANDARD — показы как можно быстрее, DISTRIBUTED — равномерно в течение дня. Если не задан, сохраняется текущий режим кампании. |
| endDate | string | – | Новая дата окончания в формате YYYY-MM-DD. |
| id | integer | yes | Id кампании, которую нужно обновить. |
| name | string | – | Новое название кампании. |
| negativeKeywords | array | – | Заменяет минус-фразы кампании; пустой массив очищает их. |
No output schema declared.
No examples provided.
update_text_ad Обновить текстовое объявление ~129
Обновляет заголовок, текст или посадочную страницу текстового объявления (ads/update). Правка активного объявления отправляет его на повторную модерацию.
| Name | Type | Req | Description |
|---|---|---|---|
| href | string | – | Новый URL посадочной страницы. |
| id | integer | yes | Id объявления, которое нужно обновить. |
| text | string | – | Новый текст объявления, до 81 символа. |
| title | string | – | Новый заголовок (Title 1), до 56 символов. |
| title2 | string | – | Новый второй заголовок (Title 2), до 30 символов. |
No output schema declared.
No examples provided.
upload_ad_image Загрузить изображение ~195
Загружает изображение в библиотеку изображений (adimages/add) и возвращает его AdImageHash — этот хеш подставляется в поле AdImageHash текстово-графического объявления. Изображение передаётся публичным URL (сервер сам скачает и закодирует) или в base64 через imageData. Яндекс принимает JPG/PNG/GIF до 10 МБ; текстово-графическому объявлению нужна горизонтальная картинка (минимум 1080×607).
| Name | Type | Req | Description |
|---|---|---|---|
| imageData | string | – | Байты изображения в base64 (префикс data:-URL отбрасывается). Нужно передать это поле или url. |
| name | string | yes | Название изображения в библиотеке. |
| url | string | – | Публичный URL изображения; сервер скачает его и закодирует в base64. Нужно передать это поле или imageData. |
No output schema declared.
No examples provided.
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 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 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 44 tools: auth_status, start_login, finish_login, logout, get_account_info, and 39 more. Their descriptions and schemas cost roughly 5,226 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 20 September 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.