# yandex-metrika-mcp (npm · @theyahia/yandex-metrika-mcp)

MCP server for Yandex Metrika — web analytics, counters, goals, traffic (Russia)

- Trust score: 68/100 (medium)
- Change this week: +22
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-06

## Components

- npm · `@theyahia/yandex-metrika-mcp`: 68/100 (this document), [markdown](https://verifymcp.io/servers/theyahia-yandex-metrika-mcp/theyahia-yandex-metrika-mcp.md), [page](https://verifymcp.io/servers/theyahia-yandex-metrika-mcp/theyahia-yandex-metrika-mcp)

## Channel facts

- Registry: `npm`
- Package: `@theyahia/yandex-metrika-mcp`
- Version: `2.1.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-06.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Known CVEs were checked across the 95 of 99 dependencies we could resolve, so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Dependency health was assessed across the 95 of 99 dependencies we could resolve, so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 126 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1552 tokens (~103/item across 15 items; 15 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 33/100
  - Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add theyahia-yandex-metrika-mcp -- npx -y @theyahia/yandex-metrika-mcp
```

### Codex

```bash
codex mcp add theyahia-yandex-metrika-mcp -- npx -y @theyahia/yandex-metrika-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "theyahia-yandex-metrika-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@theyahia/yandex-metrika-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add theyahia-yandex-metrika-mcp --command npx --arg -y --arg @theyahia/yandex-metrika-mcp
```

### Hermes

```yaml
mcp_servers:
  theyahia-yandex-metrika-mcp:
    command: "npx"
    args: ["-y", "@theyahia/yandex-metrika-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "theyahia-yandex-metrika-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@theyahia/yandex-metrika-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-06 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-05 (score 67, +1)

- [security improvement] CVE-2026-69207 no longer affects this package
- [security improvement] Known CVEs: fail → partial

### 2026-08-04 (score 66, 0)

- [security regression] CVE-2026-69207 affects this package: medium
- [security regression] Known CVEs: partial → fail

### 2026-08-03 (score 66, +30)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Schema quality: unverified → good
- [functional] Licence: MIT

### 2026-08-02 (score 36, +10)

- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Capabilities: pass → unverified

### 2026-08-01 (score 26, +5)

- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] MCP protocol: unverified → pass

### 2026-07-31 (score 21, −25)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (15)

### `list_counters` (~97 tokens)

List all Yandex.Metrica counters available to the authenticated user. Returns counter ID, name, site URL, and status. Supports search filtering.

Input parameters:

- `field` (string): Fields to return, comma-separated (e.g. 'name,site,status')
- `per_page` (number): Results per page (default 100, max 10000)
- `search_string` (string): Filter counters by name or site URL substring

### `get_counter` (~48 tokens)

Get full details of a single Yandex.Metrica counter by ID, including configuration, code snippet status, and goals count.

Input parameters:

- `counter_id` (number, required): Counter ID to retrieve details for

### `create_counter` (~83 tokens)

Create a new Yandex.Metrica counter for a website. Returns the new counter ID and tracking code. You need to install the tracking code on the site afterwards.

Input parameters:

- `mirrors` (array): Mirror domains to track alongside the main site
- `name` (string, required): Counter display name
- `site` (string, required): Website domain (e.g. 'example.com')

### `update_counter` (~58 tokens)

Update an existing Yandex.Metrica counter — change its name or site URL.

Input parameters:

- `counter_id` (number, required): Counter ID to update
- `name` (string): New counter display name
- `site` (string): New website domain

### `delete_counter` (~51 tokens)

Permanently delete a Yandex.Metrica counter. This action is irreversible — all historical data for this counter will be lost.

Input parameters:

- `counter_id` (number, required): Counter ID to delete. This action is irreversible.

### `list_goals` (~51 tokens)

List all goals configured for a Yandex.Metrica counter. Goals track conversions like page visits, button clicks, or multi-step funnels.

Input parameters:

- `counter_id` (number, required): Counter ID to list goals for

### `create_goal` (~133 tokens)

Create a new conversion goal for a counter. Supports types: 'url' (page visit), 'number' (page count threshold), 'step' (multi-step funnel), 'action' (JavaScript event).

Input parameters:

- `conditions` (array): Conditions array. Required for url, step, action goal types.
- `counter_id` (number, required): Counter ID to create the goal in
- `name` (string, required): Goal display name
- `type` (string, required): Goal type: 'url' (page visit), 'number' (page count), 'step' (multi-step funnel), 'action' (JS event)

### `delete_goal` (~50 tokens)

Delete a conversion goal from a counter. Historical goal data in reports is preserved.

Input parameters:

- `counter_id` (number, required): Counter ID the goal belongs to
- `goal_id` (number, required): Goal ID to delete

### `export_logs` (~159 tokens)

Export raw visit or hit logs via the Logs API. Creates a log request and evaluates feasibility. Use source='visits' for session data, source='hits' for pageview data.

Input parameters:

- `counter_id` (number, required): ID счётчика Яндекс.Метрики
- `date1` (string, required): Дата начала в формате YYYY-MM-DD
- `date2` (string, required): Дата окончания в формате YYYY-MM-DD
- `fields` (string): Поля через запятую. По умолчанию для visits: ym:s:date,ym:s:clientID,ym:s:lastTrafficSource,ym:s:visitDuration
- `source` (string): Тип данных: visits (визиты) или hits (просмотры)

### `get_report` (~290 tokens)

Flexible Yandex.Metrica reporting endpoint. Query any combination of metrics (ym:s:visits, ym:s:pageviews, ym:s:bounceRate, ym:s:avgVisitDurationSeconds, ym:s:users, ym:s:newUsers, etc.) with dimensions (ym:s:trafficSource, ym:s:searchEngine, ym:s:country, ym:s:browser, ym:s:deviceCategory, ym:s:date, etc.) over a date range. Supports filters and sorting.

Input parameters:

- `counter_id` (number, required): Yandex.Metrica counter ID
- `date1` (string, required): Start date YYYY-MM-DD
- `date2` (string, required): End date YYYY-MM-DD
- `dimensions` (array): Dimensions array, e.g. ['ym:s:trafficSource', 'ym:s:browser', 'ym:s:country', 'ym:s:deviceCategory']
- `filters` (string): Filter expression, e.g. ym:s:trafficSource=='organic'
- `limit` (number): Max rows to return (default 100)
- `metrics` (array, required): Metrics array, e.g. ['ym:s:visits', 'ym:s:pageviews', 'ym:s:bounceRate', 'ym:s:avgVisitDurationSeconds']
- `sort` (string): Sort field, prefix with '-' for descending, e.g. '-ym:s:visits'

### `get_report_comparison` (~138 tokens)

Compare metrics between two date periods (A vs B). Useful for week-over-week, month-over-month, or campaign before/after analysis.

Input parameters:

- `counter_id` (number, required): Yandex.Metrica counter ID
- `date1_a` (string, required): Period A start date YYYY-MM-DD
- `date1_b` (string, required): Period B start date YYYY-MM-DD
- `date2_a` (string, required): Period A end date YYYY-MM-DD
- `date2_b` (string, required): Period B end date YYYY-MM-DD
- `dimensions` (array): Dimensions to group by
- `metrics` (array, required): Metrics to compare

### `get_report_drilldown` (~131 tokens)

Drill down into report data hierarchically. Start at top level, then pass parent_id to explore sub-dimensions (e.g., country -> city, traffic source -> campaign).

Input parameters:

- `counter_id` (number, required): Yandex.Metrica counter ID
- `date1` (string, required): Start date YYYY-MM-DD
- `date2` (string, required): End date YYYY-MM-DD
- `dimensions` (array, required): Dimensions for drill-down hierarchy
- `metrics` (array, required): Metrics to retrieve
- `parent_id` (string): Parent row ID to drill into. Omit for top-level.

### `get_traffic_summary` (~82 tokens)

Quick traffic overview for a counter over a date range. Returns visits, pageviews, unique users, bounce rate, and average visit duration in one call.

Input parameters:

- `counter_id` (number, required): Yandex.Metrica counter ID
- `date1` (string, required): Start date YYYY-MM-DD
- `date2` (string, required): End date YYYY-MM-DD

### `get_traffic_sources` (~82 tokens)

Traffic sources breakdown — visits and users by source channel (organic search, direct, social, referral, ad). Quick way to see where traffic comes from.

Input parameters:

- `counter_id` (number, required): Yandex.Metrica counter ID
- `date1` (string, required): Start date YYYY-MM-DD
- `date2` (string, required): End date YYYY-MM-DD

### `get_top_pages` (~99 tokens)

Top pages by pageviews for a counter. Returns URL, visits, pageviews, bounce rate, and avg duration for each page. Useful for content performance analysis.

Input parameters:

- `counter_id` (number, required): Yandex.Metrica counter ID
- `date1` (string, required): Start date YYYY-MM-DD
- `date2` (string, required): End date YYYY-MM-DD
- `limit` (number): Number of pages to return (default 20)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/theyahia-yandex-metrika-mcp/theyahia-yandex-metrika-mcp#diagnostics

## Score history

- 2026-08-06: 68
- 2026-08-05: 67
- 2026-08-04: 66
- 2026-08-03: 66
- 2026-08-02: 36
- 2026-08-01: 26
- 2026-07-31: 21
- 2026-07-30: 46
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/@theyahia/yandex-metrika-mcp
- Socket report: https://socket.dev/npm/package/@theyahia/yandex-metrika-mcp
- Repository: https://github.com/theYahia/yandex-metrika-mcp
- Changelog RSS feed: https://verifymcp.io/servers/theyahia-yandex-metrika-mcp/theyahia-yandex-metrika-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/theyahia-yandex-metrika-mcp/theyahia-yandex-metrika-mcp.json
- HTML version of this page: https://verifymcp.io/servers/theyahia-yandex-metrika-mcp/theyahia-yandex-metrika-mcp
