Bids, budgets and spend come back in the account's currency rather than raw micro-units, which is what makes an assistant's arithmetic on them trustworthy. Reads are the safe half; creates and status actions apply immediately, because VK Ads offers no sandbox to rehearse in.
An MCP server for the VK Ads API. It maps the account hierarchy — ad plan, ad group, banner — onto tools, so an assistant can compare spend across groups, change a bid, or build a new campaign in one conversation instead of walking the dashboard.
- get_user_info, get_balance and get_throttling — confirm which advertiser account the token points at, read available funds and currency, and check remaining request budget
- list_ad_plans, create_ad_plan, update_ad_plan and ad_plan_action — campaigns with their budgets, bid caps and dates; the action tool activates, stops or deletes them
- list_ad_groups, create_ad_group, update_ad_group and ad_group_action — the same lifecycle for ad groups, with geo, demographic and interest targeting passed in targetings
- list_banners, create_banner, update_banner and banner_action — creatives with their text blocks and links; moderation_status and delivery show why an ad is not running
- get_statistics — performance from the VK Ads v3 statistics service for plans, groups or banners, aggregated per object by default
- get_regions — geo region ids needed for ad group targeting
- raw_request — call any VK Ads endpoint that has no dedicated tool
A VK Ads OAuth2 access token in VK_ADS_TOKEN, which carries full account access. Clients run it with npx mcp-vk-ads over stdio and need Node.js 20 or newer. VK_ADS_LANG sets the response language (default ru); VK_ADS_API_BASE, VK_ADS_TIMEOUT_MS and VK_ADS_MAX_RETRIES override the endpoint, per-request timeout and retry count. VK Ads has no sandbox, so creates, updates and status changes land in the live account.
One command plus a key — npx -y mcp-vk-ads@latest, then supply credentials
