mcpField
Y
Yandex Analytics

Yandex Analytics

本地服务
github.com/nozikov数据与分析41 周前更新

关于 Yandex Analytics

Yandex Analytics 是面向 AI Agent 的只读分析 MCP 服务,可从 Yandex Metrika、Webmaster、Direct 和 Wordstat 查询网站与广告数据。它以精简工具集提供指标、趋势和搜索词分析,且令牌在本机使用。

主要功能

  1. 01查询 Metrika 流量与目标指标
  2. 02比较时段并生成自定义报告
  3. 03查看 Webmaster 搜索词和索引状态
  4. 04读取 Direct 广告表现与 Wordstat 词频
  5. 05通过 PKCE 登录并管理令牌

适用场景

  1. 01分析网站流量变化和来源
  2. 02查找接近搜索结果首页的查询词
  3. 03按广告系列查看支出与点击数据
  4. 04生成每周网站分析报告

MCP 相关

该 MCP 服务通过 stdio 提供 Yandex 分析工具,供客户端查询 Metrika、Webmaster、Direct 和 Wordstat。除需明确确认的页面重新抓取外,工具为只读。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"nozikov-yandex": {
"command": "uvx",
"args": [
"yandex-mcp"
],
"env": {
"YANDEX_MCP_DEFAULT_COUNTER": "<YANDEX_MCP_DEFAULT_COUNTER>",
"YANDEX_MCP_CLIENT_ID": "<YANDEX_MCP_CLIENT_ID>"
}
}
}
}
启动命令uvx yandex-mcp
需要配置的环境变量
YANDEX_MCP_DEFAULT_COUNTERMetrika counter id used when a tool call omits counter_id
YANDEX_MCP_CLIENT_IDYandex OAuth application id; alternative to storing it in the OS keystore

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

安装包
pypiyandex-mcp2.1.0

工具

15

收录的工具列表 · 更新于 2 周前

参数类型必填说明
date1string否开始日期:YYYY-MM-DD 或 30daysAgo
date2string否结束日期:YYYY-MM-DD 或 yesterday
counter_idstring否Metrica 计数器 ID;若未传入,则使用 YANDEX_MCP_DEFAULT_COUNTER

详细介绍

yandex-mcp

用自然语言询问你的 Yandex 数据分析。 Metric、Webmaster、Direct 和 Wordstat 集成在一个 MCP 服务中。

tests PyPI Python License: MIT

Yandex Analytics MCP server

> Как изменился трафик за последний месяц и откуда пришёл рост?
> По каким запросам мы на второй странице — там, где до топа осталось чуть-чуть?
> Сколько стоила заявка в Директе на прошлой неделе по каждой кампании?

工作原理

客户端和服务运行在你的电脑上,并直接调用 Yandex API

服务是运行在你电脑上的普通程序。Agent 向它请求数据,它会调用 Yandex API, 并返回整理好的文本。没有任何中间服务:你的令牌和数据不会经过他人之手。

完全没有依赖项——不依赖任何第三方库。这个进程可以访问你的数据分析和广告账户, 因此这里的第三方代码越少越好。

安装

Claude Code——两条命令,安装服务的同时也会安装技能:

/plugin marketplace add nozikov/yandex-mcp
/plugin install yandex-mcp@nozikov

Codex CLI——将以下内容追加到 ~/.codex/config.toml,然后重启 Codex:

[mcp_servers.yandex]
command = "uvx"
args = ["yandex-mcp"]
env = { YANDEX_MCP_DEFAULT_COUNTER = "12345678" }

其他客户端——通过 PyPI 安装:

claude mcp add yandex -e YANDEX_MCP_DEFAULT_COUNTER=12345678 -- uvx yandex-mcp

也可以手动配置,参见 .mcp.json.example:

{
  "mcpServers": {
    "yandex": {
      "command": "uvx",
      "args": ["yandex-mcp"],
      "env": { "YANDEX_MCP_DEFAULT_COUNTER": "12345678" }
    }
  }
}

计数器可以不填——不填写的话,每次提问都需要指定。

登录

登录分三步:请 Agent 操作、在浏览器中确认、将代码发回聊天

无需使用终端:告诉 Agent“连接 Yandex”,它就会逐步引导你完成。

开始前需要在 Yandex 注册自己的应用——免费,只需五分钟。运行 yandex-mcp setup 会打开所需页面并提示你填写内容。无需应用密码:这里使用 PKCE。

唯一需要你亲自完成、Agent 无法代劳的步骤是注册应用,因为这是你的账户。 注册后,只需把 ClientID 告诉 Agent;它不是机密:

yandex-mcp setup --client-id <ClientID>
注册应用时需要填写哪些内容

Yandex 会询问应用类型。两种都可以,区别仅在于登录方式:

类型Redirect URI登录方式
“用于用户授权”自定义:http://localhost:8765/callbackyandex-mcp login
“用于访问 API 或调试”由 Yandex 固定yandex-mcp login --manual

在“数据访问”部分,按名称添加权限:

metrika:read
webmaster:hostinfo
webmaster:verify
direct:api           ← нужна заявка в кабинете Директа, рассматривают до 7 дней

登录时会一次性申请所有权限。如果 direct:api 尚未获批,Yandex 会拒绝请求——服务会检测到这一情况,在不启用 Direct 的情况下完成登录,并告知你。Metric 和 Webmaster 会立即可用;申请获批后,再次登录即可启用 Direct。

终端命令:setup、login、status、logout。

## Что умеет

Метрика

metrika_summaryСводка за период: визиты, посетители, отказы, глубина, достижения всех целей
metrika_compareСравнение двух периодов — по итогам или построчно по источникам, устройствам, страницам
metrika_reportЛюбой отчёт: свои метрики, измерения и фильтры
metrika_countersКакие счётчики доступны

Вебмастер

webmaster_summaryИКС, страниц в поиске, исключено, активные проблемы
webmaster_queriesПоисковые запросы: показы, клики, средняя позиция
webmaster_indexingКак менялось число страниц в поиске
webmaster_sitemapsКакие карты сайта видит Яндекс и есть ли в них ошибки
webmaster_recrawlПоставить страницы на переобход. Единственное действие, а не чтение — требует явного подтверждения

Директ и Вордстат

direct_campaignsКампании и остаток баллов API
direct_reportРасход, показы, клики, CTR — по кампаниям, объявлениям, группам или запросам
wordstat_phrasesЧастотности: сколько раз в месяц ищут фразу и что ищут вместе с ней

Подключение

yandex_loginНачать вход — выдаёт ссылку
yandex_submit_codeЗавершить вход — принимает код
yandex_auth_statusЧто подключено и когда истекает
Скиллы

Ставятся вместе с плагином Claude Code:

/yandex-mcp:site-weeklyНедельный отчёт по сайту: трафик, источники, поиск, реклама — и что делать
/yandex-mcp:seo-opportunitiesЗапросы на границе топа: где до первой страницы осталось немного

Где лежит токен

Хранилище выбирается автоматически: переменная окружения, Keychain, secret-tool, файл 0600

Ничего настраивать не нужно — подходящее хранилище выбирается само. Форсировать можно переменной YANDEX_MCP_KEYSTORE.

Записи лежат под общим префиксом, чтобы logout не задел чужое:

yandex-mcp-token             общий токен
yandex-mcp-metrika-token     токен одного сервиса, если нужен узкий доступ
yandex-mcp-client-id         ID приложения Яндекса

Токен можно передать и напрямую, минуя хранилище: YANDEX_MCP_SECRET_TOKEN для общего, YANDEX_MCP_SECRET_METRIKA_TOKEN для узкого. Так удобно в Docker и CI.

Почему 15 инструментов, а не 130

Описания всех инструментов уходят в контекст модели при каждом запросе, пока сервер подключён. Здесь это около 1 800 токенов. У серверов со 130–150 инструментами — за 40 000, и это постоянный налог на каждый диалог.

Оставлено то, на что реально смотрят: цифры и их динамика. Управлять кампаниями и ставками отсюда нельзя — для этого есть кабинет Директа, и цена ошибки там другая.

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

ПеременнаяЗачем
YANDEX_MCP_DEFAULT_COUNTERСчётчик Метрики по умолчанию
YANDEX_MCP_CLIENT_IDID приложения Яндекса, если не хочешь держать его в хранилище
YANDEX_MCP_KEYSTOREkeychain, secret-tool или file — выбрать хранилище вручную
YANDEX_MCP_SECRET_TOKENГотовый токен мимо хранилища (Docker, CI)
YANDEX_MCP_DIRECT_SANDBOX1 — Директ отвечает из песочницы, баллы API не тратятся
YANDEX_MCP_DIRECT_CLIENT_LOGINЛогин клиента для агентских аккаунтов
YANDEX_MCP_WORDSTAT_WAITСколько секунд ждать отчёт Вордстата, по умолчанию 170

О чём стоит знать

  • Инструменты Директа и Вордстата требуют одобренной заявки на API Директа. До неё Директ отвечает ошибкой 58.
  • Отчёт Вордстата готовится у Яндекса около трёх минут. Если вернулось «ещё готовится» — повтори запрос с теми же фразами, готовый результат подхватится сразу.
  • Отчёт Директа тоже может готовиться минутами. Сервер ждёт сам, но в очереди Яндекса помещается не больше пяти таких отчётов на аккаунт.
  • Переобход страниц ограничен: 20 URL за вызов при суточной квоте 150 на сайт.
  • Ответ обрезается на 20 000 символах. Для больших выгрузок сужай период.
  • Токен живёт около полугода, потом нужно войти заново. Обновлять его автоматически Яндекс разрешает только приложениям с паролем, а у PKCE-приложения его нет.
  • Там, где системного хранилища нет (Windows, сервер без графики, контейнер), токен лежит в файле с правами 0600 — как ~/.aws/credentials или SSH-ключ без пароля.

Безопасность

Токен не появляется ни в ответе инструмента, ни в тексте ошибки: есть отдельный фильтр, вычищающий его из любого текста. status показывает только отпечаток.

Почти всё — чтение. Единственное изменяющее действие, переобход страниц, требует явного подтверждения в аргументах вызова.

Данные из API считаются недоверенными: поисковые фразы, UTM-метки и названия кампаний пишут посторонние люди. К каждому ответу добавляется пометка, что это данные для анализа, а не инструкции агенту.

Разработка

pip install -e ".[dev]"
pytest

Тесты не ходят в сеть и не трогают системное хранилище. CI гоняет их на Linux, macOS и Windows, на Python от 3.8 до 3.14.

src/yandex_mcp/
  cli.py         точка входа: без аргументов сервер, с аргументами настройка
  server.py      JSON-RPC поверх stdio
  registry.py    сборка списка инструментов
  httpclient.py  запросы к Яндексу
  scrub.py       вычищение секретов из ответов
  auth/          хранилище, токены, вход по PKCE
  tools/         по модулю на сервис

Код лежит в src/, чтобы import yandex_mcp брал установленный пакет, а не случайно подхваченную рабочую директорию — иначе тесты могут проходить на коде, которого нет в собранном колесе.

Диаграммы в docs/ собираются из scripts/make_diagrams.py, а scripts/check_metadata.py следит, чтобы README не разошёлся с кодом: версии, список инструментов и переменные окружения проверяются на каждом прогоне CI.

Лицензия

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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