vk-ads-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VK_ADS_TOKEN | No | Bearer token for authentication (alternative to client_id/client_secret). | |
| VK_ADS_CLIENT_ID | No | Your VK Ads client ID from the API access settings. | |
| VK_ADS_TOKEN_CACHE | No | Path to cache file for token (default: ~/.cache/vk-ads-mcp/token.json). | |
| VK_ADS_CLIENT_SECRET | No | Your VK Ads client secret from the API access settings. |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_ad_groupsA | List ad groups (VK Ads Ad groups live inside campaigns ( By default the API returns a MINIMAL field set. Pass |
| list_bannersA | List banners (creatives) in the own VK Ads cabinet. Fetches every banner from By default the API returns a MINIMAL field set. Pass |
| list_campaignsA | List ad campaigns (VK Ads Fetches every campaign from By default the API returns a MINIMAL field set. To get rich data pass
|
| describe_fieldsA | Discover which Call this before the list tools to learn which fields you can request, then
pass the ones you need as the How it works: the tool sends a request carrying one deliberately-invalid field. The API rejects it with HTTP 400 and a body listing every allowed field, which this tool parses and returns. |
| export_to_csvA | Export VK Ads statistics to a CSV file on disk. Fetches statistics for the given object type and date range via the shared
client (which transparently splits ranges longer than 92 days and id lists
longer than 50 into multiple requests), flattens each returned item into a
CSV row using the stdlib :mod: The CSV header is the union of every key seen across all items, in first-seen order. Missing values for a given row are written as empty cells. All values are stringified. |
| get_top_objectsA | Rank VK Ads objects by a performance metric and return the top N. Fetches statistics via the shared client, reads the chosen |
| get_statisticsA | Fetch performance statistics for VK Ads objects. Retrieves statistics from |
| get_rate_limitsA | Report remaining VK Ads API quota for diagnostics. Combines two sources of throttling information:
Use this to check how much API budget is left before issuing further listing or statistics requests, or to debug HTTP 429 rate-limit errors. Returns: A dict with two keys: |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| campaign_analysis | Пошаговый сценарий анализа рекламных кампаний VK Ads: словарь метрик, богатые поля кампаний, статистика, топы объектов, выводы и рекомендации. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| vk-ads-metrics | Catalog of VK Ads / myTarget statistics metric groups, fields and units. |
| vk-ads-objects | Object hierarchy ad_plans -> ad_groups -> banners and key analysis fields. |
TDQS
Scored across 8 tools
Every tool targets a distinct resource or operation (field discovery, listing campaigns/ad groups/banners, statistics, export, rate limits). No two tools overlap in functionality, so an agent can easily distinguish them.
All tools follow a consistent verb_noun pattern in snake_case (e.g., describe_fields, get_statistics, list_campaigns). The naming is predictable and clear.
With 8 tools, the set is well-scoped for a read-only analytics-oriented VK Ads server. It covers listing, statistics, export, and diagnostics without being too sparse or overly bloated.
The tools cover listing, statistics, and export well, but lack any write operations (create, update, delete) for campaigns, ad groups, or banners. For a full ad management server, this is a notable gap, though the set is coherent for read-only analytics.