A side-by-side look at the MCP Vk Ads and Yandex Direct MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Vk Ads for marketing work as a local process; choose Yandex Direct MCP for marketing as a local process. You can also run both side by side in one mcpServers block.
VK_ADS_TOKEN.auth_status, start_login, finish_login.YANDEX_DIRECT_TOKEN, YANDEX_DIRECT_SANDBOX, YANDEX_DIRECT_LOGIN.list_campaigns, get_campaign, create_campaign.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Marketing | Marketing |
| Quality signal | 63/100 · Good | 60/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | VK_ADS_TOKEN | YANDEX_DIRECT_TOKENYANDEX_DIRECT_SANDBOXYANDEX_DIRECT_LOGIN |
| Verified owner | Community listing | Community listing |
| GitHub stars | 11 | 4 |
| Directory activity | 4 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 22 | 20 |
| Full listing | View MCP Vk Ads | View Yandex Direct MCP |
auth_statusПоказывает, подключена ли VK Реклама: есть ли токен, откуда он взят (переменная окружения VK_ADS_TOKEN или сохранённый вход), когда истекает, какой client_id и аккаунт за ним стоят и где лежит файл с сохранёнными данными. Ничего не отправляет в сеть, не показывает ни токен, ни client_secret. Вызовите это, если инструменты VK Рекламы отвечают, что подключение не настроено.start_loginПервый шаг подключения VK Рекламы без правки конфигурации и без перезапуска клиента. Ничего не отправляет в сеть — возвращает инструкцию, которую нужно показать пользователю целиком: где в кабинете создать приложение и откуда скопировать client_id и client_secret. Полученную пару передайте в finish_login. Предупредите, что client_secret — это пароль от рекламного кабинета: он сохранится на диске только для владельца и нужен, чтобы продлевать токен.finish_loginВторой шаг подключения: обменивает client_id и client_secret из start_login на токен доступа (grant client_credentials), сохраняет всё в файл только для владельца (0600) и сразу проверяет живым запросом к VK Рекламе. После успеха остальные инструменты работают немедленно — перезапускать клиент не нужно. Токен живёт около суток и продлевается автоматически, поэтому повторно вызывать это не требуется: каждый вызов создаёт НОВЫЙ токен, а у VK не больше 5 активных токенов на пару client_id + пользователь. Ошибка invalid_client означает, что пара скопирована не полностью или относится к разным приложениям.logoutУдаляет сохранённые токен и данные приложения VK Рекламы с диска. Токен, заданный переменной окружения VK_ADS_TOKEN, не трогает — его нужно убирать из конфигурации клиента вручную. На стороне VK токен остаётся активным до истечения срока: отозвать его можно запросом POST v2/oauth2/token/delete.json, но он удаляет ВСЕ токены этого пользователя для данного client_id, поэтому здесь не вызывается.get_user_infoВозвращает информацию о текущем аккаунте VK Рекламы (user.json), включая additional_info.client_name. Позволяет убедиться, на какой аккаунт рекламодателя указывает токен.get_balanceВозвращает текущий баланс аккаунта VK Рекламы: доступные средства и валюту. Вызывает user.json с полем `account`, в котором лежит кошелёк (account.balance, account.currency). Показывает баланс того аккаунта, на который указывает токен (параметров нет). Важно: точное имя поля с балансом в v3/user.json на новой платформе ads.vk.com не подтверждено на живом кабинете (домен закрыт JS); схема следует объектной модели myTarget/VK Ads (v2/v3). Инструмент отдаёт СЫРОЙ ответ VK без изменений, поэтому вызывающая сторона может аккуратно прочитать account.balance независимо от точной формы ответа — проверить на первом живом аккаунте с доступом read_payments.get_throttlingВозвращает текущие лимиты запросов VK Рекламы и их остаток (throttling.json) — чтобы не упереться в лимит.get_regionsВозвращает гео-регионы VK Рекламы (id, name, type), при необходимости отфильтрованные по подстроке названия. Id регионов нужны для гео-таргетинга группы объявлений.list_ad_plansВозвращает список ad_plan (верхнеуровневый объект кампании в VK Рекламе) с необязательной фильтрацией по id и статусу. Денежные поля (budget_limit, budget_limit_day, max_price) — в валюте аккаунта.create_ad_planСоздаёт кампанию (ad_plan). Денежные поля — в валюте аккаунта. Сложные и редкие поля передаются через `extra` (подмешиваются в тело запроса как есть).update_ad_planМеняет у кампании название, бюджеты, предельную ставку или даты. Денежные поля — в валюте аккаунта. Для смены статуса — ad_plan_action.ad_plan_actionМеняет статус кампаний по id: activate (status=active), stop (status=blocked) или delete (status=deleted).list_campaignsСписок рекламных кампаний Яндекс.Директ с фильтрацией по статусу и типу. Бюджеты — в рублях.get_campaignДетальная информация о кампании по ID: бюджет (руб), статус, даты, статистика.create_campaignСоздать новую рекламную кампанию. Бюджет в рублях. ⚠️ Тратит реальные деньги — используйте sandbox для теста.update_campaignОбновить кампанию: название, бюджет (руб) и/или статус (SUSPEND/RESUME/ARCHIVE/UNARCHIVE).list_ad_groupsГруппы объявлений выбранных кампаний: названия, регионы, статусы.create_ad_groupСоздать группу объявлений в кампании с таргетингом по регионам (см. get_regions).delete_ad_groupsУдалить группы объявлений по их ID. ⚠️ Необратимо.list_adsОбъявления в группах: заголовки, тексты, ссылки, статусы.create_text_adСоздать текстовое объявление: заголовок (≤56), второй заголовок (≤30), текст (≤81), ссылка.update_text_adОбновить текстовое объявление: заголовок, текст, ссылка. Изменённое объявление уходит на модерацию.manage_adsДействие над объявлениями: suspend/resume/archive/unarchive/moderate/delete. ⚠️ delete необратимо.list_keywordsКлючевые фразы в группах объявлений: фразы, ставки (руб), статусы.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": {
"askads-mcp-vk-ads": {
"command": "npx",
"args": [
"-y",
"mcp-vk-ads@latest"
],
"env": {
"VK_ADS_TOKEN": "YOUR_VK_ADS_TOKEN_HERE"
}
}
}
}
{
"mcpServers": {
"yandex-direct-mcp-2": {
"command": "npx",
"args": [
"-y",
"@theyahia/yandex-direct-mcp"
],
"env": {
"YANDEX_DIRECT_TOKEN": "YOUR_YANDEX_DIRECT_TOKEN_HERE",
"YANDEX_DIRECT_SANDBOX": "YOUR_YANDEX_DIRECT_SANDBOX_HERE",
"YANDEX_DIRECT_LOGIN": "YOUR_YANDEX_DIRECT_LOGIN_HERE"
}
}
}
}