Yandex Metrica MCP

io.github.askadsPublished by GitHub account askadsv1.5.5Updated Nov 3, 2026

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

VerifiedSTDIODesktop onlyWeb Search & ScrapingData & Analytics

Overview

AI-generated overview

Local MCP server for Yandex Metrica that lets an assistant list counters and goals and pull website traffic, source and conversion reports.

What you can do
  • List counters and goals available to the connected Yandex account, with optional name or site filtering
  • Pull aggregated or dimensioned statistics for a counter: visits, users, pageviews, bounce rate, visit duration, sources, devices, dates
  • Query conversion metrics for specific goal IDs
  • Check connection status and run an in-chat OAuth login (start_login, finish_login) or remove the saved token (logout)
  • Send a raw request to any Yandex Metrica API path, including POST and DELETE when confirmWrite is set
When to use it
Useful when you want to ask plain-language questions about a site's Yandex Metrica data — traffic trends, traffic sources, device behaviour or goal conversions — and have the assistant fetch and explain the numbers without leaving the chat.
Requirements
Runs locally via npx, so Node.js 20 or newer is needed. No token is required up front: the server walks through a Yandex OAuth login in the chat and stores the token locally. Alternatively, set YANDEX_METRIKA_TOKEN (scope metrika:read); optional variables cover a default counter, language, timeout, retries, API base and a custom OAuth client ID. Network access to the Metrica API is required.
Before you install
The token is a secret and is saved to a local credentials file; logout removes only the local copy, so revoke app access in Yandex ID separately. There is no sandbox: raw_request with POST or DELETE changes real Metrica objects when confirmWrite is true and cannot be undone. Anonymous technical telemetry is sent by default, including error text fragments, and can be disabled with ASKADS_TELEMETRY=0. Large reports may be sampled or truncated.

Installation

In SourceWeft

  1. Open Yandex Metrica MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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.

Source: README.md at commit 8c887d3

Tools

8

auth_status

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

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

Takes no parameters.

start_login

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

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

Takes no parameters.

finish_login

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

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

Parameterscoderequired

logout

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

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

Takes no parameters.

list_counters

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

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

ParametersoffsetsearchperPage

list_goals

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

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

ParameterscounterIdrequired

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.

Parameterssortdate1date2limitoffsetfiltersmetricsaccuracymaxPagescounterIdrequireddimensionsautoPaginate+1 more

raw_request

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

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

ParametersbodypathrequiredquerymethodconfirmWrite

Version history

6
  1. v1.5.5LatestNov 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

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts