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 |
|---|---|
| get_user_infoA | Returns information about the current VK Ads account (user.json), including additional_info.client_name. Use it to confirm which advertiser account the token points at. |
| get_balanceA | Returns the current VK Ads account balance: available funds and currency. Calls user.json with the |
| get_throttlingA | Returns the current VK Ads request limits and remaining budget (throttling.json), so you can avoid hitting the rate limit. |
| get_regionsA | Lists VK Ads geo regions (id, name, type), optionally filtered by a name substring. Region ids are needed for ad group geo targeting. |
| list_ad_plansA | Lists ad plans (the top-level VK Ads campaign object) with optional filtering by id and status. Money fields (budget_limit, budget_limit_day, max_price) are in the account currency. |
| create_ad_planA | Creates an ad plan (campaign). Money fields are in account currency. Pass complex or less common fields via |
| update_ad_planA | Updates an ad plan's name, budgets, bid cap or dates. Money fields are in account currency. Use ad_plan_action to change status. |
| ad_plan_actionA | Changes the lifecycle status of ad plans by id: activate (status=active), stop (status=blocked) or delete (status=deleted). |
| list_ad_groupsA | Lists ad groups with optional filtering by id, parent ad plan and status. Money fields are in the account currency; |
| create_ad_groupA | Creates an ad group inside an ad plan. Targeting goes in |
| update_ad_groupA | Updates an ad group's name, budgets, bid cap, dates or targeting. Money fields are in account currency. Use ad_group_action to change status. |
| ad_group_actionA | Changes the lifecycle status of ad groups by id: activate (status=active), stop (status=blocked) or delete (status=deleted). |
| list_bannersA | Lists banners (the VK Ads creative/ad object) with optional filtering by id, parent ad group and status. moderation_status (pending/allowed/banned) and delivery show why an ad is or isn't showing. |
| create_bannerA | Creates a banner inside an ad group. Creative content references uploaded media via |
| update_bannerA | Updates a banner's name, text blocks or links. Use banner_action to change status. Structures are sent verbatim. |
| banner_actionA | Changes the lifecycle status of banners by id: activate (status=active), stop (status=blocked) or delete (status=deleted). |
| get_statisticsA | Fetches performance statistics from the VK Ads v3 statistics service for ad plans, ad groups or banners. By default the grouping is |
| raw_requestA | Escape hatch to call any VK Ads API endpoint directly (e.g. path "v2/ad_plans.json", method GET). Use this for endpoints that have no dedicated tool. |
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 18 tools
Each tool is clearly scoped to one resource (ad plan, ad group, banner) and one operation (create/list/update/action), so an agent can reliably select between them. The get_* utilities are also distinct in purpose: statistics, account info, balance, throttling, and regions.
Most tools follow a predictable snake_case verb_noun pattern: create_*, list_*, update_*, and *_action are consistent. Minor deviations exist with raw_request and the get_/list_ mix for collection-style resources like get_regions.
At 18 tools, the set is slightly above the ideal 3-15 range, but the count is justified by the need to cover three campaign resources with create/list/update/action plus several account utilities. No tool feels redundant.
The core campaign lifecycle is well covered: create/list/update/action for ad plans, ad groups, and banners, plus statistics, regions, balance, and account info. Minor gaps exist around media upload and dedicated single-object getters, though raw_request mitigates most missing endpoints.