Skip to main content

ya-metrics-mcp

License Python FastMCP

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.

Quick Start

1. Get Your OAuth Token

Go to oauth.yandex.ru/client/new and create an app with Yandex.Metrika read access. Copy the token.

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 run instead:

{
  "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 (once published):

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

Metadata

Release files for ya-metrics-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ya-metrics-mcp 0.1.0
File Size Uploaded
ya_metrics_mcp-0.1.0.tar.gz 115.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ya-metrics-mcp 0.1.0
File Interpreter ABI Platform
ya_metrics_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 138.6 kB

Release files / ya_metrics_mcp-0.1.0.tar.gz

Download URL ya_metrics_mcp-0.1.0.tar.gz
Size 115.7 kB
Tags Source
SHA-256 checksum
How to use checksums
baff87b8af3927a9d3b8f1f5aba42c7c72609683126962f6e3fe2e237cd59a1c
BLAKE2b-256 checksum
How to use checksums
aa04702b06fd6587d26399ceded6fcc249154a584da077c7be9ac3ecb88caf17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / ya_metrics_mcp-0.1.0-py3-none-any.whl

Download URL ya_metrics_mcp-0.1.0-py3-none-any.whl
Size 23.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
63105ec612d1975ae977c7af17797347635d8e58a04558aa4ef74a83cd48f487
BLAKE2b-256 checksum
How to use checksums
6c069d6dc17873f23d163c88a4cb9eb9aac5684e93f71c65cb2e03a86f0b1f41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page