That pairing is the design worth noting: the common objects get proper schemas an assistant can fill in correctly, and the long tail of API v5 stays reachable without waiting for someone to wrap it — with writes through that path gated behind an explicit confirmation flag. Sandbox mode and the quota tool are the two things to reach for first, since the same token that reads a report can also change what you are spending.
A full-coverage Yandex Direct server. Typed tools handle the objects you touch daily — campaigns, ad groups, text ads, keywords, bid modifiers, extensions — and `raw_request` reaches any other service or method, so nothing in API v5 is out of reach. Sign-in happens in the conversation over OAuth with PKCE.
- Campaigns: `list_campaigns`, `create_text_campaign`, `update_campaign` including negative keywords, and `campaign_action` to pause, resume, archive or delete
- Ad groups, text ads and keywords each get the same four-part treatment — list, create, update, act
- `set_keyword_bids` for manual bids; `add_bid_modifier`, `set_bid_modifiers` and `delete_bid_modifiers` for adjustments by device, demographics, geography and retargeting
- Extensions: sitelink sets, callouts, vcards, and `upload_ad_image` which takes a URL or base64 and returns the `AdImageHash`
- `get_statistics` runs the Reports service; the search-query report comes back as a computed summary rather than raw rows
- `get_balance` reads the account balance, `get_quota` the remaining daily API units, `get_regions` the region IDs you need to create a group
- `raw_request` calls anything else, with writes requiring `confirmWrite=true`
- `auth_status`, `start_login`, `finish_login` and `logout` handle credentials without leaving the client
Run `mcp-yandex-direct` from npm. Either sign in from the conversation — the login link is valid for 10 minutes, and the token is written to `~/.config/mcp-yandex-direct/credentials.json` with 0600 permissions — or set `YANDEX_DIRECT_TOKEN` yourself. That token has full account access and can spend budget, so treat it as a secret; `YANDEX_DIRECT_SANDBOX` points the same setup at the sandbox API instead. Agency tokens target one account with `YANDEX_DIRECT_LOGIN`, and `YANDEX_DIRECT_LANG` switches the language of responses. Version 1.5.1.
One command — npx -y mcp-yandex-direct@latest
