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
MCP server

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
All reasons and checks
Russian stack

skynes/adsmcp

Install

Manual install

npm install && npm run build:mcp

From the downloaded repository directory, then add the server to the client configuration.

Access and checks

How we review

Broad 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.

Russian stack

An MCP server for Yandex Direct, Metrica, Audiences and Wordstat with read-only mode and change confirmation

MCP serverBroad access51Repository stars
Russian stack

A dependency-free, pure Ruby MCP server with 30 tools for Yandex Direct campaigns, ad groups, ads, keywords and reports

MCP serverBroad access6Repository stars
Russian stack

Seven independent MCP servers in one repository: Yandex Direct, Yandex Webmaster, VK, Telegram, Click.ru, Search Console and YouTube

MCP serverBroad access2Repository stars
Russian stack

An MCP server for Yandex Direct, Metrika, Wordstat and Webmaster: campaigns, ads, bids, reports and keyword research from chat

MCP serverBroad access58Repository stars
Russian stack

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

MCP serverBroad access

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
AdsMCP (this card)noOAuth1
Yandex Direct MCP with dry-run by defaultnoAPI key0works with Direct only, with no summary across other accounts
Avito Ads MCPnoAPI key1a standalone MCP for Avito Ads only
VK Ads MCP All in OnenoAPI key0a 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.

README badge

Report a problem