Yandex Direct MCP: 59 tools

yandex-direct-mcp-plus

A Yandex Direct API v5 MCP server with 59 tools, dry-run on every write, and an honest table of what spends budget and what is irreversible

MCP server

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

  • The resume, moderate_ads and update_campaign tools start real serving and spend budget
  • 12 tools are marked DESTRUCTIVE and delete objects with no way to restore them
All reasons and checks
Russian stack

pavelsiba/yandex-direct-mcp-plus

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/yandex-direct-mcp-plus

Detects the agents on your machine, checks the risk and pins the version.

Other ways to install

This entry is high risk, so there is no one-click install. Review the code and add the config by hand.

Run in a terminal

claude mcp add --transport stdio --env 'YANDEX_DIRECT_TOKEN=<your YANDEX_DIRECT_TOKEN>' yandex-direct-mcp-plus -- npx -y yandex-direct-mcp-plus@1.7.0

Or add to the file .mcp.json, in the project

{
  "mcpServers": {
    "yandex-direct-mcp-plus": {
      "command": "npx",
      "args": [
        "-y",
        "yandex-direct-mcp-plus@1.7.0"
      ],
      "env": {
        "YANDEX_DIRECT_TOKEN": "<your YANDEX_DIRECT_TOKEN>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

YANDEX_DIRECT_TOKENsecret, required
OAuth-токен Яндекс.Директа
YANDEX_DIRECT_LOGINoptional
Логин клиента (Client-Login), нужен для агентского токена

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.cursor/mcp.json, for all projects

{
  "mcpServers": {
    "yandex-direct-mcp-plus": {
      "command": "npx",
      "args": [
        "-y",
        "yandex-direct-mcp-plus@1.7.0"
      ],
      "env": {
        "YANDEX_DIRECT_TOKEN": "<your YANDEX_DIRECT_TOKEN>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key. For a single project, put the same block into .cursor/mcp.json.

Keys and settings

YANDEX_DIRECT_TOKENsecret, required
OAuth-токен Яндекс.Директа
YANDEX_DIRECT_LOGINoptional
Логин клиента (Client-Login), нужен для агентского токена

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Run in a terminal

code --add-mcp '{"name":"yandex-direct-mcp-plus","type":"stdio","command":"npx","args":["-y","yandex-direct-mcp-plus@1.7.0"],"env":{"YANDEX_DIRECT_TOKEN":"<your YANDEX_DIRECT_TOKEN>"}}'

Or add to the file .vscode/mcp.json, in the project

{
  "servers": {
    "yandex-direct-mcp-plus": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "yandex-direct-mcp-plus@1.7.0"
      ],
      "env": {
        "YANDEX_DIRECT_TOKEN": "<your YANDEX_DIRECT_TOKEN>"
      }
    }
  }
}

If the file already exists, add the server inside the servers key.

Keys and settings

YANDEX_DIRECT_TOKENsecret, required
OAuth-токен Яндекс.Директа
YANDEX_DIRECT_LOGINoptional
Логин клиента (Client-Login), нужен для агентского токена

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Run in a terminal

codex mcp add yandex-direct-mcp-plus --env 'YANDEX_DIRECT_TOKEN=<your YANDEX_DIRECT_TOKEN>' -- npx -y yandex-direct-mcp-plus@1.7.0

Or add to the file ~/.codex/config.toml, for all projects

[mcp_servers.yandex-direct-mcp-plus]
command = "npx"
args = ["-y", "yandex-direct-mcp-plus@1.7.0"]
env = { YANDEX_DIRECT_TOKEN = "<your YANDEX_DIRECT_TOKEN>" }

If the file already exists, append the block to the end.

Keys and settings

YANDEX_DIRECT_TOKENsecret, required
OAuth-токен Яндекс.Директа
YANDEX_DIRECT_LOGINoptional
Логин клиента (Client-Login), нужен для агентского токена

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.gemini/settings.json, for all projects

{
  "mcpServers": {
    "yandex-direct-mcp-plus": {
      "command": "npx",
      "args": [
        "-y",
        "yandex-direct-mcp-plus@1.7.0"
      ],
      "env": {
        "YANDEX_DIRECT_TOKEN": "<your YANDEX_DIRECT_TOKEN>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

YANDEX_DIRECT_TOKENsecret, required
OAuth-токен Яндекс.Директа
YANDEX_DIRECT_LOGINoptional
Логин клиента (Client-Login), нужен для агентского токена

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.config/devin/mcp_config.json, for all projects

{
  "mcpServers": {
    "yandex-direct-mcp-plus": {
      "command": "npx",
      "args": [
        "-y",
        "yandex-direct-mcp-plus@1.7.0"
      ],
      "env": {
        "YANDEX_DIRECT_TOKEN": "<your YANDEX_DIRECT_TOKEN>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Legacy Cascade keeps the MCP config in ~/.codeium/windsurf/mcp_config.json.

Keys and settings

YANDEX_DIRECT_TOKENsecret, required
OAuth-токен Яндекс.Директа
YANDEX_DIRECT_LOGINoptional
Логин клиента (Client-Login), нужен для агентского токена

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Formerly Windsurf.

Add to the file cline_mcp_settings.json, for all projects

{
  "mcpServers": {
    "yandex-direct-mcp-plus": {
      "command": "npx",
      "args": [
        "-y",
        "yandex-direct-mcp-plus@1.7.0"
      ],
      "env": {
        "YANDEX_DIRECT_TOKEN": "<your YANDEX_DIRECT_TOKEN>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Open the settings file in Cline: MCP Servers tab, Configure MCP Servers.

Keys and settings

YANDEX_DIRECT_TOKENsecret, required
OAuth-токен Яндекс.Директа
YANDEX_DIRECT_LOGINoptional
Логин клиента (Client-Login), нужен для агентского токена

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file .roo/mcp.json, in the project

{
  "mcpServers": {
    "yandex-direct-mcp-plus": {
      "command": "npx",
      "args": [
        "-y",
        "yandex-direct-mcp-plus@1.7.0"
      ],
      "env": {
        "YANDEX_DIRECT_TOKEN": "<your YANDEX_DIRECT_TOKEN>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

YANDEX_DIRECT_TOKENsecret, required
OAuth-токен Яндекс.Директа
YANDEX_DIRECT_LOGINoptional
Логин клиента (Client-Login), нужен для агентского токена

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

A fork of Roo Code, same .roo folders.

Add to the file opencode.json, in the project

{
  "mcp": {
    "yandex-direct-mcp-plus": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "yandex-direct-mcp-plus@1.7.0"
      ],
      "environment": {
        "YANDEX_DIRECT_TOKEN": "<your YANDEX_DIRECT_TOKEN>"
      }
    }
  }
}

If the file already exists, add the server inside the mcp key.

Keys and settings

YANDEX_DIRECT_TOKENsecret, required
OAuth-токен Яндекс.Директа
YANDEX_DIRECT_LOGINoptional
Логин клиента (Client-Login), нужен для агентского токена

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.config/zed/settings.json, for all projects

{
  "context_servers": {
    "yandex-direct-mcp-plus": {
      "command": "npx",
      "args": [
        "-y",
        "yandex-direct-mcp-plus@1.7.0"
      ],
      "env": {
        "YANDEX_DIRECT_TOKEN": "<your YANDEX_DIRECT_TOKEN>"
      }
    }
  }
}

If the file already exists, add the server inside the context_servers key.

Keys and settings

YANDEX_DIRECT_TOKENsecret, required
OAuth-токен Яндекс.Директа
YANDEX_DIRECT_LOGINoptional
Логин клиента (Client-Login), нужен для агентского токена

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file .codeassistant/mcp.json, in the project

{
  "mcpServers": {
    "yandex-direct-mcp-plus": {
      "command": "npx",
      "args": [
        "-y",
        "yandex-direct-mcp-plus@1.7.0"
      ],
      "env": {
        "YANDEX_DIRECT_TOKEN": "<your YANDEX_DIRECT_TOKEN>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

YANDEX_DIRECT_TOKENsecret, required
OAuth-токен Яндекс.Директа
YANDEX_DIRECT_LOGINoptional
Логин клиента (Client-Login), нужен для агентского токена

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

You will need: Node.js

Checked against the repository on Sep 25, 2026, commit 194f9eb.

Text for your agent

Get a Yandex Direct OAuth token and add the server: claude mcp add yandex-direct -e YANDEX_DIRECT_TOKEN=your_token -- npx -y yandex-direct-mcp-plus. Before the first real change, ask the agent to call the tool with dry_run: true.

Other ways from the author
claude mcp add yandex-direct -e YANDEX_DIRECT_TOKEN=ваш_токен -- npx -y yandex-direct-mcp-plus

Needs Node.js 22+ and an OAuth token with the direct:api scope.

This is third-party code. Review the repository files before installing.

What it does

The server gives 59 tools covering almost every Direct API v5 service: campaigns and strategies, ad groups, ads and moderation, keywords and bids, negative-keyword sets, sitelinks, callouts, images, vCards, bid adjustments, retargeting, audience and dynamic targets, feeds, ad schedules, statistics, search queries, balance and dictionaries. Amounts are accepted and returned in rubles, not API micro-units, and Direct's 64-bit ids are passed as strings so JavaScript never truncates them. Every write tool takes a dry_run parameter: with it, the call validates against the schema and performs the reads it needs but never sends the request to Direct. The README honestly splits tools into three groups: read-only, budget-spending or serving-starting, and irreversibly deleting with a DESTRUCTIVE annotation.

Who it is for. For people running Yandex Direct ads who want the full API v5 tool set with an explicit dry check before anything real is sent.

Good fit when

  • You want near-full API v5 coverage in one server instead of stitching together several wrappers
  • You need to preview exactly what would be sent to Direct before actually sending it
  • You need precise handling of 64-bit ids and ruble amounts without manual micro-unit conversion

Not a fit when

  • You need smart banners, dynamic ads or vCards created: the Direct API has not created those since May 22, 2026
  • You need a sandbox: the Yandex Direct sandbox has been off since July 2026, so testing happens on a draft campaign
  • You need full Unified Performance Campaign management: the server currently only reads it

Example request

Raise the bid to 25 rubles where CTR is above 8% and impressions are under a hundred, but show me what would change first

Limitations

Yandex Direct no longer has a sandbox; every call hits the live account, so testing is only possible on a separate draft campaign. Smart banners, dynamic ads and vCards can no longer be created via the API, though the server reads them and, for vCards, deletes them. The server currently only reads Unified Performance Campaigns. Needs an OAuth token; the Direct API access request takes from an hour to a few days to review.

How to disable. Run claude mcp remove yandex-direct in Claude Code or remove the yandex-direct block from your MCP client config.

MCP

Transport
stdio
Authentication
API key
Environment variables
Environment variables
YANDEX_DIRECT_TOKEN
required, secret
Yandex Direct OAuth token
YANDEX_DIRECT_LOGIN
Client login for agency tokens, Client-Login header

Security check

  • The resume, moderate_ads and update_campaign tools start real serving and spend budget
  • 12 tools are marked DESTRUCTIVE and delete objects with no way to restore them

README in short

The README gives ready commands for Claude Code, Claude Desktop and Cursor via npx, an environment-variable table, a data-change section explicitly listing tools that spend budget, start serving or delete irreversibly, and a full table of the 59 tools by section. It separately states its origin: the project started from theYahia/yandex-direct-mcp's MIT-licensed code, was extended by another contributor from 20 to 48 tools, and now develops independently.

FAQ

Can I preview an action without spending budget?

Yes, every write tool has a dry_run: true parameter that validates the parameters and performs needed reads but sends nothing to Direct.

Does the server send telemetry anywhere?

No, the README states outright that the server sends nothing anywhere except requests to the Yandex API.

Editors’ pick

A skill that strips AI writing tells from text using Wikipedia's list, without adding invented facts

SkillLow riskNo VPN needed52.7KRepository stars

Marketing Skills for AI agents

Marketing Skills for AI Agents

Editors’ pick

About fifty skills for CRO, copywriting, SEO, analytics, ads and launches, built for coding agents

SkillLow risk51.8KRepository stars
Official

SendPulse's official remote MCP server: statistics, campaigns and user data through an agent chat

MCP serverHigh riskRussian stack1Repository stars
Editors’ pick

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

MCP serverHigh riskRussian stackNo VPN needed1Repository stars
Foxx AIYandex Direct MCP: 59 tools

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.