Защищенный MCP для VK Рекламы
vk-ads-mcp
Hardened-форк MCP для VK Рекламы: read-only по умолчанию, мутации только через VK_ADS_ENABLE_WRITES, защита от SSRF при загрузке файлов
Высокий риск
Высокий уровень ставим, когда инструмент пишет во внешние системы, работает с деньгами, рабочими базами или секретами либо выполняет произвольные команды. CLI поставит его только после вашего согласия.
Почему такой уровень
- При включении VK_ADS_ENABLE_WRITES может создавать, менять и удалять кампании и тратить рекламный бюджет
- Загрузка файлов в кампании обращается к внешним адресам, хотя и с защитой от SSRF
Установка
В терминале, через 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
Замените значения в угловых скобках своими. Ключи не попадают в ссылки установки и не хранятся у нас.
Добавь сервер командой 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, не меняя сами инструменты.
Похожие
Скилл, который убирает из текста приметы ИИ-письма по списку Википедии и не добавляет выдуманных фактов
Marketing Skills: маркетинговые скиллы для агентов
Marketing Skills for AI Agents
Около пятидесяти скиллов по CRO, копирайтингу, SEO, аналитике, рекламе и запуску продукта для кодовых агентов
MCP-сервер SendPulse
SendPulse MCP
Официальный удаленный MCP-сервер SendPulse: статистика, рассылки и данные пользователей через чат с агентом
MCP Яндекс Директа из машиночитаемой схемы
yandex-direct-mcp
MCP-сервер и CLI на всех 113 методах API v5 Яндекс Директа, собранных из WSDL: по умолчанию только 9 читающих, запись включается явно