list_counters
List Yandex Metrika counters available to the token. Returns each counter's id, name and site so you can pick a `counter_id` for `query`. Read scope is enough.
Takes no parameters.

io.github.expremientalPublished by GitHub account expremientalv0.1.0Updated Oct 25, 2026
Read-only Yandex Metrika MCP. Query visits, sources, geo, devices and more in plain language.
A read-only Yandex Metrika MCP server that lets an assistant list counters and run Reporting API queries for visits, sources, devices and geography.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.expremiental%2Fyandex-metrika-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"yandex-metrika": {
"type": "http",
"url": "https://mcp.getaiaiai.ru/yandex-metrika"
}
}
}[License: MIT] [Python 3.10+] [FastMCP] [MCP]
Query Yandex Metrika analytics in plain language, right inside Claude. "How many visits this week?", "Top traffic sources for June", "Mobile share today?" — the assistant queries Metrika and answers directly. No dashboards, no SQL, no API keys to manage.
Open-source by aiaiai — we build what we teach.
Задавай вопросы по Яндекс.Метрике обычным языком прямо в Claude. «Сколько визитов за неделю?», «топ источников за июнь», «доля мобильных?» — ассистент сам сходит в Метрику и ответит. Без дашбордов.
[Спросил про географию аудитории обычным языком — агент сам построил карту из живой Яндекс.Метрики]
Claude.ai · Claude Code · Claude Desktop · Cursor · any MCP-compatible client
No installation needed — connect to the hosted service.
Claude.ai (Settings → Connectors → Add):
Click Connect → sign in with Yandex → allow access.
Claude Code CLI:
A browser window opens → sign in with Yandex → done. On headless/SSH: add --no-browser to mcp login and paste the redirect URL when prompted.
Claude Desktop / Cursor — add to mcpServers:
No app registration, no tokens to manage. Read-only — the service never writes to your Metrika account.
Claude.ai (Настройки → Коннекторы → Добавить):
Нажмите Подключить → войдите через Яндекс → разрешите доступ.
Claude Code CLI:
Откроется браузер → войти через Яндекс → готово.
query parametersCommon metrics: ym:s:visits, ym:s:users, ym:s:pageviews, ym:s:bounceRate, ym:s:avgVisitDurationSeconds, ym:s:newUsers
Common dimensions: ym:s:date, ym:s:lastTrafficSource, ym:s:startURL, ym:s:deviceCategory, ym:s:regionCountry, ym:s:lastsourceUTMSource
Requires Python 3.10+ and uv.
Get a token. Go to oauth.yandex.ru, create an app (platform: "Web services"), enable Yandex Metrika → Read statistics (metrika:read), then get an OAuth token:
Connect (Claude Desktop / Cursor — add to mcpServers):
Run over HTTP:
Embed in your own backend. The engine accepts an injectable async token resolver — wrap it with your own auth:
Public API: build_server, YandexMetrikaClient, TokenResolver, env_token_resolver, main.
Source: README.md at commit 4e708b3
List Yandex Metrika counters available to the token. Returns each counter's id, name and site so you can pick a `counter_id` for `query`. Read scope is enough.
Takes no parameters.
Run a Reporting API query against a Metrika counter (aggregated stats). Pass Metrika field names directly. Common ones: Metrics (comma-separated): ym:s:visits, ym:s:users, ym:s:pageviews, ym:s:bounceRate, ym:s:avgVisitDurationSeconds, ym:s:newUsers Dimensions (comma-separated, optional — groups the result): ym:s:date, ym:s:lastTrafficSource, ym:s:startURL, ym:s:deviceCategory, ym:s:regionCountry, ym:s:<attribution>UTMSource date1 / date2: YYYY-MM-DD or relative (today, yesterday, NdaysAgo). filters: Metrika filter expression, e.g. "ym:s:deviceCategory=='mobile'". sort: field to sort by; prefix with '-' for descending, e.g. "-ym:s:visits". Returns the raw Reporting API response (query meta, totals and data rows).
sortdate1date2limitfiltersmetricsrequiredcounter_idrequireddimensions100% 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.
https://mcp.getaiaiai.ru/yandex-metrikaclaude mcp add --transport http yandex-metrika https://mcp.getaiaiai.ru/yandex-metrika/claude mcp login yandex-metrika{ "mcpServers": { "yandex-metrika": { "type": "http", "url": "https://mcp.getaiaiai.ru/yandex-metrika/" } }}https://mcp.getaiaiai.ru/yandex-metrikaclaude mcp add --transport http yandex-metrika https://mcp.getaiaiai.ru/yandex-metrika/claude mcp login yandex-metrikagit clone https://github.com/expremiental/yandex-metrika-mcp.gitcd yandex-metrika-mcpuv syncexport YANDEX_METRIKA_TOKEN="<your-token>"{ "mcpServers": { "yandex-metrika": { "command": "uv", "args": ["run", "yandex-metrika-mcp"], "env": { "YANDEX_METRIKA_TOKEN": "<your-token>" } } }}MCP_TRANSPORT=http PORT=8000 uv run yandex-metrika-mcp# endpoint: http://localhost:8000/mcpfrom yandex_metrika_mcp import build_server
async def my_token_resolver() -> str: return "<metrika:read token>"
build_server(token_resolver=my_token_resolver).run(transport="stdio")