Защищенный MCP для VK Рекламы

vk-ads-mcp

Hardened-форк MCP для VK Рекламы: read-only по умолчанию, мутации только через VK_ADS_ENABLE_WRITES, защита от SSRF при загрузке файлов

MCP-сервер

Высокий риск

Высокий уровень ставим, когда инструмент пишет во внешние системы, работает с деньгами, рабочими базами или секретами либо выполняет произвольные команды. CLI поставит его только после вашего согласия.

Почему такой уровень

  • При включении VK_ADS_ENABLE_WRITES может создавать, менять и удалять кампании и тратить рекламный бюджет
  • Загрузка файлов в кампании обращается к внешним адресам, хотя и с защитой от SSRF
Все причины и проверки
Российский стек

nikolaymokh-dev/vk-ads-mcp

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add mcp/nikolaymokh-dev-vk-ads-mcp

Определит агенты на машине, проверит риск и зафиксирует версию.

Другие способы установки

Собрано автоматически, проверьте перед установкой.

У записи высокий риск, поэтому установки в один клик нет. Посмотрите код и добавьте конфиг вручную.

Выполните в терминале

claude mcp add --transport stdio --env 'VK_ADS_CLIENT_ID=<ваш VK_ADS_CLIENT_ID>' --env 'VK_ADS_CLIENT_SECRET=<ваш VK_ADS_CLIENT_SECRET>' vk-ads -- uvx --from git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0 vk-ads-mcp

Или добавьте в файл .mcp.json, в проекте

{
  "mcpServers": {
    "vk-ads": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0",
        "vk-ads-mcp"
      ],
      "env": {
        "VK_ADS_CLIENT_ID": "<ваш VK_ADS_CLIENT_ID>",
        "VK_ADS_CLIENT_SECRET": "<ваш VK_ADS_CLIENT_SECRET>"
      }
    }
  }
}

Если файл уже есть, добавьте сервер внутрь ключа mcpServers.

Ключи и настройки

VK_ADS_CLIENT_IDсекрет, обязательная
Client ID for VK Ads API
VK_ADS_CLIENT_SECRETсекрет, обязательная
Client secret for VK Ads API
VK_ADS_ACCESS_TOKENсекрет, необязательная
Access token for VK Ads API
VK_ADS_ENABLE_WRITESнеобязательная
Enable mutating operations, set to true to allow writes

Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.

Добавьте в файл ~/.cursor/mcp.json, для всех проектов

{
  "mcpServers": {
    "vk-ads": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0",
        "vk-ads-mcp"
      ],
      "env": {
        "VK_ADS_CLIENT_ID": "<ваш VK_ADS_CLIENT_ID>",
        "VK_ADS_CLIENT_SECRET": "<ваш VK_ADS_CLIENT_SECRET>"
      }
    }
  }
}

Если файл уже есть, добавьте сервер внутрь ключа mcpServers. Для одного проекта тот же блок кладут в .cursor/mcp.json.

Ключи и настройки

VK_ADS_CLIENT_IDсекрет, обязательная
Client ID for VK Ads API
VK_ADS_CLIENT_SECRETсекрет, обязательная
Client secret for VK Ads API
VK_ADS_ACCESS_TOKENсекрет, необязательная
Access token for VK Ads API
VK_ADS_ENABLE_WRITESнеобязательная
Enable mutating operations, set to true to allow writes

Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.

Выполните в терминале

code --add-mcp '{"name":"vk-ads","type":"stdio","command":"uvx","args":["--from","git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0","vk-ads-mcp"],"env":{"VK_ADS_CLIENT_ID":"<ваш VK_ADS_CLIENT_ID>","VK_ADS_CLIENT_SECRET":"<ваш VK_ADS_CLIENT_SECRET>"}}'

Или добавьте в файл .vscode/mcp.json, в проекте

{
  "servers": {
    "vk-ads": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0",
        "vk-ads-mcp"
      ],
      "env": {
        "VK_ADS_CLIENT_ID": "<ваш VK_ADS_CLIENT_ID>",
        "VK_ADS_CLIENT_SECRET": "<ваш VK_ADS_CLIENT_SECRET>"
      }
    }
  }
}

Если файл уже есть, добавьте сервер внутрь ключа servers.

Ключи и настройки

VK_ADS_CLIENT_IDсекрет, обязательная
Client ID for VK Ads API
VK_ADS_CLIENT_SECRETсекрет, обязательная
Client secret for VK Ads API
VK_ADS_ACCESS_TOKENсекрет, необязательная
Access token for VK Ads API
VK_ADS_ENABLE_WRITESнеобязательная
Enable mutating operations, set to true to allow writes

Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.

Выполните в терминале

codex mcp add vk-ads --env 'VK_ADS_CLIENT_ID=<ваш VK_ADS_CLIENT_ID>' --env 'VK_ADS_CLIENT_SECRET=<ваш VK_ADS_CLIENT_SECRET>' -- uvx --from git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0 vk-ads-mcp

Или добавьте в файл ~/.codex/config.toml, для всех проектов

[mcp_servers.vk-ads]
command = "uvx"
args = ["--from", "git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0", "vk-ads-mcp"]
env = { VK_ADS_CLIENT_ID = "<ваш VK_ADS_CLIENT_ID>", VK_ADS_CLIENT_SECRET = "<ваш VK_ADS_CLIENT_SECRET>" }

Если файл уже есть, допишите блок в конец.

Ключи и настройки

VK_ADS_CLIENT_IDсекрет, обязательная
Client ID for VK Ads API
VK_ADS_CLIENT_SECRETсекрет, обязательная
Client secret for VK Ads API
VK_ADS_ACCESS_TOKENсекрет, необязательная
Access token for VK Ads API
VK_ADS_ENABLE_WRITESнеобязательная
Enable mutating operations, set to true to allow writes

Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.

Добавьте в файл ~/.gemini/settings.json, для всех проектов

{
  "mcpServers": {
    "vk-ads": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0",
        "vk-ads-mcp"
      ],
      "env": {
        "VK_ADS_CLIENT_ID": "<ваш VK_ADS_CLIENT_ID>",
        "VK_ADS_CLIENT_SECRET": "<ваш VK_ADS_CLIENT_SECRET>"
      }
    }
  }
}

Если файл уже есть, добавьте сервер внутрь ключа mcpServers.

Ключи и настройки

VK_ADS_CLIENT_IDсекрет, обязательная
Client ID for VK Ads API
VK_ADS_CLIENT_SECRETсекрет, обязательная
Client secret for VK Ads API
VK_ADS_ACCESS_TOKENсекрет, необязательная
Access token for VK Ads API
VK_ADS_ENABLE_WRITESнеобязательная
Enable mutating operations, set to true to allow writes

Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.

Добавьте в файл ~/.config/devin/mcp_config.json, для всех проектов

{
  "mcpServers": {
    "vk-ads": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0",
        "vk-ads-mcp"
      ],
      "env": {
        "VK_ADS_CLIENT_ID": "<ваш VK_ADS_CLIENT_ID>",
        "VK_ADS_CLIENT_SECRET": "<ваш VK_ADS_CLIENT_SECRET>"
      }
    }
  }
}

Если файл уже есть, добавьте сервер внутрь ключа mcpServers. В легаси Cascade конфиг MCP лежит в ~/.codeium/windsurf/mcp_config.json.

Ключи и настройки

VK_ADS_CLIENT_IDсекрет, обязательная
Client ID for VK Ads API
VK_ADS_CLIENT_SECRETсекрет, обязательная
Client secret for VK Ads API
VK_ADS_ACCESS_TOKENсекрет, необязательная
Access token for VK Ads API
VK_ADS_ENABLE_WRITESнеобязательная
Enable mutating operations, set to true to allow writes

Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.

Бывший Windsurf.

Добавьте в файл cline_mcp_settings.json, для всех проектов

{
  "mcpServers": {
    "vk-ads": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0",
        "vk-ads-mcp"
      ],
      "env": {
        "VK_ADS_CLIENT_ID": "<ваш VK_ADS_CLIENT_ID>",
        "VK_ADS_CLIENT_SECRET": "<ваш VK_ADS_CLIENT_SECRET>"
      }
    }
  }
}

Если файл уже есть, добавьте сервер внутрь ключа mcpServers. Файл настроек открывается в Cline: вкладка MCP Servers, кнопка Configure MCP Servers.

Ключи и настройки

VK_ADS_CLIENT_IDсекрет, обязательная
Client ID for VK Ads API
VK_ADS_CLIENT_SECRETсекрет, обязательная
Client secret for VK Ads API
VK_ADS_ACCESS_TOKENсекрет, необязательная
Access token for VK Ads API
VK_ADS_ENABLE_WRITESнеобязательная
Enable mutating operations, set to true to allow writes

Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.

Добавьте в файл .roo/mcp.json, в проекте

{
  "mcpServers": {
    "vk-ads": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0",
        "vk-ads-mcp"
      ],
      "env": {
        "VK_ADS_CLIENT_ID": "<ваш VK_ADS_CLIENT_ID>",
        "VK_ADS_CLIENT_SECRET": "<ваш VK_ADS_CLIENT_SECRET>"
      }
    }
  }
}

Если файл уже есть, добавьте сервер внутрь ключа mcpServers.

Ключи и настройки

VK_ADS_CLIENT_IDсекрет, обязательная
Client ID for VK Ads API
VK_ADS_CLIENT_SECRETсекрет, обязательная
Client secret for VK Ads API
VK_ADS_ACCESS_TOKENсекрет, необязательная
Access token for VK Ads API
VK_ADS_ENABLE_WRITESнеобязательная
Enable mutating operations, set to true to allow writes

Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.

Форк Roo Code, папки .roo те же.

Добавьте в файл opencode.json, в проекте

{
  "mcp": {
    "vk-ads": {
      "type": "local",
      "command": [
        "uvx",
        "--from",
        "git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0",
        "vk-ads-mcp"
      ],
      "environment": {
        "VK_ADS_CLIENT_ID": "<ваш VK_ADS_CLIENT_ID>",
        "VK_ADS_CLIENT_SECRET": "<ваш VK_ADS_CLIENT_SECRET>"
      }
    }
  }
}

Если файл уже есть, добавьте сервер внутрь ключа mcp.

Ключи и настройки

VK_ADS_CLIENT_IDсекрет, обязательная
Client ID for VK Ads API
VK_ADS_CLIENT_SECRETсекрет, обязательная
Client secret for VK Ads API
VK_ADS_ACCESS_TOKENсекрет, необязательная
Access token for VK Ads API
VK_ADS_ENABLE_WRITESнеобязательная
Enable mutating operations, set to true to allow writes

Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.

Добавьте в файл ~/.config/zed/settings.json, для всех проектов

{
  "context_servers": {
    "vk-ads": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0",
        "vk-ads-mcp"
      ],
      "env": {
        "VK_ADS_CLIENT_ID": "<ваш VK_ADS_CLIENT_ID>",
        "VK_ADS_CLIENT_SECRET": "<ваш VK_ADS_CLIENT_SECRET>"
      }
    }
  }
}

Если файл уже есть, добавьте сервер внутрь ключа context_servers.

Ключи и настройки

VK_ADS_CLIENT_IDсекрет, обязательная
Client ID for VK Ads API
VK_ADS_CLIENT_SECRETсекрет, обязательная
Client secret for VK Ads API
VK_ADS_ACCESS_TOKENсекрет, необязательная
Access token for VK Ads API
VK_ADS_ENABLE_WRITESнеобязательная
Enable mutating operations, set to true to allow writes

Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.

Добавьте в файл .codeassistant/mcp.json, в проекте

{
  "mcpServers": {
    "vk-ads": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0",
        "vk-ads-mcp"
      ],
      "env": {
        "VK_ADS_CLIENT_ID": "<ваш VK_ADS_CLIENT_ID>",
        "VK_ADS_CLIENT_SECRET": "<ваш VK_ADS_CLIENT_SECRET>"
      }
    }
  }
}

Если файл уже есть, добавьте сервер внутрь ключа mcpServers.

Ключи и настройки

VK_ADS_CLIENT_IDсекрет, обязательная
Client ID for VK Ads API
VK_ADS_CLIENT_SECRETсекрет, обязательная
Client secret for VK Ads API
VK_ADS_ACCESS_TOKENсекрет, необязательная
Access token for VK Ads API
VK_ADS_ENABLE_WRITESнеобязательная
Enable mutating operations, set to true to allow writes

Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.

Понадобится: uv

Сверено с репозиторием 25 сент. 2026, коммит 0e3d838.

Текст для агента

Добавь сервер командой claude mcp add vk-ads --env VK_ADS_CLIENT_ID=<id> --env VK_ADS_CLIENT_SECRET=<secret> -- uvx --from git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0 vk-ads-mcp, для записи дополнительно задай VK_ADS_ENABLE_WRITES=true.

Другие способы из описания автора
claude mcp add vk-ads --env VK_ADS_CLIENT_ID=<id> --env VK_ADS_CLIENT_SECRET=<secret> -- uvx --from git+https://github.com/nikolaymokh-dev/vk-ads-mcp@v0.1.0 vk-ads-mcp

Команда установки из README, только чтение по умолчанию.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Сервер управляет рекламными кампаниями VK Рекламы (myTarget API v2): 24 инструмента для чтения планов, кампаний, групп объявлений, баннеров, статистики, ремаркетинга и справочников доступны всегда, а 31 мутирующий инструмент для создания, изменения и удаления объектов, загрузки файлов и трат бюджета скрыт из списка инструментов, пока явно не задана переменная VK_ADS_ENABLE_WRITES=true. Это форк lexamarketolog/vk-ads-mcp, который добавляет поверх исходных инструментов слой защиты: блокировку загрузки файлов с непубличных адресов и по локальным путям с защитой от path-traversal, блокировку адреса API на ads.vk.com и защиту пользовательских значений, попадающих в URL. Установка через uvx с закрепленным тегом версии и uv.lock.

Для кого. Для маркетологов и агентств, которые хотят дать агенту доступ к VK Рекламе, но с гарантией, что он не потратит бюджет без явного включения записи.

Подходит, если

  • Нужен доступ к статистике и структуре кампаний VK Рекламы только на чтение по умолчанию
  • Нужна защита от SSRF и path-traversal при загрузке изображений и видео в кампании
  • Важна воспроизводимая установка по закрепленному тегу версии, а не по ветке main

Не подходит, если

  • Нужен сразу полный доступ на запись без отдельного шага включения: понадобится VK_ADS_ENABLE_WRITES=true
  • Нужна не VK Реклама, а обычный VK.com: у сервера нет инструментов для постов или сообщества

Пример запроса к агенту

Покажи статистику моих кампаний VK Рекламы за неделю, ничего не меняя в кабинете

Ограничения

Проект молодой, версия 0.1.1 и статус alpha по классификаторам PyPI. Термины API используют устаревшие названия myTarget, которые не совпадают с интерфейсом нового кабинета ads.vk.com, README дает таблицу соответствий. У каждого партнера должны быть свои API-ключи VK Рекламы. Форк добавляет защиту, но не меняет поведение самих инструментов lexamarketolog/vk-ads-mcp.

Как отключить. Удалите сервер из конфигурации MCP клиента, например claude mcp remove vk-ads.

MCP

Транспорт
stdio
Авторизация
API-ключ
Переменные окружения
Переменные окружения
VK_ADS_CLIENT_ID
обязательная
Client ID приложения VK Рекламы.
VK_ADS_CLIENT_SECRET
обязательная, секрет
Client secret приложения VK Рекламы.
VK_ADS_ENABLE_WRITES
Включает 31 мутирующий инструмент, по умолчанию выключено.

Проверка безопасности

  • При включении VK_ADS_ENABLE_WRITES может создавать, менять и удалять кампании и тратить рекламный бюджет
  • Загрузка файлов в кампании обращается к внешним адресам, хотя и с защитой от SSRF

Коротко о README

README на русском объясняет, что это hardened-форк оригинального сервера для VK Рекламы, дает таблицу соответствий устаревшей терминологии myTarget новому кабинету, инструкции установки для Claude Code и других MCP-клиентов через uvx с закрепленным тегом, отдельный шаг включения мутирующих инструментов через VK_ADS_ENABLE_WRITES и список добавленных фортом мер безопасности со ссылками на docs/SETUP.md и docs/SECURITY.md.

Частые вопросы

Может ли агент сразу менять кампании?

Нет, 31 мутирующий инструмент скрыт из списка, пока не задана переменная VK_ADS_ENABLE_WRITES=true.

Чем этот сервер отличается от оригинала lexamarketolog/vk-ads-mcp?

README перечисляет добавленное: read-only по умолчанию, защиту загрузки файлов от SSRF, блокировку адреса API и защиту от path-traversal, не меняя сами инструменты.

Выбор редакции

Скилл, который убирает из текста приметы ИИ-письма по списку Википедии и не добавляет выдуманных фактов

СкиллНизкий рискБез VPN52,7 тыс.Звезды репозитория
Выбор редакции

Около пятидесяти скиллов по CRO, копирайтингу, SEO, аналитике, рекламе и запуску продукта для кодовых агентов

СкиллНизкий риск51,8 тыс.Звезды репозитория
Официальный

Официальный удаленный MCP-сервер SendPulse: статистика, рассылки и данные пользователей через чат с агентом

MCP-серверВысокий рискРоссийский стек1Звезды репозитория
Выбор редакции

MCP-сервер и CLI на всех 113 методах API v5 Яндекс Директа, собранных из WSDL: по умолчанию только 9 читающих, запись включается явно

MCP-серверВысокий рискРоссийский стекБез VPN1Звезды репозитория
Foxx AIЗащищенный MCP для VK Рекламы

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.