Yandex Metrica MCP

io.github.askads由 GitHub 帳號 askads 發布v1.5.5更新於 Nov 3, 2026

MCP server for Yandex Metrica API: list counters, goals and pull web-analytics statistics.

概覽

AI 產生的概覽

針對 Yandex Metrica 的本機 MCP 伺服器,讓助理列出計數器與目標,並取得網站流量、來源與轉換報表。

可以做什麼
  • 列出目前 Yandex 帳號可存取的計數器與目標,可依名稱或網站篩選
  • 依計數器取得統計:造訪、使用者、瀏覽量、跳出率、造訪時間,以及來源、裝置、日期等維度
  • 依目標 ID 查詢轉換指標
  • 查看連線狀態,在對話中完成 OAuth 登入(start_login、finish_login)或刪除已儲存的權杖(logout)
  • 向任一 Yandex Metrica API 路徑送出原始請求,設定 confirmWrite 後可執行 POST 與 DELETE
適用情境
適合想用自然語言詢問網站 Yandex Metrica 資料時使用,例如流量趨勢、流量來源、裝置表現或目標轉換,讓助理在對話中取數並說明結果。
執行需求
透過 npx 在本機執行,需要 Node.js 20 或更新版本。不必事先準備權杖:伺服器會在對話中引導完成 Yandex OAuth 登入並在本機儲存權杖。也可設定 YANDEX_METRIKA_TOKEN(權限 metrika:read);另有選用變數可設定預設計數器、語言、逾時、重試次數、API 位址與自訂 OAuth 用戶端 ID。需要能連線至 Metrica API 的網路。
安裝前請注意
權杖屬於機密,會存到本機憑證檔案;logout 只刪除本機副本,應用程式授權仍須在 Yandex ID 另行撤銷。Metrica 沒有沙箱:raw_request 在 confirmWrite 為真時執行 POST 或 DELETE 會改動真實物件且無法復原。預設會送出匿名技術遙測,包含錯誤文字片段,可用 ASKADS_TELEMETRY=0 關閉。大型報表可能被抽樣或截斷。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Yandex Metrica MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Яндекс Метрика MCP

[npm] [CI] [Glama] [License: MIT]

Яндекс Метрика MCP подключает AI-приложение к веб-аналитике сайта. Спросите на естественном языке, откуда приходят посетители, как меняется конверсия или где растёт доля отказов — ассистент возьмёт данные из вашего счётчика и объяснит результат. Подключение начинается прямо в диалоге: не нужно заранее создавать токен или редактировать конфигурацию.

  • Восемь инструментов. Счётчики, цели и отчёты Метрики, подключение и отключение доступа, а также один универсальный запрос к API.
  • Отчёты и конверсии. Визиты, пользователи, просмотры, отказы, длительность визита, источники, устройства и цели за выбранный период.
  • Подключение в чате. Яндекс откроет страницу входа; одноразовый код действует 10 минут, а сервер проверит доступ к счётчикам сразу после подключения.
  • Обычные запросы — только чтение. Специализированные инструменты не меняют счётчики, цели или данные Метрики.
  • Без молчаливого обрезания. В отчёте видны итоговые значения и признак выборки; при большой выдаче сервер отмечает, если упёрся в лимит.

Попробуйте первым сообщением:

Сколько визитов, пользователей и отказов было у моего сайта за последнюю неделю?

Подключить сервер · Посмотреть сценарии · Открыть техническую документацию


Увидеть работу за минуту

Вы: Подключи Яндекс Метрику.

Ассистент: Даёт ссылку на вход в Яндекс. Откройте её под аккаунтом, у которого есть доступ к нужным счётчикам, подтвердите доступ и пришлите показанный код.

Вы: Отправляет код из страницы Яндекса.

Ассистент: Подключает Метрику, проверяет, видны ли счётчики, и сообщает результат. Перезапускать приложение не нужно.

Вы: За последние 30 дней покажи источники трафика и конверсию по цели «Оформление заказа».

Ассистент: Находит цель, строит отчёт по источникам и показывает визиты, достижения цели и конверсию. Если Метрика применила выборку, отмечает, что цифры приблизительные.

Содержание

Быстрый старт

Нужен Node.js 20 или новее. Сервер запускается через npx, поэтому отдельно устанавливать пакет не требуется.

  1. Добавьте сервер в AI-приложение — ниже открыт пример для Codex, остальные приложения собраны в сворачиваемые инструкции.
  2. Напишите: «Подключи Яндекс Метрику». Ассистент проведёт через вход в Яндекс и сразу проверит, что ему видны ваши счётчики.
  3. Задайте первый вопрос, например: «Какие источники дали больше всего визитов за прошлый месяц?»
Codex

Через интерфейс приложения:

  1. Откройте Settings → Plugins → MCP servers.
  2. Нажмите Add server.
  3. Добавьте команду запуска npx -y mcp-yandex-metrica@latest.

Через командную строку:

bash
codex mcp add yandex-metrica -- npx -y mcp-yandex-metrica@latest

Проверьте подключение:

bash
codex mcp list

Затем в чате Codex попросите: «Подключи Яндекс Метрику».

Официальная инструкция Codex

Claude Code
bash
claude mcp add --transport stdio --scope user yandex-metrica -- npx -y mcp-yandex-metrica@latest

Проверьте сервер командой:

bash
claude mcp list

Затем начните диалог с просьбы подключить Метрику.

Документация Claude Code

Claude Desktop

Откройте Settings → Developer → Edit Config и добавьте сервер в claude_desktop_config.json:

json
{  "mcpServers": {    "yandex-metrica": {      "command": "npx",      "args": ["-y", "mcp-yandex-metrica@latest"]    }  }}

После сохранения откройте новый диалог и попросите подключить Метрику.

Cursor

Для всех проектов создайте ~/.cursor/mcp.json; только для текущего проекта — .cursor/mcp.json:

json
{  "mcpServers": {    "yandex-metrica": {      "command": "npx",      "args": ["-y", "mcp-yandex-metrica@latest"]    }  }}

В чате Cursor сервер появится среди доступных инструментов. Попросите подключить Метрику и пройдите вход через Яндекс.

Документация Cursor

VS Code

Откройте палитру команд и выполните MCP: Open User Configuration. Добавьте в mcp.json:

json
{  "servers": {    "yandex-metrica": {      "type": "stdio",      "command": "npx",      "args": ["-y", "mcp-yandex-metrica@latest"]    }  }}

Проверьте запуск командой MCP: List Servers, затем откройте чат и попросите подключить Метрику.

Документация VS Code

Что можно поручить

Понять, что происходит с сайтом

  • «Сколько было визитов, пользователей и просмотров за последнюю неделю?»
  • «Покажи динамику посещаемости по дням за июнь».
  • «На каких устройствах доля отказов выше?»

Найти источник трафика и оценить его качество

  • «Покажи источники трафика за месяц и отсортируй по визитам».
  • «Сравни органический поиск и рекламу по пользователям и отказам».
  • «Какие источники дали больше всего переходов на этой неделе?»

Разобраться с конверсиями

  • «Какие цели настроены в счётчике?»
  • «Какая конверсия по цели „Оформление заказа“ за 30 дней?»
  • «Покажи источники, которые принесли больше всего достижений цели».

Проверить доступ и точность данных

  • «Какие счётчики мне доступны?»
  • «Покажи статус подключения к Метрике».
  • «Данные в этом отчёте точные или Метрика использовала выборку?»

Как это работает

Сервер работает с тремя привычными сущностями:

СущностьЧто можно узнать
СчётчикНазвание сайта, его идентификатор и доступность для вашего аккаунта.
ЦельНастроенные на счётчике конверсии и их идентификаторы.
ОтчётМетрики и срезы за период: например, визиты по дням, источникам или устройствам.

Обычно ассистент сначала находит доступный счётчик, затем — при необходимости — цель, и только после этого строит отчёт. В ответе Метрики есть итог по всем строкам, размер выдачи и признак выборки.

Что может изменить данные

ДействиеЧто происходит
Список счётчиков, целей и отчётыТолько чтение данных Метрики.
ПодключениеСохраняет токен доступа локально на вашем компьютере и проверяет его чтением счётчиков. В Метрике ничего не меняет.
ОтключениеУдаляет только сохранённый на компьютере токен. Доступ приложения в Яндекс ID остаётся; его можно отозвать там отдельно.
Произвольный запрос к APIGET читает данные. POST и DELETE могут менять реальные объекты Метрики и выполняются только с confirmWrite=true.

Сервер помечает произвольную запись как потенциально разрушительное действие. Как именно AI-приложение запрашивает подтверждение, зависит от самого приложения; перед таким запросом проверьте путь, метод и данные.

Подключение и настройка

Для обычного использования токен заранее не нужен:

  1. В чате попросите подключить Яндекс Метрику.
  2. Откройте ссылку на Яндекс OAuth под аккаунтом с доступом к нужным счётчикам.
  3. Подтвердите доступ и пришлите код ассистенту. Он действует 10 минут и меняется на токен только внутри работающего сервера.

Сервер использует PKCE: код из чата сам по себе нельзя обменять на токен. Полученный токен хранится локально в ~/.config/mcp-yandex-metrica/credentials.json с правами только для владельца. При сохранённом refresh-токене доступ продлевается автоматически.

Для CI и нестандартных установок доступна настройка через переменные окружения:

ПеременнаяНазначение
YANDEX_METRIKA_TOKENГотовый OAuth-токен с правом metrika:read; имеет приоритет над подключением из чата.
YANDEX_METRIKA_COUNTER_IDСчётчик по умолчанию для запросов без counterId.
YANDEX_METRIKA_OAUTH_CLIENT_IDClient ID собственного OAuth-приложения вместо приложения Ask Ads.
YANDEX_METRIKA_LANGЯзык подписей в ответах API; по умолчанию ru.
YANDEX_METRIKA_TIMEOUT_MSТаймаут запроса; по умолчанию 60 000 мс.
YANDEX_METRIKA_MAX_RETRIESЧисло повторов при временных ошибках; по умолчанию 3.
YANDEX_METRIKA_API_BASEБазовый адрес API; по умолчанию https://api-metrika.yandex.net.

Если используете собственное OAuth-приложение, запросите в нём право «Получение статистики, чтение параметров своих и доверенных счётчиков» (metrika:read).

Данные и телеметрия

По умолчанию сервер отправляет анонимную техническую телеметрию: случайный идентификатор установки, имя события или инструмента, версию сервера, версию Node.js, ОС и сведения о подключившемся AI-клиенте. При вызове инструмента сервер также отправляет его исход, а при ошибке - фрагмент её текста: код и сообщение, в которых e-mail, адреса, токены, числа от 4 цифр и текст в кавычках заменены на «#». Если в тексте ошибки есть значение из запроса, оно тоже может попасть во фрагмент. В телеметрию не попадают токен, данные счётчиков, аргументы инструментов, ваши сообщения и значения переменных окружения.

Чтобы отключить телеметрию для MCP-серверов Ask Ads, задайте переменную окружения:

bash
ASKADS_TELEMETRY=0

Ограничения

  • Выборка Метрики. На больших периодах или сложных отчётах API может вернуть приблизительные данные. Смотрите поля sampled и sample_share; для более точного расчёта сузьте период или используйте accuracy: "full".
  • Размер отчёта. Один запрос возвращает до 10 000 строк. Автоматическая пагинация останавливается не более чем на 100 страницах, 100 000 строках или примерно 1 МБ данных и помечает неполный ответ полем _truncated.
  • Повторы запросов. Таймаут одного запроса — 60 секунд. Сервер делает до трёх повторов при временной ошибке: GET — при сетевой ошибке, 429 и 5xx; POST и DELETE — только при 429, чтобы не повторить изменяющее действие. Задержка учитывает Retry-After и не превышает 30 секунд.
  • Боевые данные. У Метрики нет песочницы. Специализированные инструменты читают данные, но POST и DELETE через произвольный запрос меняют реальные объекты.
  • Нет фонового наблюдения. Сервер работает, когда его вызывает AI-приложение, и сам не следит за показателями. Если приложение поддерживает запланированные задания, можно настроить в нём периодический запрос отчёта.

Техническая документация

Поддержка

Нашли ошибку или не хватает сценария? Создайте issue или напишите в Telegram.

來源:README.md,提交 8c887d3

工具

8

auth_status

Статус подключения к Метрике

Показывает, подключена ли Яндекс Метрика: есть ли токен, откуда он взят (переменная окружения YANDEX_METRIKA_TOKEN или сохранённый вход), когда истекает и где лежит файл с сохранёнными данными. Ничего не отправляет в сеть и не показывает сам токен. Вызовите это, если инструменты Метрики отвечают, что подключение не настроено.

無需輸入參數。

start_login

Начать подключение Метрики

Первый шаг подключения Яндекс Метрики без правки конфигурации и без перезапуска клиента. Возвращает ссылку на страницу Яндекс OAuth. Покажите ссылку пользователю целиком и попросите: открыть её в браузере под аккаунтом, у которого есть доступ к нужным счётчикам, подтвердить доступ и прислать показанный код подтверждения. Полученный код передайте в finish_login. Код действует 10 минут. Сам по себе код бесполезен для постороннего: обменять его может только этот сервер.

無需輸入參數。

finish_login

Завершить подключение Метрики

Второй шаг подключения: обменивает код подтверждения из start_login на токен доступа, сохраняет его в файл только для владельца (0600) и сразу проверяет живым запросом к Метрике. После успеха остальные инструменты работают немедленно — перезапускать клиент не нужно. Код одноразовый и живёт 10 минут: если он не принят, вызовите start_login заново и попросите свежий.

輸入參數code必填

logout

Отключить Метрику

Удаляет сохранённый токен Метрики с диска. Токен, заданный переменной окружения YANDEX_METRIKA_TOKEN, не трогает — его нужно убирать из конфигурации клиента вручную. Доступ, выданный приложению, остаётся активным на стороне Яндекса: отозвать его можно в Яндекс ID.

無需輸入參數。

list_counters

Список счётчиков Метрики

Возвращает счётчики Яндекс Метрики, доступные токену (Management API). У каждого счётчика есть id, name и site2 (домен сайта) — id используется в get_statistics и list_goals. Фильтр по подстроке имени или сайта задаётся параметром `search`. На один сайт бывает несколько счётчиков (старый и новый, тестовый, отдельный для поддомена) — у каждого свои данные.

輸入參數offsetsearchperPage

list_goals

Список целей счётчика

Возвращает цели (конверсии), настроенные на счётчике Метрики (Management API). Идентификаторы целей нужны, чтобы запросить метрики конверсий (ym:s:goal<id>reaches / ym:s:goal<id>conversionRate) в get_statistics. counterId обязателен: id счётчика даёт list_counters.

輸入參數counterId必填

get_statistics

Статистика

Запрашивает Reporting API Яндекс Метрики (stat/v1/data) по счётчику. ПО УМОЛЧАНИЮ возвращает одну строку, агрегированную за период (без измерений), с visits/users/pageviews/bounceRate/avgVisitDurationSeconds. `dimensions` разбивает результат на строки (ym:s:date — динамика по дням, ym:s:lastTrafficSource — источники трафика, ym:s:deviceCategory — устройства), `metrics` задаёт нужные метрики — для конверсий это ym:s:goal<goalId>reaches / ym:s:goal<goalId>conversionRate (идентификаторы целей даёт list_goals). Префиксы не смешиваются: ym:s:* (визиты) и ym:pv:* (просмотры страниц) в одном запросе сочетаются только через filters. Ответ 400 «Incorrectly specified attribute» значит, что такого поля нет: не перебирать варианты имени, а взять поле из списка в `dimensions`. В ответе есть `totals` (итог по ВСЕМ строкам — для вопросов «сколько всего» суммировать не нужно), `total_rows` и `sampled`/`sample_share` (sampled=true означает, что данные приблизительные; для точных цифр нужно сузить период или передать accuracy=full). users — уникальные посетители за весь период: сумма users по дням их не даёт. counterId обязателен: id счётчика даёт list_counters.

輸入參數sortdate1date2limitoffsetfiltersmetricsaccuracymaxPagescounterId必填dimensionsautoPaginate另有 1 個

raw_request

Произвольный запрос к API Яндекс Метрики

Универсальный запрос: обращается напрямую к любому пути API Яндекс Метрики — например "management/v1/counters", "management/v1/counter/{id}/goals", "stat/v1/data". Нужен для эндпоинтов, у которых нет отдельного инструмента. `query` уходит в строку запроса, `body` отправляется как JSON для POST. GET выполняется свободно; POST и DELETE — это запись, им нужен confirmWrite=true.

輸入參數bodypath必填querymethodconfirmWrite

版本歷史

6
  1. v1.5.5最新Nov 1, 2026
  2. v1.5.4Oct 31, 2026
  3. v1.5.3Oct 31, 2026
  4. v1.5.1Oct 30, 2026
  5. v1.5.0Oct 30, 2026
  6. v1.4.1Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分