Skip to main content

MCP server for Yandex Metrika analytics

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ya_metrics_mcp-0.1.0.tar.gz (115.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ya_metrics_mcp-0.1.0-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

File details

Details for the file ya_metrics_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: ya_metrics_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 115.7 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for ya_metrics_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 baff87b8af3927a9d3b8f1f5aba42c7c72609683126962f6e3fe2e237cd59a1c
MD5 35e77db83f0dd39fb1c45ed82bc50051
BLAKE2b-256 aa04702b06fd6587d26399ceded6fcc249154a584da077c7be9ac3ecb88caf17

See more details on using hashes here.

File details

Details for the file ya_metrics_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ya_metrics_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.0 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for ya_metrics_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 63105ec612d1975ae977c7af17797347635d8e58a04558aa4ef74a83cd48f487
MD5 44a3b686e068210859ca7c3473362e32
BLAKE2b-256 6c069d6dc17873f23d163c88a4cb9eb9aac5684e93f71c65cb2e03a86f0b1f41

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page