VK Ads MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VK_ADS_LANG | No | Accept-Language header value. | ru |
| VK_ADS_TOKEN | Yes | OAuth2 access token for VK Ads API (Bearer). Required. | |
| VK_ADS_API_BASE | No | Root URL of the API (without version). | https://ads.vk.com/api |
| VK_ADS_TIMEOUT_MS | No | Request timeout in milliseconds. | 60000 |
| VK_ADS_MAX_RETRIES | No | Maximum number of retries on temporary errors (429, 5xx). | 3 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| auth_statusA | Показывает, подключена ли VK Реклама: есть ли токен, откуда он взят (переменная окружения VK_ADS_TOKEN или сохранённый вход), когда истекает, какой client_id и аккаунт за ним стоят и где лежит файл с сохранёнными данными. Ничего не отправляет в сеть, не показывает ни токен, ни client_secret. Вызовите это, если инструменты VK Рекламы отвечают, что подключение не настроено. |
| start_loginA | Первый шаг подключения VK Рекламы без правки конфигурации и без перезапуска клиента. Ничего не отправляет в сеть — возвращает инструкцию, которую нужно показать пользователю целиком: где в кабинете создать приложение и откуда скопировать client_id и client_secret. Полученную пару передайте в finish_login. Предупредите, что client_secret — это пароль от рекламного кабинета: он сохранится на диске только для владельца и нужен, чтобы продлевать токен. |
| finish_loginA | Второй шаг подключения: обменивает client_id и client_secret из start_login на токен доступа (grant client_credentials), сохраняет всё в файл только для владельца (0600) и сразу проверяет живым запросом к VK Рекламе. После успеха остальные инструменты работают немедленно — перезапускать клиент не нужно. Токен живёт около суток и продлевается автоматически, поэтому повторно вызывать это не требуется: каждый вызов создаёт НОВЫЙ токен, а у VK не больше 5 активных токенов на пару client_id + пользователь. Ошибка invalid_client означает, что пара скопирована не полностью или относится к разным приложениям. |
| logoutA | Удаляет сохранённые токен и данные приложения VK Рекламы с диска. Токен, заданный переменной окружения VK_ADS_TOKEN, не трогает — его нужно убирать из конфигурации клиента вручную. На стороне VK токен остаётся активным до истечения срока: отозвать его можно запросом POST v2/oauth2/token/delete.json, но он удаляет ВСЕ токены этого пользователя для данного client_id, поэтому здесь не вызывается. |
| get_user_infoA | Возвращает информацию о текущем аккаунте VK Рекламы (user.json), включая additional_info.client_name. Позволяет убедиться, на какой аккаунт рекламодателя указывает токен. |
| get_balanceA | Возвращает текущий баланс аккаунта VK Рекламы: доступные средства и валюту. Вызывает user.json с полем |
| get_throttlingA | Возвращает текущие лимиты запросов VK Рекламы и их остаток (throttling.json) — чтобы не упереться в лимит. |
| get_regionsA | Возвращает гео-регионы VK Рекламы (id, name, type), при необходимости отфильтрованные по подстроке названия. Id регионов нужны для гео-таргетинга группы объявлений. |
| list_ad_plansA | Возвращает список ad_plan (верхнеуровневый объект кампании в VK Рекламе) с необязательной фильтрацией по id и статусу. Денежные поля (budget_limit, budget_limit_day, max_price) — в валюте аккаунта. |
| create_ad_planA | Создаёт кампанию (ad_plan). Денежные поля — в валюте аккаунта. Сложные и редкие поля передаются через |
| update_ad_planA | Меняет у кампании название, бюджеты, предельную ставку или даты. Денежные поля — в валюте аккаунта. Для смены статуса — ad_plan_action. |
| ad_plan_actionA | Меняет статус кампаний по id: activate (status=active), stop (status=blocked) или delete (status=deleted). |
| list_ad_groupsA | Возвращает список групп объявлений с необязательной фильтрацией по id, родительской кампании и статусу. Денежные поля — в валюте аккаунта; в |
| create_ad_groupA | Создаёт группу объявлений внутри кампании. Таргетинг задаётся в |
| update_ad_groupA | Меняет у группы объявлений название, бюджеты, предельную ставку, даты или таргетинг. Денежные поля — в валюте аккаунта. Для смены статуса — ad_group_action. |
| ad_group_actionA | Меняет статус групп объявлений по id: activate (status=active), stop (status=blocked) или delete (status=deleted). |
| list_bannersB | Возвращает список banner (объект объявления/креатива в VK Рекламе) с необязательной фильтрацией по id, родительской группе объявлений и статусу. moderation_status (pending/allowed/banned) и delivery объясняют, почему объявление показывается или не показывается. |
| create_bannerA | Создаёт объявление внутри группы объявлений. Креатив ссылается на загруженные медиа через |
| update_bannerA | Меняет у объявления название, текстовые блоки или ссылки. Для смены статуса — banner_action. Структуры отправляются как есть. |
| banner_actionA | Меняет статус объявлений по id: activate (status=active), stop (status=blocked) или delete (status=deleted). |
| get_statisticsA | Возвращает статистику по кампаниям (ad_plans), группам объявлений (ad_groups) или объявлениям (banners) из сервиса статистики VK Рекламы v3. По умолчанию группировка |
| raw_requestA | Универсальный запрос напрямую к любому эндпоинту API VK Рекламы (например, path "v2/ad_plans.json", method GET). Нужен для эндпоинтов, у которых нет отдельного инструмента. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Tools are largely distinct by resource (auth, throttling, regions, ad plans, groups, banners, statistics, raw). The action tools (create/update/delete) for each resource are clearly separated. Slight ambiguity between raw_request and the specific tools, but raw_request is explicitly a fallback, making the boundary clear.
Most tools follow a consistent verb_noun pattern (get_, list_, create_, update_, action). However, there are deviations: 'auth_status', 'start_login', 'finish_login', 'logout' use a different style, and 'get_throttling' and 'get_regions' are fine but 'ad_plan_action' could be more consistent as 'update_ad_plan_status'. Minor inconsistencies, but overall predictable.
With 22 tools, the server is on the heavier side but still reasonable for a full ad management platform. Each tool maps to a distinct entity or workflow, covering auth, config, and core CRUD plus statistics and a raw fallback. Slightly beyond the ideal 15, but not excessive for the scope.
The server covers the full lifecycle for ad plans, ad groups, and banners (list, create, update, status action, delete via action). It also includes statistics and a raw request for edge cases. Minor gaps like missing budget adjustment standalone or reporting endpoints are covered by raw_request, making the surface reasonably complete.