Skip to main content
Glama
pavellunev

appmetrica-mcp

by pavellunev

appmetrica-mcp

npm version license

AppMetrica MCP

MCP server for AppMetrica — Yandex's mobile analytics platform. Gives Claude direct access to your app's analytics: reports, raw event logs, crash data, and push notification campaigns.

Features

  • Reporting API — aggregated metrics (users, sessions, revenue, retention) with dimension breakdowns

  • Logs API — raw event, crash, and installation exports

  • Management API — list and inspect your AppMetrica applications

  • Push API — view campaigns and statistics; create campaigns when write mode is enabled

  • Safe by default — write operations are disabled unless you explicitly opt in

Related MCP server: Yandex Metrika MCP

Requirements

  • Node.js 22+

  • An AppMetrica account with at least one application

  • A Yandex OAuth token (see below)

Getting an OAuth Token

AppMetrica uses Yandex OAuth. Use the Russian OAuth portal (oauth.yandex.ru) — the international version (oauth.yandex.com) does not expose AppMetrica scopes in its UI.

Step 1 — Create an OAuth app

  1. Go to oauth.yandex.ru/client/new

  2. Fill in any name (e.g. AppMetrica MCP)

  3. Under Platforms, select Web services and set the Callback URI to:

    https://oauth.yandex.ru/verification_code
  4. Under Доступы (Access), find the AppMetrica section and enable:

    • Чтение данных AppMetrica — read access (required)

    • Запись данных AppMetrica — write access (optional, needed for push campaign creation)

  5. Click Создать приложение and copy the ClientID

Step 2 — Get a token

Open this URL in your browser (replace CLIENT_ID with your app's ID):

https://oauth.yandex.ru/authorize?response_type=token&client_id=CLIENT_ID

Log in → authorize the app → copy the access_token value from the redirect URL.

Note: The token does not expire by default. You can revoke it anytime at passport.yandex.ru/profile/access.

Installation

claude mcp add appmetrica \
  -e APPMETRICA_OAUTH_TOKEN=your_token \
  -- npx -y appmetrica-mcp

To enable write operations (push campaign creation):

claude mcp add appmetrica \
  -e APPMETRICA_OAUTH_TOKEN=your_token \
  -e APPMETRICA_ALLOW_WRITE=true \
  -- npx -y appmetrica-mcp

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "appmetrica": {
      "command": "npx",
      "args": ["-y", "appmetrica-mcp"],
      "env": {
        "APPMETRICA_OAUTH_TOKEN": "your_token"
      }
    }
  }
}

Building from source

git clone https://github.com/pavellunev99/app_metrica_mcp
cd app_metrica_mcp
npm install
npm run build

Configuration

Variable

Required

Default

Description

APPMETRICA_OAUTH_TOKEN

Yes

Yandex OAuth token with AppMetrica scope

APPMETRICA_ALLOW_WRITE

No

false

Set to true to enable push campaign creation

Available Tools

Management

Tool

Description

list_applications

List all AppMetrica applications in your account

get_application

Get details for a specific application by ID

Reporting

Tool

Description

get_report

Fetch aggregated metrics for a date range (users, sessions, crashes, etc.)

get_drilldown

Drill down into a dimension value for detailed breakdown

list_metrics

List available metric keys with descriptions

Logs

Tool

Description

export_events

Export raw custom event logs

export_crashes

Export raw crash logs

export_installations

Export raw installation logs

Push Notifications

Tool

Access

Description

list_push_campaigns

Read

List push notification campaigns with optional status filter

get_push_stats

Read

Get delivery statistics for a campaign

create_push_campaign

Write

Create a push campaign (requires APPMETRICA_ALLOW_WRITE=true)

Usage Examples

Once connected, you can ask Claude things like:

  • "List my AppMetrica applications"

  • "Show DAU and sessions for app 12345 over the last 7 days"

  • "Export crash logs for app 12345 from 2024-01-01 to 2024-01-07"

  • "What push campaigns are currently active for app 12345?"

  • "Show me new user counts broken down by app version"

Rate Limits

AppMetrica enforces the following limits on all API requests:

  • 30 requests / second per OAuth token

  • 5,000 requests / day per OAuth token

The client retries automatically on 429 and 5xx responses with exponential backoff (1s → 2s → 4s, up to 3 attempts).

License

MIT

Available Tools

11 tools
create_push_campaignA

Create a new push notification campaign in AppMetrica. Requires APPMETRICA_ALLOW_WRITE=true to be set.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesAppMetrica application ID
nameYesCampaign name
messageYesPush notification message content
audienceNoAudience targeting options
scheduleNoSchedule options for the campaign

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It only discloses the write permission requirement. Missing details on side effects, idempotency, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words. Front-loads the purpose, then adds a critical requirement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite good schema coverage, the description lacks information about return values, success indicators, or validation. With no output schema and 5 parameters including nested objects, more context is needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with adequate descriptions for all parameters. The description does not add additional meaning beyond the schema, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (create), resource (push notification campaign), and platform (AppMetrica). The description is specific and distinguishes from sibling tools like list_push_campaigns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions a required precondition (APPMETRICA_ALLOW_WRITE=true). However, it does not discuss when to use this tool versus alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_crashesA

Export raw crash logs from AppMetrica for a given application and time range. Use this for per-crash-name breakdowns — get_report only exposes the total ym:cr:crashes count. Same async/rate-limit behaviour as export_events: poll up to ~60s, retry after a few minutes for wide ranges, run sequentially.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesAppMetrica application ID
date_fromYesStart date YYYY-MM-DD
date_toYesEnd date YYYY-MM-DD
fieldsNoComma-separated fields to return. Defaults: crash_name,crash_datetime,crash_receive_datetime,appmetrica_device_id,app_version_name,os_version,device_model,country_iso_code
limitNoMaximum number of crash records to return

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses async behavior, polling timeout, retry advice, and sequential execution. Lacks explicit statement on read-only or side effects, but these are implied by export/log context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each serving a clear purpose: purpose, usage differentiation, behavioral notes. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage, behavior, and links to sibling export_events. Missing return format (raw logs? CSV?) and prerequisites like authentication. Still reasonably complete given no annotations or output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. The description does not add semantic detail beyond schema descriptions for parameters like fields or limit. No enrichment provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'export', resource 'raw crash logs', and scope 'for a given application and time range'. It also distinguishes from sibling get_report by noting 'per-crash-name breakdowns' versus total count.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool over get_report ('Use this for per-crash-name breakdowns') and provides async/rate-limit behavior guidance ('poll up to ~60s, retry after a few minutes for wide ranges, run sequentially').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_eventsA

Export raw event logs from AppMetrica Logs API. Revenue and in-app purchase data is stored in the event_json field as structured JSON. Default fields: event_name, event_datetime, event_json, appmetrica_device_id, app_version_name, os_version, device_model, country_iso_code, city. To get subscription/purchase data: filter by event_name (e.g. "subscription_purchase") and parse event_json field.

Logs API is asynchronous — the first request usually returns "data not ready" and the result must be re-polled (this wrapper waits up to 60s, so a busy or wide query may need a manual retry after a few minutes). Start with 1-day windows; multi-day exports take noticeably longer to materialise. Run export_events sequentially — 4+ parallel calls hit HTTP 429.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesAppMetrica application ID
date_fromYesStart date YYYY-MM-DD
date_toYesEnd date YYYY-MM-DD
event_nameNoFilter by specific event name (e.g. subscription_purchase)
fieldsNoComma-separated fields to return. Defaults: event_name,event_datetime,event_json,appmetrica_device_id,app_version_name,os_version,device_model,country_iso_code,city
limitNoMaximum number of events to return (default 1000)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description fully covers behavior: async with re-polling (60s wait), rate limiting (429), default fields, revenue data structure in event_json, and performance characteristics. Comprehensive disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise, well-structured paragraphs. Front-loaded with main purpose, then details. Every sentence adds value with zero redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 6 parameters, description covers async behavior, rate limits, defaults, filtering, and performance advice. Complete enough for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100% so baseline 3. Description adds value: explains that event_name filters (e.g., 'subscription_purchase'), event_json contains structured JSON, and lists default fields. Adds meaningful context beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with 'Export raw event logs from AppMetrica Logs API', clearly stating verb (export) and resource (raw event logs). Distinguishes from sibling export tools like export_crashes and export_installations by specifying events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage tips: start with 1-day windows, run sequentially, avoid 4+ parallel calls due to HTTP 429. Also explains async nature and re-polling. Does not explicitly compare to alternatives, but context implies this is for events.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_installationsA

Export raw installation logs from AppMetrica for a given application and time range. Same async/rate-limit behaviour as export_events: poll up to ~60s, retry after a few minutes for wide ranges, run sequentially.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesAppMetrica application ID
date_fromYesStart date YYYY-MM-DD
date_toYesEnd date YYYY-MM-DD
fieldsNoComma-separated fields to return. Defaults: installation_id,install_datetime,appmetrica_device_id,app_version_name,os_version,device_model,country_iso_code,city
limitNoMaximum number of installation records to return

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses important behavioral traits: async, polling up to ~60s, retry for wide ranges, sequential execution. However, it does not detail output structure or potential error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. First sentence clearly states purpose, second provides essential behavioral guidance. Highly efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters and no output schema, the description covers key behavioral aspects (async, rate limits) and references export_events for deeper context. Missing explicit return structure, but sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is already documented. The description adds no additional meaning beyond the schema, thus baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Export', the resource 'raw installation logs', and the scope 'from AppMetrica for a given application and time range'. It effectively distinguishes from sibling tools like export_events and export_crashes by specifying the data type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear behavioral context by referencing export_events' async behavior (poll, retry, sequential), but does not explicitly state when to use this tool versus alternatives or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_applicationA

Get detailed information about a specific AppMetrica application by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesAppMetrica application ID

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It only states 'Get detailed information' without disclosing that it's read-only, effects of missing IDs, or any behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, clear sentence with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one parameter and no output schema, the description is adequate but vague about what 'detailed information' entails. Could specify types of data returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description does not add meaning beyond the schema's parameter description ('AppMetrica application ID'). Baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Get), the resource (detailed information about a specific AppMetrica application), and the method (by its ID). It is distinct from sibling tools like list_applications.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied but not explicitly contrasted with alternatives like list_applications. No when-not-to-use guidance provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_drilldownB

Retrieve drilldown statistics for a specific parent dimension value in AppMetrica. Useful for hierarchical data exploration.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesAppMetrica application ID
parent_idYesParent dimension value ID for drilldown
metricsYesMetric keys to retrieve
date_fromYesStart date in YYYY-MM-DD format
date_toYesEnd date in YYYY-MM-DD format

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden for behavioral disclosure. It only implies a read operation ('Retrieve') without mentioning any behavioral traits such as permissions, idempotency, rate limits, or data scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no extraneous words. The first sentence front-loads the action and resource, making it efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has five required parameters and no output schema. The description fails to explain the return format, pagination, or error scenarios, leaving the agent underinformed about the tool's complete behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All five parameters have descriptions in the input schema (100% coverage), so the description adds little beyond stating the overall purpose. The baseline of 3 is appropriate as the schema handles parameter semantics adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Retrieve' and the resource 'drilldown statistics for a specific parent dimension value in AppMetrica', distinguishing it from sibling tools like list_applications or get_report. However, it does not explicitly differentiate from other data retrieval tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Useful for hierarchical data exploration' provides implied usage context, but there is no explicit guidance on when to use this versus alternatives, nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_push_statsC

Get summary statistics for a specific push notification campaign in AppMetrica.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesAppMetrica application ID
campaign_idYesPush campaign (group) ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It identifies the operation as a read ('get'), but fails to mention if it's safe to call repeatedly, requires specific permissions, or affects any state. This is insufficient for a complete behavioral understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, compact and to the point. It contains no unnecessary words. However, it could be slightly improved by including a brief description of the output, but it is still efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and annotations, the description should provide more context about what 'summary statistics' entails and the nature of the response. It does not describe the return format or any constraints, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both parameters (app_id and campaign_id), so the description does not need to repeat them. The description adds no extra meaning beyond the schema, which aligns with the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves summary statistics for a specific push notification campaign in AppMetrica. It uses a specific verb ('Get') and resource ('summary statistics'), making the purpose clear. However, it does not explicitly differentiate from sibling tools like list_push_campaigns or create_push_campaign, so it falls short of a perfect 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, no prerequisites or exclusions are mentioned. The description only states what it does, not when it should be chosen over other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reportA

Retrieve aggregated statistics from AppMetrica. Call list_metrics first for the catalogue with namespace grammar and known-bad keys. Quick reference: ym:u:* users · ym:s:* sessions · ym:cr:* crashes · ym:ge:* general events · ym:i:* installs · ym:pc:* push campaigns Common 4002 traps: ym:u:sessions, ym:u:crashes, ym:u:revenue do not exist — use ym:s:, ym:cr:, and event_json from export_events instead. Retention / per-user push opens / per-event aggregates are not exposed via get_report at all (use export_events / export_crashes, or the AppMetrica UI). Mixing ym:u:/ym:s:/ym:cr: in one metrics= call has been observed to work; mixing more distant prefixes (e.g. ym:ge:+ym:pc:) is unsupported per docs.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesAppMetrica application ID
metricsYesMetric keys to retrieve, e.g. ['ym:u:users', 'ym:s:sessions', 'ym:cr:crashes']
dimensionsNoDimension keys for breakdown, e.g. ['ym:u:date', 'ym:u:appVersion']
date_fromYesStart date in YYYY-MM-DD format
date_toYesEnd date in YYYY-MM-DD format
limitNoMaximum number of rows to return

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description compensates by detailing behavior (working and non-working metric combinations, error codes). Could explicitly state read-only nature but clearly implies retrieval.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is front-loaded with purpose and includes dense, useful information. Slightly long but every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 params and no output schema, description covers prerequisites, common errors, and usage boundaries. Lacks return format explanation but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; description adds value with quick reference to metric keys and common traps, though parameter semantics for dimensions and limit could be enhanced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves aggregated statistics from AppMetrica, specifies metric key prefixes, and distinguishes from sibling tools like export_events and export_crashes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends calling list_metrics first, lists common error traps (4002), and notes when not to use this tool (e.g., retention, per-user data) and what alternatives to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_applicationsA

List all AppMetrica applications available to the authenticated user. Returns application IDs, names, platforms, and creation dates.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It is clear that the tool is read-only and returns a list of applications with specified fields. It does not mention pagination or limits, but given zero parameters, this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence of 17 words with no fluff. It efficiently communicates the tool's purpose and output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with no parameters and no output schema, the description covers the essential information: what it does and what it returns. It could hint at sorting or filtering defaults, but is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is 100% vacuously. The description does not need to add parameter meaning beyond the schema, and it correctly omits any parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'AppMetrica applications', and specifies the return fields (IDs, names, platforms, creation dates). This distinguishes it from sibling tools that deal with other operations like creating campaigns or exporting data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing all applications available to the user, but does not explicitly contrast with alternatives like get_application for a single application. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_metricsA

Catalogue of AppMetrica Reports API metric and dimension keys for get_report / get_drilldown, with namespace grammar and known traps. Each entry has status="verified" (confirmed live) or status="documented" (from AppMetrica docs / R-client examples but not yet probed by this MCP). This is NOT exhaustive — AppMetrica does not publish a public metadata endpoint and the docs are SmartCaptcha-gated. Unknown keys fail with HTTP 4002 (metric) or 4001 (dimension).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses non-exhaustive nature, status field meaning, error codes for unknown keys, and namespace grammar. With no annotations, this provides necessary behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: three sentences that front-load purpose, then add status and limitation details. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter metadata catalog, the description covers purpose, contents, status, and error handling. Lacks explicit output format but is sufficient given no output schema and low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema, so baseline of 4 applies. Description adds no parameter info as none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it is a catalogue of metric and dimension keys for get_report/get_drilldown, with statuses and grammar. This distinguishes it from sibling reporting tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage: consult this tool to discover valid keys before calling get_report or get_drilldown. No explicit when-not-to-use, but context with siblings makes it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_push_campaignsB

List push notification campaigns (groups) for an AppMetrica application. Optionally filter by campaign status.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesAppMetrica application ID
statusNoFilter campaigns by status: active, paused, or finished

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full responsibility for behavioral context. It only states the core function (list with optional filter) without disclosing side effects, authentication needs, rate limits, or error handling. This is insufficient for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no extraneous information. The main action is front-loaded, and the optional filter is mentioned naturally. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description does not explain what the tool returns (e.g., fields, structure). It is minimal but adequate for a simple list operation, though more detail on response format would improve agent utility.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes both parameters with 100% coverage. The description adds 'Optionally filter by campaign status' which is redundant with the schema. No new semantic nuance beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists push notification campaigns for AppMetrica, using specific verb 'list' and resource 'campaigns'. It distinguishes from sibling tools like create_push_campaign (creation) and other list tools (list_applications, list_metrics), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives. It lacks explicit when-to-use or when-not-to-use context, leaving the agent to infer usage solely from the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct resource or operation: export tools handle different data types (events, crashes, installations), report tools vary in granularity (report vs drilldown), and push campaign management is separated into create, list, and stats. No significant overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: create_, export_, get_, list_. Verbs are uniform and nouns clearly describe the resource or data type.

Tool Count5/5

11 tools cover the core functionalities of the AppMetrica domain: application listing/detail, report generation, raw data export, and push campaign management. The count feels well-scoped without unnecessary redundancy.

Completeness4/5

The tool surface provides read operations (get, list, export, report) and a create operation for push campaigns. Missing update/delete for campaigns and apps, but the analytics reporting and data export are thoroughly covered. Minor gaps that agents can work around.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    Not graded
    maintenance
    An MCP server that gives Claude access to Ogury's campaign reporting API, enabling retrieval of campaign performance metrics and reports through natural language queries.
    2
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides access to Yandex Metrika analytics data through various tools and functions. This server allows AI assistants and applications to retrieve comprehensive analytics data from Yandex Metrika accounts.
    1
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Yandex Metrica analytics: query web analytics metrics, goals, conversions, and raw API data using natural language from AI clients like Claude and Cursor.
    8
    123
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pavellunev/app_metrica_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server