# VK Ads MCP

Connects an AI client to VK Ads for campaign analysis, reporting, and live changes to budgets or ad statuses.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 11
- Author: askads
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/askads/mcp-vk-ads
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/mcp/vk-ads-mcp

## What it does

VK Ads MCP gives an AI client access to the VK Ads advertising account. It can inspect campaigns, ad groups, banners, spending, clicks, balances, API limits, regions, and moderation states. The object tree uses `ad_plan` for campaigns, `ad_group` for groups, and `banner` for ads.

Read operations cover lists, reports, balances, limits, and regions. Creating or editing campaigns, groups, and ads applies changes to the live account, as do status actions. VK Ads has no sandbox, so a budget or status request should be checked against the intended object before execution.

The server needs Node.js 20 or newer and `VK_ADS_TOKEN`; optional settings use `VK_ADS_LANG`, `VK_ADS_TIMEOUT_MS`, `VK_ADS_MAX_RETRIES`, and `VK_ADS_API_BASE`. It runs through `npx -y mcp-vk-ads`.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `VK_ADS_TOKEN`, `VK_ADS_LANG`, `VK_ADS_TIMEOUT_MS`, `VK_ADS_MAX_RETRIES`, `VK_ADS_API_BASE` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env VK_ADS_TOKEN=<VK_ADS_TOKEN> --env VK_ADS_LANG=<VK_ADS_LANG> --env VK_ADS_TIMEOUT_MS=<VK_ADS_TIMEOUT_MS> --env VK_ADS_MAX_RETRIES=<VK_ADS_MAX_RETRIES> --env VK_ADS_API_BASE=<VK_ADS_API_BASE> --transport stdio vk-ads-mcp -- npx -y mcp-vk-ads
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add vk-ads-mcp --env VK_ADS_TOKEN=<VK_ADS_TOKEN> --env VK_ADS_LANG=<VK_ADS_LANG> --env VK_ADS_TIMEOUT_MS=<VK_ADS_TIMEOUT_MS> --env VK_ADS_MAX_RETRIES=<VK_ADS_MAX_RETRIES> --env VK_ADS_API_BASE=<VK_ADS_API_BASE> -- npx -y mcp-vk-ads
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "vk-ads-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-vk-ads"
            ],
            "env": {
                "VK_ADS_TOKEN": "<VK_ADS_TOKEN>",
                "VK_ADS_LANG": "<VK_ADS_LANG>",
                "VK_ADS_TIMEOUT_MS": "<VK_ADS_TIMEOUT_MS>",
                "VK_ADS_MAX_RETRIES": "<VK_ADS_MAX_RETRIES>",
                "VK_ADS_API_BASE": "<VK_ADS_API_BASE>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "vk-ads-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "mcp-vk-ads"
            ],
            "env": {
                "VK_ADS_TOKEN": "<VK_ADS_TOKEN>",
                "VK_ADS_LANG": "<VK_ADS_LANG>",
                "VK_ADS_TIMEOUT_MS": "<VK_ADS_TIMEOUT_MS>",
                "VK_ADS_MAX_RETRIES": "<VK_ADS_MAX_RETRIES>",
                "VK_ADS_API_BASE": "<VK_ADS_API_BASE>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e VK_ADS_TOKEN=<VK_ADS_TOKEN> -e VK_ADS_LANG=<VK_ADS_LANG> -e VK_ADS_TIMEOUT_MS=<VK_ADS_TIMEOUT_MS> -e VK_ADS_MAX_RETRIES=<VK_ADS_MAX_RETRIES> -e VK_ADS_API_BASE=<VK_ADS_API_BASE> vk-ads-mcp npx -y mcp-vk-ads
```
Replace <…> with your own values

## When to use it
- inspect campaign spend by date range
- compare ad groups by clicks and cost
- locate ads blocked by delivery or moderation
- change a group’s daily budget
- pause an ad by ID

## Example prompts
- Show my VK Ads campaigns and group spend for last week.
- Compare the ad groups in this campaign by clicks, spend, and status.
- Check the selected group ID, then change its daily budget.

## Similar
- [Google Ads](https://affpapa.org/en/nevibecode/mcp/google-ads.md) — MCP server
- [LinkedIn Ads](https://affpapa.org/en/nevibecode/mcp/linkedin-ads.md) — MCP server
- [Meta Ads MCP Server](https://affpapa.org/en/nevibecode/mcp/meta-ads-mcp-server.md) — MCP server · ★ 8
- [ads-meta](https://affpapa.org/en/nevibecode/skills/ads-meta.md) — skill · 4800 installs
- [google-ads-report](https://affpapa.org/en/nevibecode/skills/google-ads-report.md) — skill · 476 installs
- [KonQuest Meta Ads MCP](https://affpapa.org/en/nevibecode/mcp/konquest-meta-ads-mcp.md) — MCP server · ★ 44

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
