Shturman: Direct MCP with a hard red line
Shturman Direct MCP
12 dependency-free Yandex Direct tools: a plan-then-confirm write flow, with campaign resume and delete simply not implemented
High risk
We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.
Why this level
- direct_apply actually changes a live account with real money
- Creates Audience geo-segments and Metrica goals that affect future campaigns
Install
Manual install
git clone https://github.com/seer22/shturman-direct-mcp.gitZero dependencies: only the Python 3.11+ standard library, no npm install or pip install.
This is third-party code. Review the repository files before installing.
What it does
Built on the plain Python standard library, the server offers just 12 tools instead of the 111 to 155 typical for this niche: a status check, reads with the API-unit cost checked before the call, planning a change that returns only an identifier, applying a plan by that identifier with a mandatory confirmation phrase, reports, a local 14-point audit mirroring Direct's own official checklist, attaching media to an ad, Wordstat via the Yandex Cloud API, reading Metrica and creating missing goals, and reading and creating Audience geo-segments. Eleven methods (resuming, unarchiving and deleting campaigns, groups, ads and keywords) are not implemented at all, not behind a flag but absent entirely. Every write runs in two phases: direct_plan describes the change and sends nothing, direct_apply executes the plan strictly by identifier with an exact confirmation phrase and a mandatory read-back afterward.
Who it is for. For people who want to manage Yandex Direct statistics, reports and careful edits through an agent, but are not ready to trust it with starting serving or deleting campaigns.
Good fit when
- You need a local account audit against Direct's own official checklist, with a source cited for each check
- You need to create an Audience geo-segment from circles or pull Wordstat data before planning a campaign
- You want protection against irreversible actions built into the server itself, not only into the client
Not a fit when
- You need to resume paused campaigns, ads or keywords via MCP: that method does not exist here and will not be added
- You need to delete or unarchive objects through the agent: also deliberately absent
- You need broad API v5 coverage in one server: this ships 12 tools, not a hundred-plus
Example request
Run the official audit checklist against my account and show which checks it deliberately skipsLimitations
Yandex Direct has had no sandbox since July 2026; every write hits the live account with real money. Eleven red-line methods (resume, unarchive and delete for campaigns, groups, ads and keywords) are deliberately unimplemented and cannot be turned on through configuration. A plan lives one hour; a stale one is refused and a new one must be made.
How to disable. Remove the yandex-direct block from your MCP client config and stop the server process.
MCP
- Transport
- stdio
- Authentication
- API key
| Environment variables | |
|---|---|
| YANDEX_DIRECT_TOKEN required, secret | Yandex Direct OAuth token |
Security check
- direct_apply actually changes a live account with real money
- Creates Audience geo-segments and Metrica goals that affect future campaigns
README in short
The README explains why yet another Direct server exists: 36 documented cases where the API answers success but does something else, a pre-known API-unit cost of an error, and a deliberate refusal to implement resume, unarchive and delete as a hard red line, citing that Google's own Ads MCP ships no writes at all and Meta creates campaigns paused only. It gives a table of 12 tools and 14 knowledge resources, a section on the two-phase write with a one-hour plan lifetime, and a section on exactly what gets written to disk as debug cassettes.
FAQ
Can the server resume a paused campaign?
No, resume, unarchive and delete for campaigns, groups, ads and keywords are deliberately unimplemented; that is the red line, not a setting.
What stops the model from applying a plan by accident?
direct_apply only accepts a plan id and requires the exact confirmation phrase verbatim, and a mandatory read-back checks the real outcome afterward, since a green API response proves nothing here.
Related
A skill that strips AI writing tells from text using Wikipedia's list, without adding invented facts
Marketing Skills for AI agents
Marketing Skills for AI Agents
About fifty skills for CRO, copywriting, SEO, analytics, ads and launches, built for coding agents
SendPulse MCP server
SendPulse MCP
SendPulse's official remote MCP server: statistics, campaigns and user data through an agent chat
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