ya-metrics-mcp
MCP server for Yandex Metrika analytics, enabling AI assistants to access traffic, content, demographics, conversion, e-commerce, and drill-down reports.
README
ya-metrics-mcp
Model Context Protocol (MCP) server for Yandex Metrika analytics. Exposes 31 analytics tools to your AI assistant — traffic, content, demographics, geographic, conversion, e-commerce data, and hierarchical drill-down reports.
Documentation in Russian is available here / Документация на русском языке — здесь.
Quick Start
1. Get Your OAuth Token
-
Go to oauth.yandex.ru/client/new and create a new application:
- Name — any name you like
- Platforms — select Web services
- Redirect URI — enter
https://oauth.yandex.ru/verification_code - Data access — add
metrika:read(this is the only scope needed for all 31 tools)
-
Click Create application and copy the ClientID.
-
Open this URL in your browser (replace
<ClientID>with your value):https://oauth.yandex.ru/authorize?response_type=token&client_id=<ClientID> -
Authorize and copy the token from the resulting page.
2. Configure Your IDE
Add to your Claude Desktop / Cursor MCP configuration:
{
"mcpServers": {
"ya-metrics": {
"command": "uvx",
"args": ["ya-metrics-mcp"],
"env": {
"YANDEX_API_KEY": "your_oauth_token"
}
}
}
}
Running from source? Use
uv runinstead:{ "mcpServers": { "ya-metrics": { "command": "uv", "args": ["run", "--directory", "/path/to/ya-metrics-mcp", "ya-metrics-mcp"], "env": { "YANDEX_API_KEY": "your_oauth_token" } } } }
3. Start Using
Ask your AI assistant to:
- "List my Metrika counters" — start here to find your counter ID
- "Show me visits for counter 12345678 over the last 30 days"
- "What are the top traffic sources for my site?"
- "Compare mobile vs desktop users this month"
- "Show conversion rates for goals 1 and 2"
- "Drill down into traffic by country → city"
- "Compare organic vs direct traffic segments"
Tools
31 tools across 7 domains:
Account & Counters
| Tool | Description |
|---|---|
list_counters |
List all counters on the account (use this first to find counter IDs) |
list_goals |
List conversion goals for a counter (call before get_goals_conversion) |
get_account_info |
Counter metadata: name, site, timezone, permissions |
Traffic & Sources
| Tool | Description |
|---|---|
get_visits |
Visit statistics with date range (defaults to 7 days) |
sources_summary |
Traffic sources overview |
sources_search_phrases |
Top search phrases |
get_traffic_sources_types |
Breakdown by source type (organic, direct, referral) |
get_search_engines_data |
Sessions by search engine, with robot/new-user filters |
get_new_users_by_source |
New user acquisition by traffic source (defaults to 30 days) |
Content Analytics
Requires Yandex Zen/Turbo publisher integration on the counter.
| Tool | Description |
|---|---|
get_content_analytics_sources |
Sources driving readers to articles |
get_content_analytics_categories |
Stats by content category |
get_content_analytics_authors |
Author performance |
get_content_analytics_topics |
Performance by topic |
get_content_analytics_articles |
Top articles by views |
Demographics & Devices
| Tool | Description |
|---|---|
get_user_demographics |
Age, gender, device breakdown |
get_device_analysis |
Browser and OS analysis |
get_mobile_vs_desktop |
Mobile vs desktop comparison |
get_page_depth_analysis |
Sessions by page depth |
Geographic
| Tool | Description |
|---|---|
get_regional_data |
Traffic by city (all cities by default, or filter by name) |
get_geographical_organic_traffic |
Organic traffic by country and city |
Performance & Conversion
| Tool | Description |
|---|---|
get_page_performance |
Bounce rate and duration by entry URL path |
get_goals_conversion |
Conversion rates for specified goals |
get_organic_search_performance |
SEO performance by query and engine |
get_conversion_rate_by_source_and_landing |
Conversion by source × landing page URL |
Advanced & Drill-Down
| Tool | Description |
|---|---|
get_ecommerce_performance |
E-commerce purchases by product name (requires e-commerce tracking) |
get_data_by_time |
Time-series data with custom grouping |
get_yandex_direct_experiment |
A/B experiment bounce rates |
get_browsers_report |
Browser usage report |
get_drilldown |
Single branch of a hierarchical tree-view report |
compare_segments |
Compare two user segments side by side |
compare_segments_drilldown |
Segment comparison as a hierarchical tree-view |
Response Size Control
Many tools accept a limit parameter to cap the number of rows returned. This is useful when working with AI assistants to keep responses within context limits. Tools with limit support: sources_summary, sources_search_phrases, get_device_analysis, get_page_performance, get_organic_search_performance, get_conversion_rate_by_source_and_landing, get_regional_data, get_geographical_organic_traffic, get_drilldown, compare_segments, compare_segments_drilldown.
Configuration
All configuration via environment variables:
| Variable | Required | Default | Description |
|---|---|---|---|
YANDEX_API_KEY |
✓ | — | Yandex OAuth token |
YANDEX_TIMEOUT |
30 |
Request timeout in seconds | |
YANDEX_RETRIES |
3 |
Retry attempts for 5xx errors | |
YANDEX_RETRY_DELAY |
1.0 |
Base delay between retries (seconds) | |
READ_ONLY_MODE |
false |
Restrict to read-only tools | |
ENABLED_TOOLS |
all | Comma-separated list of allowed tools |
Copy .env.example to .env and fill in your values.
CLI
# stdio (default, for MCP clients)
ya-metrics-mcp
# HTTP transport
ya-metrics-mcp --transport streamable-http --port 8000
# With verbose logging
ya-metrics-mcp -vv
# Load custom .env file
ya-metrics-mcp --env-file /path/to/.env
Installation
From PyPI:
uvx ya-metrics-mcp
From source:
git clone https://github.com/mrkhachaturov/ya-metrics-mcp
cd ya-metrics-mcp
uv sync
uv run ya-metrics-mcp
Development
# Install with dev dependencies
uv sync --extra dev
# Run tests
uv run pytest
# Lint
uv run ruff check src/
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.