Yandex Direct MCP with dry-run by default
Yandex Direct MCP Server
20 Yandex Direct tools where every edit shows the plan by default and needs confirm=True to actually send anything
- 0 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- With confirm=True it actually creates, pauses and archives campaigns
- Bulk-changes keyword bids with real money
Install
- Works in
- Services
Manual install
{
"mcpServers": {
"yandex-direct": {
"command": "python",
"args": ["/абсолютный/путь/src/server.py"],
"env": { "YD_TOKEN": "ваш_токен", "YDIRECT_ENV": "sandbox" }
}
}
}Local stdio run; start with YDIRECT_ENV=sandbox.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- With confirm=True it actually creates, pauses and archives campaigns
- Bulk-changes keyword bids with real money
This is third-party code. Review the repository files before installing.
What it does
The server gives 20 Direct API v5 tools split into two groups. Six read tools run with no confirmation: campaigns, groups, ads, keywords, balance and a universal report with async polling. The rest (creating and updating campaigns, pausing and resuming, archiving, and working with groups, ads, keywords and bulk bids) are guarded by dry-run: confirm=False by default, so a call only shows the request plan, and actually sending it needs explicit confirm=True. The server converts amounts out of and back into micro-units itself and polls the async Reports API until the report is ready.
Who it is for. For people who want to manage Yandex Direct through Claude but worry about accidentally spending budget on one wrong phrase.
Good fit when
- You need to find low-CTR keywords and propose bid cuts before changing anything
- You want protection against accidental money-moving actions built into the server itself, not just the client
- You need a report with automatic polling of the async Reports API
Not a fit when
- You want changes applied quickly without the dry-run-then-confirm two-step
- You need Unified Performance Campaigns, display campaigns or Direct Commander: the server only covers text campaigns
- You need an official server from Yandex itself
Example request
Show campaigns with this week's spend, find keywords with CTR below 2% and suggest which bids to lowerMCP
- Transport
- stdio
- Authentication
- API key
Environment variables
YD_TOKENrequired, secret- Yandex Direct OAuth token
YDIRECT_ENV- sandbox or production, switches the API environment
Limitations
Every edit needs two calls: first without confirm to check the plan, then with confirm=True to actually send it, which lengthens the flow. One flag, YDIRECT_ENV, switches between sandbox and production. Not an official Yandex product; stdio transport only.
How to disable. Remove the yandex-direct block from your Claude Desktop or Claude Code client config.
FAQ
Can Claude accidentally spend budget?
By design, per the README, no: every mutating tool runs dry-run until confirm=True is passed explicitly.
How does the server handle Direct's micro-units?
It converts amounts out of micro-units into regular currency and back itself, so no manual math is needed.
Discussion
No questions or reviews yet.
Related
All Yandex Direct toolsDependency-free Node MCP for Yandex Direct
yandex-direct-mcp
A single-file, dependency-free Node.js Direct API v5 MCP server with a universal direct_call tool and a read-only mode
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
Yandex Direct MCP generated from a machine-readable schema
yandex-direct-mcp
An MCP server and CLI covering all 113 Yandex Direct API v5 methods generated from WSDL, exposing 9 read tools by default and writes only on demand
Python MCP for Yandex Direct and Wordstat
Yandex.Direct MCP
A Python MCP server with 48 Yandex Direct tools and Wordstat frequency lookup, switchable between sandbox and production
Yandex Direct MCP, CLI and models with action search
mcp-server-yandex-direct
A Yandex Direct API v5 MCP server, CLI tool and Pydantic models: 79 actions through two tools instead of 79 separate ones
Yandex Direct MCP server (npm)
@theyahia/yandex-direct-mcp
A TypeScript MCP server with an npm package: 20 tools for Yandex Direct campaigns, bids and negative keywords, with money always in rubles
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Yandex Direct MCP with dry-run by default (this card) | no | API key | 0 | |
| Yandex Direct MCP server (npm) | no | API key | 4 | 20 tools, money in rubles |
| Yandex Direct MCP with launch policies | no | API key | 2 | policies |
| Bun-based Yandex Direct MCP with Unified Performance and Click.ru proxy | no | key is optional | 0 | Click.ru proxy |
README in short
The README presents the project as an engineering demonstration of a safe agentic interface to money: an architecture diagram covering the dry-run guard, micro-unit conversion and async report polling, a table of 20 tools split into read and dry-run-guarded write, and a section on switching sandbox and production via the YDIRECT_ENV flag.