A side-by-side look at the Яндекс.Директ and Meta Ads MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Яндекс.Директ for marketing work as a local process; choose Meta Ads MCP for marketing as a local process. You can also run both side by side in one mcpServers block.
list_campaigns, get_campaign, create_campaign.META_ADS_ACCESS_TOKEN, META_AD_ACCOUNT_ID.list_campaigns, get_campaign, create_campaign.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Marketing | Marketing |
| Quality signal | 61/100 · Good | 68/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | API key required |
| Pricing | Not declared | BYOK (pay the provider) |
| Required env vars | None listed | META_ADS_ACCESS_TOKENMETA_AD_ACCOUNT_ID |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 87 |
| Directory activity | 3 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 59 | 134 |
| Full listing | View Яндекс.Директ | View Meta Ads MCP |
list_campaignsСписок рекламных кампаний Яндекс.Директ с фильтрацией по статусу и типу. Бюджеты — в рублях. По умолчанию возвращается узкий набор полей; нужны другие (Funds, TimeZone, NegativeKeywords и прочие из CampaignFieldEnum) — перечислите их в fields. Кампаний «Баннер на поиске» (MCBANNER) API не отдаёт вовсе: их нет в списке, и это граница API, а не ошибка логина или фильтра — такие кампании видны только в веб-интерфейсе.get_campaignДетальная информация о кампании по ID: бюджет (руб), статус и пояснение к нему, даты, статистика, UTM-разметка, цели и их ценность (PriorityGoals), счётчики Метрики, модель атрибуции и прочие настройки. Реальные ID целей — PriorityGoals.Items[].GoalId; GoalId 13 в стратегии — служебное «ключевые цели», то есть оптимизация по этим PriorityGoals. Пустой ответ по ID из веб-интерфейса не значит, что номер неверный: кампании «Баннер на поиске» (MCBANNER) API не отдаёт, по ID они приходят пустыми.create_campaignСоздать новую текстово-графическую кампанию. Бюджет в рублях. Смарт-баннеры и динамические объявления Директ через API не создаёт с 22.05.2026, единую перфоманс-кампанию этот сервер пока не создаёт: такие кампании заводятся в интерфейсе Директа, дальше их можно читать и править здесь. ⚠️ Тестовой среды у Директа нет: кампания создаётся в боевом аккаунте. Деньги она начнёт тратить после модерации и включения, поэтому созданную для проверки оставляйте черновиком.update_campaignОбновить кампанию: название, бюджет (руб), UTM-разметку и/или статус (SUSPEND/RESUME/ARCHIVE/UNARCHIVE). Разметка действует на ссылки всех объявлений кампании.manage_campaignsЗапустить, остановить, архивировать, разархивировать или удалить кампании. ⚠️ delete необратимо и недоступен кампании с накопленной статистикой — такую только архивировать.get_strategyПолучить текущую стратегию показов текстово-графической кампании вместе с целями (PriorityGoals), счётчиками и моделью атрибуции. Реальные ID целей Метрики, по которым работает кампания, — TextCampaign.PriorityGoals.Items[].GoalId (рядом их ценность Value в рублях), счётчики — CounterIds. GoalId внутри BiddingStrategy бывает служебным: 13 — «оптимизировать по ключевым целям», то есть по тем же PriorityGoals; 12 — «Вовлечённые сессии». Названий целей API Директа не отдаёт — они есть только в Метрике.set_strategyИзменить стратегию текстово-графической кампании: ручная, максимум кликов, средняя цена клика или конверсии, оплата за конверсию. Цены — в рублях, цель Метрики — goal_id.set_priority_goalsЗадать цели стратегии кампании (PriorityGoals) и их ценность в рублях — по ним автостратегия оптимизирует ставки, в том числе «максимум конверсий» со служебным GoalId 13. Режим mode обязателен: add добавляет цели или меняет ценность уже заданных, remove убирает названные, replace заменяет список целиком (пустой массив очищает). Текущий список сервер читает сам. Чтобы добавить цель к существующим, нужен add: replace с одной целью сотрёт остальные. ⚠️ Смена целей перезапускает обучение стратегии. Поддерживаются текстово-графические, динамические, смарт и единые перфоманс-кампании; ID целей — из Метрики.get_time_targetingВременной таргетинг кампании: часовой пояс, часы показов по дням недели, почасовые коэффициенты и настройка праздников.set_time_targetingЗадать расписание показов кампании: дни, часы, почасовые коэффициенты, праздники и часовой пояс. ⚠️ Расписание заменяется целиком: часы вне переданных правил показов не получат.list_ad_groupsГруппы объявлений выбранных кампаний: названия, регионы, статусы. По умолчанию возвращается узкий набор полей; нужны другие (NegativeKeywords, NegativeKeywordSharedSetIds, TrackingParams, ServingStatus и прочие из AdGroupFieldEnum) — перечислите их в fields.create_ad_groupСоздать группу объявлений в кампании с таргетингом по регионам (см. get_regions).list_campaignsList campaigns in the ad account. Supports filtering by status and objective. Returns paginated results.get_campaignGet details of a specific campaign by ID.create_campaignCreate a new ad campaign. Defaults to PAUSED status. Requires name and objective. Budget can be set at campaign or ad set level.update_campaignUpdate an existing campaign. Only provided fields will be modified.delete_campaignDelete a campaign. This action is irreversible.copy_campaignCopy an existing campaign. Creates a duplicate with optional name override. Copies structure including ad sets and ads.get_campaign_adsetsGet all ad sets belonging to a specific campaign.get_campaign_adsGet all ads belonging to a specific campaign.get_campaign_leadsGet leads generated by a specific campaign. Requires leads_retrieval permission.list_adsetsList ad sets in the ad account. Optionally filter by campaign or status.get_adsetGet details of a specific ad set by ID.create_adsetCreate a new ad set. Requires name, campaign_id, budget, optimization_goal, billing_event, and targeting. Defaults to PAUSED status.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"mcp-1790599840029": {
"command": "npx",
"args": [
"-y",
"yandex-direct-mcp-plus"
]
}
}
}
{
"mcpServers": {
"mikusnuz-meta-ads-mcp": {
"command": "npx",
"args": [
"-y",
"@mikusnuz/meta-ads-mcp"
],
"env": {
"META_ADS_ACCESS_TOKEN": "YOUR_META_ADS_ACCESS_TOKEN_HERE",
"META_AD_ACCOUNT_ID": "YOUR_META_AD_ACCOUNT_ID_HERE"
}
}
}
}