yandex-metrika-mcp-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@yandex-metrika-mcp-server@yandex-metrika-mcp-server get traffic stats for yesterday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Yandex Metrika MCP Server
MCP-сервер к API Яндекс Метрики. Покрыты все 108 методов; по умолчанию объявляются десять — те, которыми считают. Остальное включается одной переменной.
mcp-name: io.github.artgas1/yandex-metrika-mcp-server
npx -y yandex-metrika-mcp-serverФорк atomkraft/yandex-metrika-mcp (апстрим — Vadim Bezymianyi, MIT). С версии 2.0.0 инструменты не пишутся руками, а порождаются из спеки, собранной по официальной документации.
Покрытие
API | методов | из них в профиле | примеры инструментов |
Management | 95 (21 ресурс) | 4 |
|
Logs | 7 | — |
|
Stat | 6 | 6 |
|
Имя инструмента — metrika_<ресурс>_<действие>, где ресурс взят из URL самого API без переименований.
Поэтому metrika_goal_list однозначно отображается в GET /management/v1/counter/{id}/goals
и в свою страницу документации.
Related MCP server: Yandex Direct MCP
Контракт
Сервер переписан из-за двух наблюдавшихся отказов: он отдавал не то, что просили, и молча подмешивал фильтр. Отсюда четыре правила, каждое закрыто тестом.
Никакой молчаливой подмены. Что попросили — то и уходит в API. Сервер не досочиняет ни измерений, ни периода, ни фильтров.
Всё, что сервер добавил от себя, видно в ответе. Ответ приходит как
{"_meta": {...}, "data": {...}}, где_meta.applied_by_serverперечисляет добавленное, а_meta.notes— принятые за вызывающего решения.Отказ остаётся отказом. Ошибка API возвращается с
isError: trueи телом ответа Метрики. Повтор делается по статусу (429/500/502/503/504 и сетевые сбои), а не по подстроке в тексте; у 429 соблюдаетсяRetry-Afterс потолком 30 секунд. Число повторов всегда видно в_meta.retries.Обрезание выдачи видно. В
_metaедутrows_returned,rows_totalиtruncated— Метрика режет ответ по умолчанию, и молчать об этом нельзя. Если сервер сам урезал ответ по потолку длины, это отдельно объявлено в_meta.truncated_by_serverс числом выброшенных строк.Секреты не уезжают в ответ. У
metrika_measurement_deleteесть параметрtoken; в показанном_meta.request_urlего значение заменено наREDACTED. Сам OAuth-токен уходит только заголовком и в ответе не появляется никогда.
Фильтр роботов
В отчётах Stat API по умолчанию применяется собственный флаг робота Метрики, и только он:
ym:s:isRobot=='no'Он объявлен: виден в схеме инструмента, отключается параметром human_traffic_only: false
и всегда перечислен в _meta.applied_by_server. Если в запросе есть метрики ym:ad: или
ym:ev:, фильтр не применяется (Метрика отвечает на такое сочетание 400) — и это попадает
в _meta.notes, а не остаётся молчаливым исключением.
Своё условие задаётся переменной METRIKA_TRAFFIC_FILTER — целиком, включая isRobot,
если он нужен:
METRIKA_TRAFFIC_FILTER="ym:s:isRobot=='no' AND ym:s:browserName!='HeadlessChrome'"Это образец формы, а не рекомендация. Какой рез верен — зависит от того, какие боты ходят именно к вам: отсечка по стране, по заголовку браузера или по подсети осмысленна только на своих данных. Копировать чужой список бессмысленно и опасно: он вырежет живой трафик.
Заданное своё условие сервер называет в stderr при старте — оно меняет числа в каждом отчёте, и молчать об этом нельзя.
Сравнение периодов: ответ, который выглядит валидным
У metrika_stat_comparison и metrika_stat_comparison_drilldown даты периодов
необязательны, и Метрика на их отсутствие не ругается. Она подставляет собственное окно
(последняя неделя) в оба набора и возвращает сравнение периода с самим собой:
metrika_stat_comparison(ids, metrics) → totals a == b
query date1_a == date1_bОтказывать сервер не будет — запрос ушёл ровно тем, каким его собрали. Но такой ответ
приходит с пометкой в _meta.notes: и когда даты не заданы, и когда периоды совпали явно.
Как устроена спека
Публичного openapi.json у Метрики нет, но каждая страница метода сгенерирована из OpenAPI
движком Diplodoc и отдаётся как text/markdown. Семантика (тип, required, комбинатор,
ассертация) лежит в CSS-классах вида {.json-schema-property}, поэтому спека собирается
построчным сканером по классам, а не markdown-парсером.
npm run spec:fetch # скачать llms.txt и 108 страниц в .cache/docs/
npm run spec:build # разобрать их в spec/metrika-api.json
npm test # тесты спеки и схем инструментов
npm run smoke # живые вызовы к API (нужен YANDEX_API_KEY)spec/metrika-api.json коммитится — это состав API на момент сборки. Тест на дрейф сверяет
его с llms.txt: Яндекс добавил или удалил метод — тест краснеет.
Разбор привязан к версии генератора (Diplodoc Platform v5.57.3): вся семантика висит на его
классах, поэтому расхождение версии останавливает сборку спеки, а не молча портит её.
Запуск
По умолчанию объявляются десять инструментов из 108 — те, которыми считают. Управление счётчиками и целями, доступы и Logs API включаются переменной
METRIKA_PROFILE; подробности ниже, в разделе «Почему по умолчанию не всё».Спросить у самого сервера тоже можно: инструмент
metrika_catalog_listперечисляет, что объявлено, что скрыто и как это включить.
npm install
npm run build
YANDEX_API_KEY=<OAuth-токен с scope direct:api / metrika> npm startТокен — OAuth Яндекса, тот же, что используется для Директа и Вебмастера.
По умолчанию сервер сохраняет stdio-режим. Для одного локального процесса, к которому подключаются несколько MCP-клиентов, включите stateless Streamable HTTP:
YANDEX_API_KEY=<OAuth-токен> \
MCP_TRANSPORT=http MCP_HOST=127.0.0.1 MCP_PORT=13404 \
npm startEndpoint — http://127.0.0.1:13404/mcp. При loopback-привязке сервер также
проверяет Host, чтобы локальный endpoint нельзя было вызвать через DNS rebinding.
Подключение к клиенту
{
"mcpServers": {
"yandex-metrika-mcp": {
"command": "npx",
"args": ["-y", "yandex-metrika-mcp-server@3"],
"env": { "YANDEX_API_KEY": "..." }
}
}
}Из локальной сборки — то же самое, но "command": "node" и путь до build/index.js.
Мажор в строке запуска закреплён намеренно: смена мажорной версии меняет набор инструментов по умолчанию, и получать это молча при старте агента не нужно.
Переменные окружения
Переменная | По умолчанию | Что делает |
| — | OAuth-токен. Без него сервер не стартует. |
|
| Транспорт: |
|
| Адрес HTTP listener. Используется только при |
|
| Порт HTTP listener, целое число от 1 до 65535. |
|
| Какая часть каталога объявляется: |
| не задана |
|
| пусто | Своя выборка через запятую: раздел ( |
|
| Условие сегментации, добавляемое к отчётам Stat. Задаётся целиком. |
|
| Потолок длины ответа одного вызова. Выгрузка Logs API в него обычно не помещается — сутки визитов это сотни тысяч символов; урезание объявляется в |
| пусто | Подмена адреса API (прокси, заглушка в тестах). Факт подмены печатается в stderr. |
Как узнать, что скрыто, не открывая README
Инструмент metrika_catalog_list объявлен в любом профиле и отвечает из спеки, лежащей в
пакете, — ни токена, ни сети ему не нужно:
{
"profile": "METRIKA_PROFILE=core",
"api_methods_total": 108,
"api_methods_declared": 10,
"api_methods_hidden": 98,
"writes_enabled": false,
"declared_tools": { "Stat API — отчёты": ["metrika_stat_data", "…"] },
"hidden_tools": { "Management API — …": ["metrika_goal_create", "…"] },
"how_to_widen": ["METRIKA_PROFILE=read — …", "METRIKA_PROFILE=all вместе с METRIKA_ALLOW_WRITES=1 — …"]
}Он существует по простой причине: сервер, который что-то скрыл, обязан уметь сказать, что
именно и как это включить. instructions видит модель, но не человек — в интерфейс клиента
они не показываются; стартовую строку в stderr в обычной работе тоже никто не открывает. Без
этого инструмента узнать про остальные 98 можно было только придя сюда.
Список инструментов в ответе строится из того же отбора, по которому они регистрируются, — разойтись с реальностью ему негде, и это проверено тестом.
Почему по умолчанию не всё
Описания объявленных инструментов лежат в контексте модели, когда клиент их загрузил. Это
цена сервера, которую платят за сам факт подключения, а не за вызовы. Замер tools/list
(09.09.2026):
Профиль | Инструментов |
| токенов |
| 10 + каталог | 32 181 Б | 14,8 тыс. |
| 51 + каталог | 68 074 Б | ~31 тыс. — оценка |
| 108 + каталог | 158 301 Б | ~73 тыс. — оценка |
Замер core — 14,5 тысячи до появления каталога и 14,8 после: сам инструмент стоит около
670 байт схемы, примерно 2% набора. Его ответ не входит в эту цену — он платится только при
вызове.
Байты точные, их воспроизведёт любой: сериализуй ответ tools/list и посчитай длину.
С токенами сложнее, и здесь стоит сказать прямо.
⚠️ Замер честный только у core — его дал /context клиента, который считает
собственным токенизатором. Две другие строки пересчитаны из байтов по калибровке
2,17 байта на токен, снятой с той же строки core.
Ходовая эвристика «4 символа на токен» здесь врёт почти вдвое: она выведена на
английском тексте, а описания у этого сервера русские, и кириллица в BPE токенизируется
примерно вдвое хуже латиницы. Первая редакция этой таблицы была построена именно на ней и
называла для core 7,9k вместо 14,5k. Если считаешь бюджет контекста для сервера с
не-английскими описаниями — считай токенизатором, а не делением на четыре.
Состав core выведен из замера реального использования, а не из вкуса: шесть отчётов Stat
плюс справочники, без которых отчёт не собрать (metrika_counter_list, metrika_counter_get,
metrika_goal_list, metrika_segment_list). Порог веса стоит тестом — манифест не может
подорожать молча. Порог в тесте стоит на байтах: они не зависят ни от токенизатора, ни
от языка описаний.
Безопасность
Запись выключена по умолчанию, и меняющие инструменты не объявляются вовсе. Среди методов четырнадцать
DELETEи пять удаляющихPOST(.../measurement/delete,.../expense/delete,.../logrequest/{id}/cleanи т. д.). Цена ошибочного вызова — удалённый счётчик или цель без возможности восстановить историю. Модель не может позвать то, чего не видит вtools/list; как включить — сказано вinstructionsсервера.Аннотации проставлены на всех инструментах (
readOnlyHint,destructiveHint,idempotentHint,openWorldHint). Клиент по ним отличает чтение от удаления: удаление под глаголомPOSTпомечено разрушающим,PUT— тоже, потому что заменяет сущность целиком.Ответы Метрики — недоверенные данные. В отчётах лежат поисковые фразы, заголовки страниц, реферера и значения UTM, то есть строки, которые пишут посетители сайта. Любой может зайти на сайт по ссылке с текстом внутри и увидеть его в отчёте. У всех инструментов
openWorldHint: true, а в_meta.notesотчётов и выгрузок едет напоминание, что это данные, а не инструкции.stdio остаётся транспортом по умолчанию. HTTP включается только явно через
MCP_TRANSPORT=http; безопасный дефолт слушает127.0.0.1и проверяетHost.
Политика приватности
Сервер не собирает, не хранит и никуда не передаёт данные о вас. Ни телеметрии, ни аналитики, ни обращений к серверам автора — их не существует: под этот пакет не поднято никакой инфраструктуры.
Единственный сетевой адресат — https://api-metrika.yandex.net. Токен читается из
YANDEX_API_KEY в память процесса и никуда не пишется: ни в файл, ни в stdout, ни в тело
ответа. Данные отчётов не кэшируются на диск и не переживают процесс.
Данные, которые вы запрашиваете, обрабатывает Яндекс как оператор Метрики — на это распространяется его политика, а не эта.
Полный текст: PRIVACY.md.
Установка одним файлом (MCPB)
Для Claude Desktop и других клиентов, понимающих MCP-бандлы, есть .mcpb-файл — он лежит в
релизах. Открываете файл, вводите
токен в окне установки — всё.
Бандл собирается из того же кода тем же тегом (npm run mcpb), а его манифест генерируется
из package.json и профиля — не пишется руками, поэтому разойтись с сервером ему негде; это
проверяется тестом.
⚠️ В бандле нельзя включить запись. Цена ошибочного вызова — удалённый счётчик или цель без возможности восстановить историю, и щёлкать таким переключателем в окне установки нечего. Нужна запись — ставьте пакет с npm и включайте её осознанно, переменной окружения.
Без MCP: скилл и командная строка
MCP подходит не всем и не всегда: клиент может не уметь MCP вовсе, а описания инструментов занимают контекст постоянно — они лежат в нём, пока сервер подключён, вызываешь ты их или нет.
Для этого случая тот же сервер умеет запускаться командой:
npx -y yandex-metrika-mcp-server catalog --search goal
npx -y yandex-metrika-mcp-server describe metrika_stat_data
npx -y yandex-metrika-mcp-server call metrika_stat_data \
--ids <ID счётчика> --dimensions ym:s:trafficSource \
--metrics ym:s:visits,ym:s:users --date1 7daysAgo --date2 todayПоверх этого лежит скилл — папка с инструкцией для агента, которая ставится одной строкой:
npx skills add artgas1/yandex-metrika-mcp # в текущий проект
npx skills add artgas1/yandex-metrika-mcp -g # глобально, во все проектыСкилл не добавляет клиенту инструментов и ничего не держит в контексте: он читается только когда речь зашла о Метрике. Внутри — та же команда, справочник всех 108 методов и словарь измерений.
Где он работает. Установщик кладёт один экземпляр в .agents/skills/yandex-metrika/
и симлинкует его в папки конкретных агентов. Проверено запуском на двух:
агент | обнаружение | чем проверено |
Claude Code |
|
|
Codex |
| называет путь к |
Установщик заявляет ещё около двадцати агентов через тот же универсальный каталог (Amp, Cline, Antigravity, Augment и другие) — там мы не проверяли.
Почему это не вторая реализация. CLI не делает ни одного собственного запроса: он разбирает
аргументы и зовёт executeMethod — ту же функцию, что и MCP-инструменты. Отсюда одинаковые
гарантии: фильтр роботов в отчётах, потолок ответа с распиской об урезании, вычистка секретов
из показываемого URL, повтор по статусу. Разойтись им негде, потому что расходиться нечему.
Справочник методов внутри скилла генерируется из spec/metrika-api.json — той самой спеки,
которая обновляется из документации Яндекса ежедневно. Тест сверяет закоммиченный файл с тем,
что сгенерировалось бы сейчас, поэтому «скилл отстал от API» здесь красное, а не незаметное.
Два сознательных отличия команды от MCP:
MCP | команда | |
| действует, по умолчанию | не действует — доступны все 108 методов |
| нужен для меняющих данные | нужен так же |
Профиль существует, чтобы не платить контекстом за описания невызванных инструментов; у команды в терминале такой цены нет. Гейт записи — про другое: удалённую цель нечем восстановить, и послабление здесь было бы дырой в обход сервера.
Проверки
Не макет — запустите сами
npm run demoВсё на записи приходит из ответа сервера по JSON-RPC: строка добавленного фильтра — из _meta.applied_by_server, строки отчёта — из тела ответа. Ни токена, ни сети: запросы уводятся на локальную заглушку, поэтому прогон повторяется где угодно, включая CI. Переснять запись — npm run demo:record.
npm test # 87 тестов: спека, схемы, протокол MCP, поверхность, бандл, демо
npm run protocol # только протокольные: stdio, tools/list, tools/call, отказы
npm run smoke # живые вызовы к API (нужен YANDEX_API_KEY)Протокольные тесты поднимают сервер как подпроцесс и говорят с ним по JSON-RPC — тем же
способом, каким это делает клиент. Сеть при этом не нужна: METRIKA_API_BASE уводит запросы
на заглушку. Проверяется в том числе то, чего не видно изнутри: что в stdout не попадает
ничего, кроме JSON-RPC, что отказ API приезжает как isError, а не как успешный текст, и что
запись действительно заблокирована.
Чего в проверках НЕТ
Евала выбора инструмента. Это единственная проверка, которую не заменяют ни снапшот схемы, ни протокольный тест: описания могут быть синтаксически безупречны, а модель всё равно возьмёт не тот инструмент. Тесты этого не видят по построению — они зовут инструмент по имени, то есть выбор уже сделан за модель.
Здесь это осознанный пропуск, а не забытый пункт. Профиль по умолчанию — десять инструментов, из них шесть отчётов Stat различаются формой ответа, а не темой, и путать их модели особо не с чем. Евал становится нужен, когда поверхность по умолчанию расширяется или когда в неё попадают инструменты с пересекающимися описаниями, — тогда его надо писать до расширения, а не после.
Что изменилось в 2.0.0
Удалены 26 инструментов-обёрток над пресетами Stat API (get_visits, sources_summary,
get_page_performance и прочие). Они покрывали малую часть API, зашивали измерения и период
в код и не давали задать произвольный запрос. Их заменяют metrika_stat_*, принимающие
параметры Stat API как есть.
Появились методы, которых не было вовсе: список счётчиков, цели, сегменты, фильтры, разрешения, расходы, офлайн-конверсии и весь Logs API. Раньше идентификатор счётчика приходилось знать заранее — теперь его можно найти.
Что изменилось в 2.1.0
Сервер довели до состояния, в котором его не страшно оставить агенту.
Аннотации на всех 108 инструментах. До этого клиент не отличал
metrika_counter_listотmetrika_counter_delete.Запись выключена по умолчанию (
METRIKA_ALLOW_WRITES).Найден и починен дефект разбора документации. Ассертации размечены строкой, где значение стоит после закрывающей скобки класса, — распознаватель свойств заякорен на конец строки и такие строки не матчил вовсе. В итоге до спеки не доезжало ни одного примера, значения по умолчанию или границы, а часть их падала в описание соседнего поля. Сейчас в спеке 288 примеров, 69 значений по умолчанию и 155 ограничений; ограничения переносятся в схему инструмента, примеры и значения по умолчанию — в описания параметров.
Найдена и починена потеря обязательности. Параметры вида «один из N типов» (
goalу создания и правки цели,grantу выдачи доступа) собирались какz.unknown(), а он в zod необязателен, — обязательное поле уезжало клиенту как опциональное. Теперь это объединение реальных форм, и обязательность на месте.Ссылки на сущности разворачиваются на один уровень: у 23 параметров тела вместо свободного объекта видны настоящие поля.
Послабления на входе там, где они безвредны. Число строкой, булево словом, список через запятую в строке запроса — принимаются; в теле запроса, где важен точный JSON, не принимаются.
Потолок длины ответа с объявленным урезанием: выгрузка Logs API бывает в сотни мегабайт.
Вычистка секретов из показанного
request_url.Повтор на 429 с соблюдением
Retry-After.SDK обновлён до 1.30 — на 1.17 висели три опубликованных уязвимости, две высокие;
npm audit --audit-level=highтеперь часть CI.Починена джоба дрейфа в CI. Она запускала тесты через
| teeбезpipefail, поэтому код возврата брался уteeи джоба оставалась зелёной при любом падении теста.
Available Tools
11 toolsmetrika_catalog_listЧто этот сервер умеет и что скрытоARead-onlyIdempotent
Список инструментов Яндекс Метрики: какие объявлены сейчас, какие скрыты профилем и как их включить. Зови, когда нужного инструмента Метрики не видно в списке или пользователь спрашивает, что ещё умеет сервер. Не обращается к API Метрики и не требует токена.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds genuinely useful behavior beyond annotations: it makes no API call to Metrika and requires no token, preventing the agent from assuming the token/auth obligations that sibling data tools carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what it lists, when to invoke it, and the behavioral caveat about no API/token. The core function is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description covers purpose, invocation triggers, and behavior. It also describes the return content (declared tools, hidden tools, enablement instructions), which substitutes for the missing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the schema covers 100% and the baseline of 4 applies. The description confirms the tool is callable without arguments and states what the empty call yields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it lists Yandex Metrika tools with their current visibility status, profile-hidden tools, and enablement instructions. It is clearly distinguished from all 10 siblings (stat_*, counter_*, goal_*, segment_* data tools) because it is a meta-tool about the server's own catalog, not a data-access tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger conditions: call when the needed Metrika tool is not visible in the list or when the user asks what the server can do. It doesn't name specific sibling alternatives, and the when-not is only implicit (use it for discovery, not data operations), so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_counter_getИнформация о счетчикеBRead-onlyIdempotent
Информация о счетчике. Возвращает информацию об указанном счетчике. [GET https://api-metrika.yandex.net/management/v1/counter/{counterId}] Документация: https://yandex.ru/dev/metrika/ru/management/openapi/counter/counter.md
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | Один или несколько дополнительных параметров возвращаемого объекта. Названия дополнительных параметров указываются в любом порядке через запятую, без пробелов. Например: `field=goals,mirrors,grants,filters,operation,counter_flags,measurement_tokens`. | |
| callback | No | Функция обратного вызова, которая обрабатывает ответ API. | |
| counterId | Yes | Идентификатор счетчика, информацию о котором вы хотите получить. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructiveHint, so the main safety profile is covered elsewhere. The description adds the concrete GET endpoint and a documentation link, but no additional behavioral traits such as authentication, rate limits, or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and includes the endpoint URL and documentation link, which are useful. However, the opening clause 'Информация о счетчике' is redundant with the second sentence 'Возвращает информацию об указанном счетчике'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only get-with-id tool, the schema, annotations, endpoint URL, and documentation link are mostly sufficient for an agent to call it correctly. The lack of an output schema and vague 'returns information' wording leave room for improvement, but the definition does not omit critical invocation requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: counterId, field, and callback all have descriptions in the input schema. The tool description itself adds no parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Возвращает') and identifies a concrete resource ('информацию об указанном счетчике'), so an agent knows it is a get-by-id operation for a single counter. It does not explicitly contrast with sibling metrika_counter_list or the statistics tools, but the phrase 'указанном счетчике' signals the narrowed scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for retrieving details of a specific counter, and the required counterId parameter reinforces that context. However, it does not name sibling alternatives or state when to use metrika_counter_list instead, so usage guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_counter_listСписок доступных счетчиковBRead-onlyIdempotent
Список доступных счетчиков. Возвращает список существующих счетчиков, доступных пользователю. [GET https://api-metrika.yandex.net/management/v1/counters] Документация: https://yandex.ru/dev/metrika/ru/management/openapi/counter/counters.md
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Сортировка: По умолчанию: Default. | |
| type | No | Фильтр по типу счетчика. | |
| field | No | Один или несколько дополнительных параметров возвращаемого объекта. Названия дополнительных параметров указываются в любом порядке через запятую, без пробелов. Например: `field=goals,mirrors,grants,filters,operations,counter_flags,measurement_tokens`. | |
| offset | No | Порядковый номер счетчика, с которого начнется выдача списка счетчиков. Первый счетчик имеет номер 1. Максимальный номер — 100 000, поскольку пользователь не может иметь более 100 000 счётчиков. По умолчанию: 1. | |
| robots | No | Учитывать ли роботов. По умолчанию: true. | |
| status | No | Фильтр по статусу счетчика. По умолчанию включен. По умолчанию: Active. | |
| reverse | No | Выдать счетчики в обратном или прямом порядке сортировки. По умолчанию: true. | |
| callback | No | Функция обратного вызова, которая обрабатывает ответ API. | |
| favorite | No | Фильтр по счетчикам, которые были добавлены в **Избранные**. По умолчанию: false. | |
| label_id | No | Фильтр по метке. | |
| per_page | No | Количество счетчиков, которые вы хотите получить. Максимум за один запрос — 10 000 счётчиков. По умолчанию: 1000. | |
| permission | No | Фильтр по уровню доступа к счетчику. Параметр может содержать несколько значений, разделенных запятой: | |
| counter_ids | No | Список идентификаторов счетчиков, которые вы хотите получить. | |
| search_string | No | Фильтр по строке. Можно указать: |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the description does not need to establish that this is a safe read operation. It adds the concrete GET endpoint and a documentation link, plus the 'available to the user' scoping, which is context beyond annotations, but it does not describe pagination behavior or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and includes useful endpoint and documentation links, but the opening phrase 'Список доступных счетчиков' redundantly repeats the title before the next sentence restates it. It is efficient overall, but not every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema documents the parameters thoroughly and annotations signal a safe read-only operation, so the description is adequate for a simple list call. However, there is no output schema inherited, and the description does not explain the response envelope, pagination, or metadata beyond saying it returns a list of counters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 14 parameters are already documented in the input schema. The description adds no additional parameter-level meaning, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Возвращает список существующих счетчиков') and scopes it to counters available to the user. It is easy to distinguish from the sibling metrika_counter_get by the 'list' semantics, though the description does not explicitly call out that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as metrika_counter_get or the metrika_stat_* reporting tools. The intended use is only implied by the word 'list', and no exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_goal_listСписок целейARead-onlyIdempotent
Список целей. Возвращает информацию о целях счетчика. [GET https://api-metrika.yandex.net/management/v1/counter/{counterId}/goals] Документация: https://yandex.ru/dev/metrika/ru/management/openapi/goal/goals.md
| Name | Required | Description | Default |
|---|---|---|---|
| callback | No | Функция обратного вызова, которая обрабатывает ответ API. | |
| counterId | Yes | Идентификатор счетчика, список целей которого вы хотите получить. | |
| useDeleted | No | Информация об удаленных целях. По умолчанию: false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds context about being a GET request and provides documentation link, but does not disclose behavior beyond that, such as pagination limits, response structure, or error conditions. With annotations covering safety, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with three sentences. It front-loads the purpose, then provides the API endpoint and a documentation link. The documentation link could be considered additional but is useful for deeper context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a read-only list operation with a simple schema (3 parameters, 1 required) and annotations cover safety, the description is adequately complete. It does not explain return values, but without an output schema, agents may wonder about the response format. However, the documentation link compensates slightly. It is not overly complex.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already described in the schema. The description does not add extra meaning beyond what the schema provides, but it does mention the resource (goals) that the counterId refers to. The description does not elaborate on the callback parameter's usage or the useDeleted flag beyond schema defaults, but schema is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states that it returns information about goals of a counterched in a clear verb and resource. However, it does not distinguish from sibling tools like metrika_segment_list or metrika_counter_get, which could be confused for similar list operations. The inclusion of the API endpoint adds specificity but less differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to list goals for a specific counter, but it does not explicitly state when to use it over alternatives. It does not mention prerequisites like the counterId being valid or user permissions. No explicit exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_segment_listСписок сегментов для счетчикаARead-onlyIdempotent
Список сегментов для счетчика. Возвращает список сегментов, созданных с помощью API и относящихся к заданному счетчику. [GET https://api-metrika.yandex.net/management/v1/counter/{counterId}/apisegment/segments] Документация: https://yandex.ru/dev/metrika/ru/management/openapi/segment/getSegmentsForCounter.md
| Name | Required | Description | Default |
|---|---|---|---|
| counterId | Yes | Идентификатор счетчика. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructiveHint, so the description's main added value is the API-created scope and the GET endpoint. It does not contradict the annotations, but it also does not add details like pagination, response shape, or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short, readable, and front-loaded with the main purpose. The first sentence is somewhat redundant with the title, but the second sentence plus the endpoint and documentation links provide useful, compact context with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only, idempotent GET operation with rich annotations, the description is sufficiently complete: it names the resource, the counter scope, and the endpoint. The lack of output schema details is mitigated by the tool's low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage: counterId is documented as 'Идентификатор счетчика.' The description references the counter but adds no additional meaning beyond the schema, which is acceptable at the baseline for complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb, 'Возвращает список', and identifies the exact resource: API-created segments belonging to a given counter. This clearly distinguishes it from sibling tools such as metrika_goal_list or metrika_counter_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use the tool: when you need API-created segments for a specific counter. The qualifier 'созданных с помощью API' acts as an implicit exclusion of manually created segments, though the description does not explicitly name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_stat_bytimeПолучение данных по времениARead-onlyIdempotent
Получение данных по времени. Позволяет получить данные с разбивкой по времени (например, по дням, неделям, месяцам). Используйте данный тип запроса для построения графиков и отслеживания динамики. [GET https://api-metrika.yandex.net/stat/v1/data/bytime] Документация: https://yandex.ru/dev/metrika/ru/stat/openapi/bytime.md
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Идентификаторы счетчиков, через запятую. Пример: 44147844,2215573. | |
| lang | No | Язык. | |
| date1 | No | Дата начала периода выборки в формате YYYY-MM-DD. Также используйте значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: 6daysAgo. | |
| date2 | No | Дата окончания периода выборки в формате YYYY-MM-DD. Также используйте значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: today. | |
| group | No | Группировка данных по времени: По умолчанию: week. | |
| preset | No | [Шаблон отчета](https://yandex.ru/dev/metrika/ru/stat/presets.md). Пример: sources_summary. | |
| pretty | No | Задает форматирование результата. Чтобы использовать форматирование, укажите значение `true`. По умолчанию: false. | |
| filters | No | Фильтр [сегментации](https://yandex.ru/dev/metrika/ru/stat/segmentation.md). | |
| metrics | Yes | Список метрик, разделенных запятой. Пример: ym:s:pageviews. | |
| row_ids | No | Выбор строк для построения графиков. Содержит перечисление списков ключей. | |
| accuracy | No | Размер выборки, используемой для отчета. Позволяет управлять [семплированием](https://yandex.ru/dev/metrika/ru/stat/sampling.md) (количеством визитов, использованных при расчете итогового значения). | |
| callback | No | Функция обратного вызова, которая обрабатывает ответ API. | |
| timezone | No | Часовой пояс в формате ±hh:mm в диапазоне [-23:59; +23:59] (знак плюса нужно передавать как `%2B`), Пример: +03:00. | |
| top_keys | No | Задает количество строк результата, если не указан параметр `row_ids`. Максимальное количество строк: 30. По умолчанию: 7. | |
| keys_sort | No | Список группировок и метрик, разделенных запятой, по которым осуществляется сортировка. По умолчанию сортировка производится по убыванию (указан знак `-` перед группировкой или метрикой). Чтобы отсортировать данные по возрастанию, удалите знак `-`. | |
| dimensions | No | Список группировок, разделенных запятой. Пример: ym:s:trafficSource. | |
| annotation_groups | No | Группы примечаний, разделенные запятой, которые должны вернуться в ответе. | |
| include_undefined | No | Включает в ответ строки, для которых значения группировок не определены. Влияет только на первую группировку. По умолчанию выключено. | |
| proposed_accuracy | No | Если параметр выставлен в `true`, API имеет право автоматически увеличивать accuracy до рекомендованного значения.Когда идет запрос в маленькую таблицу с очень маленьким семплингом, параметр поможет получить осмысленные результаты. | |
| human_traffic_only | No | Резать роботов. По умолчанию true. Добавляет к filters: ym:s:isRobot=='no'. Не применяется к метрикам и измерениям ym:ad: и ym:ev: — Метрика отвечает на них 400. | |
| include_annotations | No | Признак включения в ответ примечания. По умолчанию выключено. По умолчанию: false. | |
| direct_client_logins | No | Логины клиентов Яндекс Директа, через запятую. Могут использоваться для формирования отчета [Директ-расходы](https://yandex.ru/dev/metrika/ru/stat/direct-clicks.md). Пример: login1,login2. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the GET endpoint and the time-series behavior, but it does not describe response format, pagination, authentication needs, or limitations. It is consistent with the annotations and adds modest behavioral context beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact but somewhat redundant: the first sentence restates the title, and the second partially repeats it before adding the useful example breakdown. The endpoint URL and documentation link are valuable, though a merged, front-loaded sentence would be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 22-parameter API with no output schema, the description gives the core purpose, endpoint, and documentation link, but does not describe what the returned data looks like or how the time grouping maps to API output. It is adequate for tool selection but not fully self-contained for a correct call without referring to docs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description adds conceptual context for the grouping behavior ('by days, weeks, months'), which relates to the group parameter, but it does not systematically explain parameters beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (Yandex Metrika statistics) and the key behavior: retrieving data with a time breakdown (by days, weeks, months). It identifies the query type for charts and dynamics tracking, though it does not explicitly differentiate itself from sibling tools like metrika_stat_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this query type for building charts and tracking dynamics, which gives a clear when-to-use context. It does not mention when not to use it or name alternative tools, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_stat_comparisonСравнение сегментовARead-onlyIdempotent
Сравнение сегментов. Позволяет сравнить два сегмента данных, указанные в запросе. Сегменты идентифицируются как сегмент А и сегмент B. Для каждого сегмента можно задать разные диапазоны дат и фильтры сегментации. Данные будут представлены в виде таблицы. [GET https://api-metrika.yandex.net/stat/v1/data/comparison] Документация: https://yandex.ru/dev/metrika/ru/stat/openapi/comparison_1.md
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Идентификаторы счетчиков, через запятую. Пример: 44147844,2215573. | |
| lang | No | Язык. | |
| sort | No | Список группировок и метрик, разделенных запятой, по которым осуществляется сортировка. По умолчанию сортировка производится по убыванию (указан знак `-` перед группировкой или метрикой). Чтобы отсортировать данные по возрастанию, удалите знак `-`. | |
| limit | No | Количество элементов на странице выдачи. По умолчанию: 100. | |
| offset | No | Индекс первой строки выборки, начиная с 1. По умолчанию: 1. | |
| preset | No | [Шаблон отчета](https://yandex.ru/dev/metrika/ru/stat/presets.md). Пример: sources_summary. | |
| pretty | No | Задает форматирование результата. Чтобы использовать форматирование, укажите значение `true`. По умолчанию: false. | |
| date1_a | No | Дата начала периода выборки для сегмента A в формате YYYY-MM-DD. Также поддерживаются значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: 6daysAgo. | |
| date1_b | No | Дата начала периода выборки для сегмента B в формате YYYY-MM-DD. Также поддерживаются значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: 6daysAgo. | |
| date2_a | No | Дата окончания периода выборки для сегмента A в формате YYYY-MM-DD. Также поддерживаются значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: today. | |
| date2_b | No | Дата окончания периода выборки для сегмента B в формате YYYY-MM-DD. Также поддерживаются значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: today. | |
| filters | No | Фильтр [сегментации](https://yandex.ru/dev/metrika/ru/stat/segmentation.md). | |
| metrics | Yes | Список метрик, разделенных запятой. Пример: ym:s:pageviews. | |
| accuracy | No | Размер выборки, используемой для отчета. Позволяет управлять [семплированием](https://yandex.ru/dev/metrika/ru/stat/sampling.md) (количеством визитов, использованных при расчете итогового значения). | |
| callback | No | Функция обратного вызова, которая обрабатывает ответ API. | |
| timezone | No | Часовой пояс в формате ±hh:mm в диапазоне [-23:59; +23:59] (знак плюса нужно передавать как `%2B`), Пример: +03:00. | |
| filters_a | No | Фильтр сегментации для сегмента A. | |
| filters_b | No | Фильтр сегментации для сегмента A. | |
| dimensions | No | Список группировок, разделенных запятой. Пример: ym:s:trafficSource. | |
| include_undefined | No | Включает в ответ строки, для которых значения группировок не определены. Влияет только на первую группировку. По умолчанию выключено. | |
| proposed_accuracy | No | Если параметр выставлен в `true`, API имеет право автоматически увеличивать accuracy до рекомендованного значения.Когда идет запрос в маленькую таблицу с очень маленьким семплингом, параметр поможет получить осмысленные результаты. | |
| human_traffic_only | No | Резать роботов. По умолчанию true. Добавляет к filters: ym:s:isRobot=='no'. Не применяется к метрикам и измерениям ym:ad: и ym:ev: — Метрика отвечает на них 400. | |
| direct_client_logins | No | Логины клиентов Яндекс Директа, через запятую. Могут использоваться для формирования отчета [Директ-расходы](https://yandex.ru/dev/metrika/ru/stat/direct-clicks.md). Пример: login1,login2. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar for the description is lower. It adds the HTTP GET endpoint and states the response arrives as a table. It does not go deeper — nothing about pagination, sampling behavior, or limits — but nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact — four sentences conveying the core concept, endpoint, and documentation link. The first sentence slightly restates the title, but the content is otherwise front-loaded and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with 23 fully documented parameters and no output schema, the description gives the essential conceptual model (A/B segments, per-segment dates and filters, table output) plus an endpoint and a full documentation link. It could add return-value or pagination details since no output schema exists, but the annotations and 100% schema coverage keep this adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the 23 parameters is already documented and the baseline is 3. The description adds a mild semantic layer by explaining the A/B pairing, which helps the agent understand date1_a/date1_b/date2_a/date2_b and filters/filters_a/filters_b as per-segment groups. It lists no parameter syntax or examples beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation — comparing two data segments (сегмент А и сегмент B) — with a clear verb, resource, and the ability to set distinct date ranges and filters per segment. This distinguishes it from sibling stat tools like metrika_stat_data or metrika_stat_pivot. However, it doesn't explicitly call out the closest sibling, metrika_stat_comparison_drilldown, leaving some differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is only implied: the tool is for comparing two segments with different date ranges and filters, which the description states. There is no explicit when-to-use vs. alternatives guidance, no exclusions, and no mention of when metrika_stat_data or metrika_stat_comparison_drilldown would be more appropriate. The docs link is provided, but the description itself leaves routing decisions to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_stat_comparison_drilldownСравнение - drill downARead-onlyIdempotent
Сравнение - drill down. С помощью данного метода можно комбинировать методы Drill down и Сравнение сегментов. Таким образом позволяет получить данные по ветвям дерева для сравнения сегментов. Для каждого значения группировки API возвращает два набора метрик. Например, для сегмента A и сегмента B. Для каждого сегмента можно задать разные диапазоны дат и фильтры сегментации. [GET https://api-metrika.yandex.net/stat/v1/data/comparison/drilldown] Документация: https://yandex.ru/dev/metrika/ru/stat/openapi/comparison_drilldown.md
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Идентификаторы счетчиков, через запятую. Пример: 44147844,2215573. | |
| lang | No | Язык. | |
| sort | No | Список группировок и метрик, разделенных запятой, по которым осуществляется сортировка. По умолчанию сортировка производится по убыванию (указан знак `-` перед группировкой или метрикой). Чтобы отсортировать данные по возрастанию, удалите знак `-`. | |
| date1 | No | Дата начала периода выборки в формате YYYY-MM-DD. Также используйте значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: 6daysAgo. | |
| date2 | No | Дата окончания периода выборки в формате YYYY-MM-DD. Также используйте значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: today. | |
| limit | No | Количество элементов на странице выдачи. По умолчанию: 100. | |
| offset | No | Индекс первой строки выборки, начиная с 1. По умолчанию: 1. | |
| preset | No | [Шаблон отчета](https://yandex.ru/dev/metrika/ru/stat/presets.md). Пример: sources_summary. | |
| pretty | No | Задает форматирование результата. Чтобы использовать форматирование, укажите значение `true`. По умолчанию: false. | |
| date1_a | No | Дата начала периода выборки для сегмента A в формате YYYY-MM-DD. Также поддерживаются значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: 6daysAgo. | |
| date1_b | No | Дата начала периода выборки для сегмента B в формате YYYY-MM-DD. Также поддерживаются значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: 6daysAgo. | |
| date2_a | No | Дата окончания периода выборки для сегмента A в формате YYYY-MM-DD. Также поддерживаются значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: today. | |
| date2_b | No | Дата окончания периода выборки для сегмента B в формате YYYY-MM-DD. Также поддерживаются значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: today. | |
| filters | No | Фильтр [сегментации](https://yandex.ru/dev/metrika/ru/stat/segmentation.md). | |
| metrics | Yes | Список метрик, разделенных запятой. Пример: ym:s:pageviews. | |
| accuracy | No | Размер выборки, используемой для отчета. Позволяет управлять [семплированием](https://yandex.ru/dev/metrika/ru/stat/sampling.md) (количеством визитов, использованных при расчете итогового значения). | |
| callback | No | Функция обратного вызова, которая обрабатывает ответ API. | |
| timezone | No | Часовой пояс в формате ±hh:mm в диапазоне [-23:59; +23:59] (знак плюса нужно передавать как `%2B`), Пример: +03:00. | |
| filters_a | No | Фильтр сегментации для сегмента A. | |
| filters_b | No | Фильтр сегментации для сегмента A. | |
| parent_id | No | Выбор строки для дальнейшего развертывания. Состоит из json-списка ключей. | |
| dimensions | No | Список группировок, разделенных запятой. Пример: ym:s:trafficSource. | |
| include_undefined | No | Включает в ответ строки, для которых значения группировок не определены. Влияет только на первую группировку. По умолчанию выключено. | |
| proposed_accuracy | No | Если параметр выставлен в `true`, API имеет право автоматически увеличивать accuracy до рекомендованного значения.Когда идет запрос в маленькую таблицу с очень маленьким семплингом, параметр поможет получить осмысленные результаты. | |
| human_traffic_only | No | Резать роботов. По умолчанию true. Добавляет к filters: ym:s:isRobot=='no'. Не применяется к метрикам и измерениям ym:ad: и ym:ev: — Метрика отвечает на них 400. | |
| direct_client_logins | No | Логины клиентов Яндекс Директа, через запятую. Могут использоваться для формирования отчета [Директ-расходы](https://yandex.ru/dev/metrika/ru/stat/direct-clicks.md). Пример: login1,login2. | |
| only_expandable_undefined | No | Удалять из результата нераскрывающиеся неопределённые значения. Имеет смысл только в случае include_undefined=true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive hints. The description adds behavioral context: for each grouping value the API returns two sets of metrics, and per-segment date ranges and filters can be set. This goes beyond annotations and helps the agent understand the response shape and configurability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably compact, starting with the core purpose and then elaborating with a concrete example of return structure. It includes the endpoint URL and documentation link but is not overly verbose. The structure is clear and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 27 parameters and no output schema, the description is insufficient. It omits crucial details about how the drilldown mechanism works (e.g., parent_id, tree traversal), pagination, error handling, and how the two metric sets are structured in the response. The documentation link is not accessible to the agent, so the description alone does not provide enough guidance for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all 27 parameters have description in the input schema. The tool description adds minimal parameter-specific insight, only mentioning per-segment filters and dates in general terms. It does not compensate beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this method combines Drill down and Comparison segment methods, and explicitly explains it returns two sets of metrics per grouping for comparing segments. It names the endpoint and distinguishes itself from the sibling tools by describing the combination behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'using this method you can combine Drill down and Comparison' which gives clear context for when to use it relative to the separate tools. However, it does not explicitly state when NOT to use it or mention alternatives, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_stat_dataТаблицаCRead-onlyIdempotent
Таблица. Предоставляет доступ к статистическим данным Яндекс Метрики, включая данные, доступные в отчетах. Возвращает результат в виде таблицы. [GET https://api-metrika.yandex.net/stat/v1/data] Документация: https://yandex.ru/dev/metrika/ru/stat/openapi/data_1.md
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Идентификаторы счетчиков, через запятую. Пример: 44147844,2215573. | |
| lang | No | Язык. | |
| sort | No | Список группировок и метрик, разделенных запятой, по которым осуществляется сортировка. По умолчанию сортировка производится по убыванию (указан знак `-` перед группировкой или метрикой). Чтобы отсортировать данные по возрастанию, удалите знак `-`. | |
| date1 | No | Дата начала периода выборки в формате YYYY-MM-DD. Также используйте значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: 6daysAgo. | |
| date2 | No | Дата окончания периода выборки в формате YYYY-MM-DD. Также используйте значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: today. | |
| limit | No | Количество элементов на странице выдачи. По умолчанию: 100. | |
| offset | No | Индекс первой строки выборки, начиная с 1. По умолчанию: 1. | |
| preset | No | [Шаблон отчета](https://yandex.ru/dev/metrika/ru/stat/presets.md). Пример: sources_summary. | |
| pretty | No | Задает форматирование результата. Чтобы использовать форматирование, укажите значение `true`. По умолчанию: false. | |
| filters | No | Фильтр [сегментации](https://yandex.ru/dev/metrika/ru/stat/segmentation.md). | |
| metrics | Yes | Список метрик, разделенных запятой. Пример: ym:s:pageviews. | |
| accuracy | No | Размер выборки, используемой для отчета. Позволяет управлять [семплированием](https://yandex.ru/dev/metrika/ru/stat/sampling.md) (количеством визитов, использованных при расчете итогового значения). | |
| callback | No | Функция обратного вызова, которая обрабатывает ответ API. | |
| timezone | No | Часовой пояс в формате ±hh:mm в диапазоне [-23:59; +23:59] (знак плюса нужно передавать как `%2B`), Пример: +03:00. | |
| dimensions | No | Список группировок, разделенных запятой. Пример: ym:s:trafficSource. | |
| include_undefined | No | Включает в ответ строки, для которых значения группировок не определены. Влияет только на первую группировку. По умолчанию выключено. | |
| proposed_accuracy | No | Если параметр выставлен в `true`, API имеет право автоматически увеличивать accuracy до рекомендованного значения.Когда идет запрос в маленькую таблицу с очень маленьким семплингом, параметр поможет получить осмысленные результаты. | |
| human_traffic_only | No | Резать роботов. По умолчанию true. Добавляет к filters: ym:s:isRobot=='no'. Не применяется к метрикам и измерениям ym:ad: и ym:ev: — Метрика отвечает на них 400. | |
| direct_client_logins | No | Логины клиентов Яндекс Директа, через запятую. Могут использоваться для формирования отчета [Директ-расходы](https://yandex.ru/dev/metrika/ru/stat/direct-clicks.md). Пример: login1,login2. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is clear. The description adds the specific HTTP GET endpoint and a documentation link, which are useful behavioral details. However, it does not describe pagination, sampling behavior, or error conditions, but these are not essential given the rich schema and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively short, but it contains redundancy: 'Таблица.' repeats the titlecars, and 'Возвращает результат в виде таблицы' restates the previous point. The useful endpoint and documentation links are included. It is not overly long, but not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too generic for a tool with 10 siblings. It does not explain what makes this endpoint distinct (e.g., plain data without drilldown/pivot/comparison aggregations) or when a caller would prefer it. The missing output schema is not a major issue, but the lack of sibling differentiation leaves the description incomplete for correct selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all 19 parameters documented in the input schema. The description itself does not mention any parameters, so it adds no semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states that the tool provides access to Yandex Metrika statistical data, including report data, and returns a table. However, this is extremely broad and does not distinguish it from siblings like metrika_stat_drilldown or metrika_stat_pivot, which also provide statistical data. The title 'Таблица' adds little specificity, and the phrase 'returns the result as a table' is true of all stat tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus its siblings. It does not mention alternatives, exclusions, or typical use cases. An agent would not be able to decide between metrika_stat_data and the other stat_* tools based on this text alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_stat_drilldownDrill downBRead-onlyIdempotent
Drill down. Позволяет сформировать многоуровневый (древовидный) отчет. При этом каждому уровню соответствует одна группировка. [GET https://api-metrika.yandex.net/stat/v1/data/drilldown] Документация: https://yandex.ru/dev/metrika/ru/stat/openapi/drilldown.md
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Идентификаторы счетчиков, через запятую. Пример: 44147844,2215573. | |
| lang | No | Язык. | |
| sort | No | Список группировок и метрик, разделенных запятой, по которым осуществляется сортировка. По умолчанию сортировка производится по убыванию (указан знак `-` перед группировкой или метрикой). Чтобы отсортировать данные по возрастанию, удалите знак `-`. | |
| date1 | No | Дата начала периода выборки в формате YYYY-MM-DD. Также используйте значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: 6daysAgo. | |
| date2 | No | Дата окончания периода выборки в формате YYYY-MM-DD. Также используйте значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: today. | |
| limit | No | Количество элементов на странице выдачи. По умолчанию: 100. | |
| offset | No | Индекс первой строки выборки, начиная с 1. По умолчанию: 1. | |
| preset | No | [Шаблон отчета](https://yandex.ru/dev/metrika/ru/stat/presets.md). Пример: sources_summary. | |
| pretty | No | Задает форматирование результата. Чтобы использовать форматирование, укажите значение `true`. По умолчанию: false. | |
| filters | No | Фильтр [сегментации](https://yandex.ru/dev/metrika/ru/stat/segmentation.md). | |
| metrics | Yes | Список метрик, разделенных запятой. Пример: ym:s:pageviews. | |
| accuracy | No | Размер выборки, используемой для отчета. Позволяет управлять [семплированием](https://yandex.ru/dev/metrika/ru/stat/sampling.md) (количеством визитов, использованных при расчете итогового значения). | |
| callback | No | Функция обратного вызова, которая обрабатывает ответ API. | |
| timezone | No | Часовой пояс в формате ±hh:mm в диапазоне [-23:59; +23:59] (знак плюса нужно передавать как `%2B`), Пример: +03:00. | |
| parent_id | No | Выбор строки для дальнейшего развертывания. Состоит из json-списка ключей. | |
| dimensions | No | Список группировок, разделенных запятой. Пример: ym:s:trafficSource. | |
| include_undefined | No | Включает в ответ строки, для которых значения группировок не определены. Влияет только на первую группировку. По умолчанию выключено. | |
| proposed_accuracy | No | Если параметр выставлен в `true`, API имеет право автоматически увеличивать accuracy до рекомендованного значения.Когда идет запрос в маленькую таблицу с очень маленьким семплингом, параметр поможет получить осмысленные результаты. | |
| human_traffic_only | No | Резать роботов. По умолчанию true. Добавляет к filters: ym:s:isRobot=='no'. Не применяется к метрикам и измерениям ym:ad: и ym:ev: — Метрика отвечает на них 400. | |
| direct_client_logins | No | Логины клиентов Яндекс Директа, через запятую. Могут использоваться для формирования отчета [Директ-расходы](https://yandex.ru/dev/metrika/ru/stat/direct-clicks.md). Пример: login1,login2. | |
| only_expandable_undefined | No | Удалять из результата нераскрывающиеся неопределённые значения. Имеет смысл только в случае include_undefined=true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral details beyond the functional purpose (e.g., pagination, tree navigation, or response format). It does not contradict annotations, but adds minimal value in terms of behavioral disclosures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. The opening 'Drill down.' is somewhat redundant with the title, but the subsequent sentence adds meaningful detail, and the API endpoint plus documentation link are useful. No unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex (21 parameters, no output schema), and the description provides minimal context for an agent to understand the drilldown concept or navigate the hierarchical response. While the schema is thorough, the description does not compensate for missing output schema or explain how tree levels relate to parameters like parent_id or include_undefined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 21 parameters. The description includes no parameter-level information, so it adds no value beyond the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool generates a multi-level (tree-like) report with each level corresponding to one grouping. This is a specific verb+resource (drill down, build hierarchical report) and distinguishes it from flat-report siblings like metrika_stat_data, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It does not mention alternatives, conditions, or exclusions. The use case is only implied by the purpose statement ('drill down'), leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
metrika_stat_pivotПолучение сводной таблицыBRead-onlyIdempotent
Получение сводной таблицы. Позволяет получить данные с разбивкой по времени (например, по дням, неделям, месяцам). Используйте данный тип запроса для построения графиков и отслеживания динамики. [GET https://api-metrika.yandex.net/stat/v1/data/pivot] Документация: https://yandex.ru/dev/metrika/ru/stat/openapi/pivot.md
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Идентификаторы счетчиков, через запятую. Пример: 44147844,2215573. | |
| lang | No | Язык. | |
| sort | No | Список группировок и метрик, разделенных запятой, по которым осуществляется сортировка. По умолчанию сортировка производится по убыванию (указан знак `-` перед группировкой или метрикой). Чтобы отсортировать данные по возрастанию, удалите знак `-`. | |
| date1 | No | Дата начала периода выборки в формате YYYY-MM-DD. Также используйте значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: 6daysAgo. | |
| date2 | No | Дата окончания периода выборки в формате YYYY-MM-DD. Также используйте значения: `today`, `yesterday`, `ndaysAgo`. По умолчанию: today. | |
| limit | No | Количество элементов на странице выдачи. По умолчанию: 100. | |
| offset | No | Индекс первой строки выборки, начиная с 1. По умолчанию: 1. | |
| preset | No | [Шаблон отчета](https://yandex.ru/dev/metrika/ru/stat/presets.md). Пример: sources_summary. | |
| pretty | No | Задает форматирование результата. Чтобы использовать форматирование, укажите значение `true`. По умолчанию: false. | |
| filters | No | Фильтр [сегментации](https://yandex.ru/dev/metrika/ru/stat/segmentation.md). | |
| metrics | Yes | Список метрик, разделенных запятой. Пример: ym:s:pageviews. | |
| accuracy | No | Размер выборки, используемой для отчета. Позволяет управлять [семплированием](https://yandex.ru/dev/metrika/ru/stat/sampling.md) (количеством визитов, использованных при расчете итогового значения). | |
| callback | No | Функция обратного вызова, которая обрабатывает ответ API. | |
| timezone | No | Часовой пояс в формате ±hh:mm в диапазоне [-23:59; +23:59] (знак плюса нужно передавать как `%2B`), Пример: +03:00. | |
| dimensions | No | Список группировок, разделенных запятой. Пример: ym:s:trafficSource. | |
| pivot_limit | No | Количество столбцов на странице выдачи. По умолчанию: 5. | |
| pivot_offset | No | Индекс первой строки выборки, начиная с 1. По умолчанию: 1. | |
| pivot_dimensions | No | Список группировок, разделенных запятой. Пример: ym:s:trafficSource. | |
| include_undefined | No | Включает в ответ строки, для которых значения группировок не определены. Влияет только на первую группировку. По умолчанию выключено. | |
| proposed_accuracy | No | Если параметр выставлен в `true`, API имеет право автоматически увеличивать accuracy до рекомендованного значения.Когда идет запрос в маленькую таблицу с очень маленьким семплингом, параметр поможет получить осмысленные результаты. | |
| human_traffic_only | No | Резать роботов. По умолчанию true. Добавляет к filters: ym:s:isRobot=='no'. Не применяется к метрикам и измерениям ym:ad: и ym:ev: — Метрика отвечает на них 400. | |
| direct_client_logins | No | Логины клиентов Яндекс Директа, через запятую. Могут использоваться для формирования отчета [Директ-расходы](https://yandex.ru/dev/metrika/ru/stat/direct-clicks.md). Пример: login1,login2. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds the time-breakdown behavior and an endpoint URL, but does not disclose auth needs, rate limits, sampling effects, or response format. This is adequate but not rich beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences lead with the purpose, then the use case and links. No filler or repetition, though the documentation and endpoint could arguably be combined. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 22 parameters, no output schema, and only a minimal description. The description does not explain the response structure of a pivot report (rows vs columns, pivot_dimensions role, pagination via limit/offset), which an agent would need to interpret results correctly. Given the tool's complexity, the description is too thin for full call success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already fully documented. The description adds no parameter-specific semantics beyond the generic 'time breakdown' context, which is not tied to any parameter. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific verb+resource ('Получение сводной таблицы') and clarifies the capability as data with time breakdown for charts and dynamics. It is clearer than a tautology, but it does not explicitly contrast itself with siblings like metrika_stat_data or metrika_stat_bytime, so an agent may still need to infer the exact scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an intended use ('для построения графиков и отслеживания динамики'), which is a clear context signal. However, it provides no exclusions and names no alternatives among the many stat siblings, so guidance on when not to use this tool is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v3.3.1- First observed
metrika_catalog_list - First observed
metrika_counter_get - First observed
metrika_counter_list - First observed
metrika_goal_list - First observed
metrika_segment_list - First observed
metrika_stat_bytime - First observed
metrika_stat_comparison - First observed
metrika_stat_comparison_drilldown - First observed
metrika_stat_data - First observed
metrika_stat_drilldown - First observed
metrika_stat_pivot
TDQS
Scored across 11 tools
Most tools map to distinct resources and stat report types, but metrika_stat_bytime and metrika_stat_pivot have nearly identical descriptions despite representing different report modes. This creates a real misselection risk for agents relying on tool descriptions.
All tools share the metrika_ prefix and follow a metrika_<domain>_<suffix> pattern. However, suffixes mix actions (get, list) with report types (data, bytime, pivot, drilldown), so it is predictable but not a strict verb_noun convention.
11 tools is well within the ideal range and covers the main management query surface plus the core stat report modes without redundancy. Each tool corresponds to a distinct Yandex Metrika API endpoint or function.
The server covers counter list/get, goals, segments, catalogs, and the main stat report types (table, drilldown, bytime, comparison, pivot). Missing create/update/delete operations for managed resources are a minor gap, but the read-only analytics focus is fairly complete.
Maintenance
Related MCP Connectors
Read-only Yandex Metrika MCP. Query visits, sources, geo, devices and more in plain language.
Create projects and read their web analytics: views, referrers, countries, custom events.
OpenRevenue analytics MCP: projects, stats, visitors, funnels, and goals via API key or OAuth.
Read-only access to your Nexly web analytics: traffic, pages, acquisition, events, and reports.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Google Analytics APIs to fetch reports, manage properties, data streams, conversion events, and custom dimensions/metrics through OAuth2 authentication.66 npm6MIT
- AlicenseBqualityAmaintenanceEnables managing Yandex Direct PPC campaigns, ad groups, ads, and keywords, plus pulling performance statistics via the Yandex Direct API v5.44100 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables interaction with Yandex advertising and analytics APIs (Direct, Metrika, Audience, Webmaster, AdMetrica) through MCP tools, resources, and prompts for campaign management and data retrieval.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to retrieve comprehensive analytics data from Yandex Metrika accounts, including traffic, content, e-commerce, and user demographics.640 npm1MIT