mcpField
Y
yandex-direct

yandex-direct

本地服务
github.com/dontsovcmc商业与营销125 周前更新

关于 yandex-direct

yandex-direct 为 Yandex Direct API v5 提供 MCP 服务、CLI 和 Pydantic 模型,适用于管理广告活动的开发者与运营人员。它以自然语言搜索动作,再按动作 ID 执行,并将访问令牌保留在本机。

主要功能

  1. 01搜索并执行 API 动作
  2. 02管理广告活动和广告
  3. 03操作关键词与出价
  4. 04处理受众及相关素材
  5. 05提供 CLI 和类型化 Pydantic 模型

适用场景

  1. 01查询或暂停广告活动
  2. 02添加关键词并调整出价
  3. 03查看广告审核与受众信息
  4. 04生成广告活动报告

MCP 相关

MCP 服务以 `yd_search` 按自然语言查找动作,再通过 `yd_execute` 执行所选动作,连接 Yandex Direct API v5。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dontsovcmc-yandex-direct": {
"command": "uvx",
"args": [
"mcp-server-yandex-direct"
],
"env": {
"YD_TOKEN": "<YD_TOKEN>",
"YD_CLIENT_LOGIN": "<YD_CLIENT_LOGIN>",
"YD_LANG": "<YD_LANG>",
"YD_TIMEOUT": "<YD_TIMEOUT>",
"YD_FILE_TIMEOUT": "<YD_FILE_TIMEOUT>"
}
}
}
}
启动命令uvx mcp-server-yandex-direct
需要配置的环境变量
YD_TOKEN密钥
YD_CLIENT_LOGIN
YD_LANG
YD_TIMEOUT
YD_FILE_TIMEOUT

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-server-yandex-direct0.3.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-server-yandex-direct

Version

适用于 Yandex Direct API v5 的 MCP 服务、CLI 工具和 Pydantic 模型库。

  • MCP 服务 — 与 Claude Code、Claude Desktop 和其他 MCP 客户端集成
  • CLI 工具 — 在终端中使用 API、编写脚本和自动化
  • Pydantic 模型 — 可在自己的 Python 程序中使用的类型化 API 模型

所有数据都保留在您的计算机上,令牌不会传送到任何地方。

目录

架构

服务采用 search + execute 模式,不提供 79 个独立工具,而是提供 2 个:

工具描述
yd_search根据自然语言描述搜索操作
yd_execute根据 ID 执行操作
工作原理
LLM: yd_search("остановить кампании")
→ [{"id": "campaigns-suspend", "params_schema": {"SelectionCriteria": {...}, ...}, ...}]

LLM: yd_execute("campaigns-suspend", '{"SelectionCriteria": {"Ids": [12345]}}')
→ {"SuspendResults": [...]}

可用操作(79)

领域数量描述
campaigns8广告系列:创建、管理、归档
adgroups4广告组
ads9广告:创建、管理、审核
keywords6关键词
bidding7出价和出价调整
assets11快速链接、图片、视频、扩展
audience10受众和再营销
negkeywords4共享否定关键词列表
feeds4动态广告信息流
creatives2展示广告创意
research2关键词研究
leads1潜在客户开发表单中的线索
changes3变更跟踪
account6账户、参考数据、代理商客户
turbopages1Turbo 页面
reports1报告(TSV/CSV)

MCP 服务

安装
步骤 1. 获取 OAuth 令牌
  1. 登录 Яндекс Директ
  2. 前往 设置 → API
  3. 创建具有所需权限的 OAuth 令牌
  4. 复制令牌
步骤 2. 连接 MCP 服务
连接到 Claude Code

方式 1:通过 uvx(无需安装软件包)

需要 uv;如果尚未安装:

curl -LsSf https://astral.sh/uv/install.sh | sh
claude mcp add yandex-direct \
  -e YD_TOKEN=ваш_токен \
  -- uvx mcp-server-yandex-direct

方式 2:通过 pip

pip install mcp-server-yandex-direct

claude mcp add yandex-direct \
  -e YD_TOKEN=ваш_токен \
  -- python -m mcp_server_yandex_direct

卸载:

claude mcp remove yandex-direct
连接到 Claude Desktop

将以下内容添加到配置文件:

客户端操作系统文件路径
Claude Code全部~/.claude/settings.json(mcpServers 部分)
Claude DesktopmacOS~/Library/Application Support/Claude/claude_desktop_config.json
Claude DesktopWindows%APPDATA%\Claude\claude_desktop_config.json
Claude DesktopLinux~/.config/Claude/claude_desktop_config.json

通过 uvx:

{
  "mcpServers": {
    "yandex-direct": {
      "command": "uvx",
      "args": ["mcp-server-yandex-direct"],
      "env": {
        "YD_TOKEN": "ваш_токен"
      }
    }
  }
}

通过 pip(执行 pip install mcp-server-yandex-direct 后):

{
  "mcpServers": {
    "yandex-direct": {
      "command": "python",
      "args": ["-m", "mcp_server_yandex_direct"],
      "env": {
        "YD_TOKEN": "ваш_токен"
      }
    }
  }
}
Подключение через --mcp-config

Подключает сервер только на время одной сессии Claude, не сохраняя в настройки. Токен хранится в отдельном .env.mcp файле, а не в конфиге Claude.

Из JSON-строки:

claude --mcp-config '{"yandex-direct":{"command":"bash","args":["-c","source ~/.env.mcp && exec uvx mcp-server-yandex-direct"]}}'

Из файла:

claude --mcp-config ~/mcp-servers.json

Пример ~/mcp-servers.json:

{
  "yandex-direct": {
    "command": "bash",
    "args": ["-c", "source ~/.env.mcp && exec uvx mcp-server-yandex-direct"]
  }
}

Пример ~/.env.mcp:

YD_TOKEN=ваш_токен
Шаг 3. Проверить

Попросите Claude: «Покажи список кампаний» — он вызовет yd_search, получит схему campaigns-get, затем yd_execute.

Примеры (MCP)

Claude автоматически использует yd_search для поиска нужного действия, затем yd_execute для его выполнения:

  • «Покажи все активные кампании» → yd_search("кампании") → yd_execute("campaigns-get", ...)
  • «Останови кампании 123, 456» → yd_search("остановить кампании") → yd_execute("campaigns-suspend", ...)
  • «Покажи объявления кампании 789» → yd_search("объявления") → yd_execute("ads-get", ...)
  • «Добавь ключевую фразу» → yd_search("ключевые слова добавить") → yd_execute("keywords-add", ...)
  • «Получи справочник регионов» → yd_search("справочники") → yd_execute("dictionaries-get", ...)
  • «Сделай отчёт по кампаниям за январь» → yd_search("отчёт") → yd_execute("reports-get", ...)

CLI-утилита

Установка (CLI)
pip install mcp-server-yandex-direct

Переменная окружения YD_TOKEN должна быть установлена:

export YD_TOKEN=ваш_токен

Или через файл:

mcp-server-yandex-direct --env /path/to/.env <command>

Формат файла — KEY=VALUE, по одной переменной на строку, #-комментарии.

Использование (CLI)

Без аргументов запускается MCP-сервер, с командой — CLI. Все команды выводят JSON.

# Версия
mcp-server-yandex-direct --version

# Справка
mcp-server-yandex-direct --help
mcp-server-yandex-direct <command> --help
Примеры команд
# Кампании
mcp-server-yandex-direct campaigns-get '{"SelectionCriteria": {}, "FieldNames": ["Id", "Name", "State"]}'
mcp-server-yandex-direct campaigns-suspend 123,456

# Объявления
mcp-server-yandex-direct ads-get '{"SelectionCriteria": {"CampaignIds": [123]}, "FieldNames": ["Id", "Type", "State"]}'
mcp-server-yandex-direct ads-moderate 789,101

# Ключевые фразы
mcp-server-yandex-direct keywords-get '{"SelectionCriteria": {"AdGroupIds": [111]}, "FieldNames": ["Id", "Keyword", "State"]}'

# Справочники
mcp-server-yandex-direct dictionaries-get Currencies,Regions

# Отчёты
mcp-server-yandex-direct reports-get '{"params": {"SelectionCriteria": {"DateFrom": "2026-01-01", "DateTo": "2026-04-28"}, "FieldNames": ["Date", "CampaignId", "Clicks", "Cost"], "ReportName": "My Report", "ReportType": "CAMPAIGN_PERFORMANCE_REPORT", "DateRangeType": "CUSTOM_DATE", "Format": "TSV"}}'
Пример вывода
$ mcp-server-yandex-direct campaigns-get '{"SelectionCriteria": {"States": ["ON"]}, "FieldNames": ["Id", "Name"]}'
{"Campaigns": [{"Id": 12345, "Name": "Летняя распродажа"}]}

Pydantic-модели

Пакет содержит типизированные Pydantic-модели всех объектов API. Модели можно использовать в своих Python-программах для валидации данных и автодополнения в IDE.

Установка (библиотеки)
pip install mcp-server-yandex-direct
Использование в своих программах
from mcp_server_yandex_direct.models.campaigns import CampaignsGetParams, CampaignsSelectionCriteria

# Валидация данных из API
params = CampaignsGetParams(
    SelectionCriteria=CampaignsSelectionCriteria(States=["ON"]),
    FieldNames=["Id", "Name", "State"],
)
print(params.model_dump_json())

# Валидация ответа
from mcp_server_yandex_direct.models.campaigns import CampaignsGetResult

data = {"Campaigns": [{"Id": 12345, "Name": "Тест", "State": "ON"}]}
result = CampaignsGetResult.model_validate(data)
print(result.Campaigns[0].Name)  # type-safe доступ к полям

Все модели используют extra="allow" для forward compatibility — неизвестные поля API не вызывают ошибок.

Полный список моделей: models/


Переменные окружения

ПеременнаяОбязательнаяПо умолчаниюОписание
YD_TOKENда—OAuth-токен Yandex Direct API
YD_CLIENT_LOGINнет—Логин клиента для агентских аккаунтов
YD_LANGнет—Язык ответов: ru, en, uk
YD_TIMEOUTнет30Таймаут HTTP-запросов к API (секунды)
YD_FILE_TIMEOUTнет120Таймаут отчётов Reports API (секунды)

Разработка

pip install -e ".[test]"
ruff check src/ tests/
pytest tests/ -v

Лицензия

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。