AdsMCP
A local MCP server for advertising: Yandex Direct, Avito, VK through Click.ru and Telegram Ads in one SQLite store, changes only with confirmation
- 1 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- Campaign changes in Direct and Telegram Ads spend real advertising budget
- Ad account tokens sit in the local data folder, and some modules reach ad accounts and mailboxes
Install
- Works in
- Services
Manual install
npm install && npm run build:mcpFrom the downloaded repository directory, then add the server to the client configuration.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Campaign changes in Direct and Telegram Ads spend real advertising budget
- Ad account tokens sit in the local data folder, and some modules reach ad accounts and mailboxes
This is third-party code. Review the repository files before installing.
What it does
AdsMCP collects ad campaigns, spend and conversions into a local SQLite database and calculates CTR, CPC, CPA and ROAS by channel. The server starts with `node` from the built `dist` directory and keeps data in `data/`. Only the platforms you need are connected; other modules stay off. For Russian platforms the picture is this. Yandex Direct works through the ZAI.ONE `yandex-mcp` module: metric import, campaign edits, suspend and resume, plus a separate tool that creates a campaign with serving off. Deletion is disabled. Avito Ads is connected read-only through the official API and a local tool allowlist. VK Ads goes through the Click.ru broker, also read-only. Telegram Ads supports reports, ad creation, budgets, moderation submission and pausing. The first run requires accepting the free-use rules through `ads_free_use_accept` with `confirm=true`. External actions run as a dry run first and then after explicit confirmation. A local panel connects accounts, and the Direct token is written to `ADS_MCP_DATA/secrets/yandex-direct.token` and never reaches the chat.
Who it is for. PPC specialists, marketers and small-business owners who run ads in several accounts and want to analyze spend in chat while keeping the data local.
Good fit when
- Spend and conversions sit in Direct, Avito and Telegram Ads and you need one summary of CPA and ROAS
- The agent must pause an unprofitable Direct campaign after your confirmation with an idempotency key
- You need a draft Direct campaign that keeps serving off until it is reviewed
- You want to see a dry run of a change first and only then send it to the account
- Statistics cannot go to outside services, so the SQLite store must live on your machine
Not a fit when
- You want fully unattended ad automation: external actions require explicit confirmation
- You need to manage Avito or VK Ads campaigns: those platforms are connected read-only
- You need to delete campaigns or move money: deletion is disabled and payment is not open in working tools
- You lack Node.js 22.5 or newer: the server will not run on it
Example request
Combine last week's spend and conversions for Direct and Telegram Ads, calculate CPA and show which Direct campaign to pause.MCP
- Transport
- stdio
- Authentication
- OAuth
Environment variables
ADS_MCP_DATA- Directory for the local database and secrets.
ADSMCP_UPDATE_ENABLED- false turns off the daily GitHub release check.
Limitations
Node.js 22.5 or newer and an MCP client with stdio, such as Cursor or Claude Desktop, are required. The build uses `npm install` and `npm run build:mcp`. Ad accounts and access are configured separately; the server does not create them.
Direct is managed through the third-party ZAI.ONE `yandex-mcp` module, and live import needs a Yandex token. VK Ads needs a manual first link between the account and Click.ru. Platforms such as Meta, TikTok, Reddit, Spotify and X are connected read-only.
The project checks GitHub for a new release once a day and inspects local repository changes once a week. The `ADSMCP_UPDATE_ENABLED=false` and `ADSMCP_WEEKLY_PR_ENABLED=false` variables turn these checks off.
How to disable. Remove the server from the MCP client configuration. Account tokens live in `ADS_MCP_DATA/secrets/` and can be deleted with the data folder; revoke the application's access in the ad accounts themselves.
FAQ
Which ad platforms does AdsMCP support?
Yandex Direct with import and some changes, Telegram Ads with reports and ad management, and Google Ads. Avito Ads, VK Ads through Click.ru, Meta, TikTok, Reddit, Spotify and X are read-only. Microsoft Advertising is connected read-only.
What can the agent do in Yandex Direct?
Import metrics, edit, suspend and resume campaigns, and archive or unarchive them. A separate tool creates a campaign with serving off. Deletion is disabled and every change requires `confirm=true` and an idempotency key.
Where is campaign data stored?
In a local SQLite database, by default in the repository's `data/` directory. The `ADS_MCP_DATA` variable sets the path. The Direct token sits in a separate file at `ADS_MCP_DATA/secrets/yandex-direct.token`.
How do I connect the server to Cursor or Claude Desktop?
Build the project and add a server to the configuration with the `node` command and the path to `dist/index.js` in your clone. The client starts it itself. After a restart ask the agent to check readiness.
Is AdsMCP paid?
Free use is declared under the MIT license. Before operational tools you must accept the free-use rules through `ads_free_use_accept`, and the acceptance is stored locally only.
Discussion
No questions or reviews yet.
Related
All Yandex Direct toolsAn MCP server for Yandex Direct, Metrica, Audiences and Wordstat with read-only mode and change confirmation
Yandex Direct MCP server in Ruby
yandex-direct-mcp
A dependency-free, pure Ruby MCP server with 30 tools for Yandex Direct campaigns, ad groups, ads, keywords and reports
MCP server bundle for Russian-market ads and SEO
MCP Servers (SergeyKrin9)
Seven independent MCP servers in one repository: Yandex Direct, Yandex Webmaster, VK, Telegram, Click.ru, Search Console and YouTube
An MCP server for Yandex Direct, Metrika, Wordstat and Webmaster: campaigns, ads, bids, reports and keyword research from chat
Yandex Direct, Metrica and Wordstat MCP: fork with responsive ads
Yandex Direct MCP Server
A 120-tool fork of Yandex Ads MCP that adds responsive ad creation and IAM tokens from a service account key
DirectAI MCP: a local server for Yandex Direct
DirectAI MCP
A local Windows MCP server that works with Yandex Direct through the official API: 57 read actions and 25 write actions with a mandatory preview
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| AdsMCP (this card) | no | OAuth | 1 | |
| Yandex Direct MCP with dry-run by default | no | API key | 0 | works with Direct only, with no summary across other accounts |
| Avito Ads MCP | no | API key | 1 | a standalone MCP for Avito Ads only |
| VK Ads MCP All in One | no | API key | 0 | a full MCP for VK Ads only |
README in short
The README is in English, with a Russian version in `README.ru.md`. It has an integrations table with readiness, a capability matrix for reading, writing and creating campaigns, a quick start, GitHub updates and links to the docs under `docs/`. License MIT, version 1.1.1.