← Back to search

Yandex Metrica

askads Scanned 15d ago

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

B
82.9 / 100

Versions

1.0.0latest
first seen Jun 30, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 9

echo
annotations: none low

echo

secret string
auth_status
annotations: none low

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

start_login
annotations: none low

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

finish_login
annotations: none low

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

logout
annotations: none low

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

raw_request
annotations: none low

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

body record
get_statistics
annotations: none low

Запрашивает 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). В ответе есть `totals` (итог по ВСЕМ строкам — для вопросов «сколько всего» суммировать не нужно), `total_rows` и `sampled`/`sample_share` (sampled=true означает, что данные приблизительные; для точных цифр нужно сузить период или передать accuracy=full). Если counterId не передан, берётся YANDEX_METRIKA_COUNTER_ID.

list_counters
annotations: none low

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

list_goals
annotations: none low

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

Permissions 2

network medium
Server uses network capabilities via: fetch()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 29

low
Tool 'echo' has no annotations annotation_checker · 100%
low
Tool 'auth_status' has no annotations annotation_checker · 100%
low
Tool 'start_login' has no annotations annotation_checker · 100%
low
Tool 'finish_login' has no annotations annotation_checker · 100%
low
Tool 'logout' has no annotations annotation_checker · 100%
low
Tool 'raw_request' has no annotations annotation_checker · 100%
low
Tool 'get_statistics' has no annotations annotation_checker · 100%
low
Tool 'list_counters' has no annotations annotation_checker · 100%
low
Tool 'list_goals' has no annotations annotation_checker · 100%
high
Hardcoded OAuth client ID in askads-mcp-yandex-metrica-182056a/src/oauth.ts auth_checker · 85%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
info
package.json metadata manifest_parser · 100%
info
Tool: echo manifest_parser · 85%
info
Tool: auth_status manifest_parser · 85%
info
Tool: start_login manifest_parser · 85%
info
Tool: finish_login manifest_parser · 85%
info
Tool: logout manifest_parser · 85%
info
Tool: raw_request manifest_parser · 85%
info
Tool: get_statistics manifest_parser · 85%
info
Tool: list_counters manifest_parser · 85%
info
Tool: list_goals manifest_parser · 85%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (10) manifest_parser · 80%
medium
Hardcoded OAuth client ID in askads-mcp-yandex-metrica-182056a/src/oauth.ts oauth_scope_analyzer · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 124 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%