appmetrica-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@appmetrica-mcpList my AppMetrica applications"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Fill in any name (e.g.
AppMetrica MCP)Under Platforms, select Web services and set the Callback URI to:
https://oauth.yandex.ru/verification_codeUnder Доступы (Access), find the AppMetrica section and enable:
Чтение данных AppMetrica— read access (required)Запись данных AppMetrica— write access (optional, needed for push campaign creation)
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_IDLog 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 Code (recommended)
claude mcp add appmetrica \
-e APPMETRICA_OAUTH_TOKEN=your_token \
-- npx -y appmetrica-mcpTo enable write operations (push campaign creation):
claude mcp add appmetrica \
-e APPMETRICA_OAUTH_TOKEN=your_token \
-e APPMETRICA_ALLOW_WRITE=true \
-- npx -y appmetrica-mcpClaude 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 buildConfiguration
Variable | Required | Default | Description |
| Yes | — | Yandex OAuth token with AppMetrica scope |
| No |
| Set to |
Available Tools
Management
Tool | Description |
| List all AppMetrica applications in your account |
| Get details for a specific application by ID |
Reporting
Tool | Description |
| Fetch aggregated metrics for a date range (users, sessions, crashes, etc.) |
| Drill down into a dimension value for detailed breakdown |
| List available metric keys with descriptions |
Logs
Tool | Description |
| Export raw custom event logs |
| Export raw crash logs |
| Export raw installation logs |
Push Notifications
Tool | Access | Description |
| Read | List push notification campaigns with optional status filter |
| Read | Get delivery statistics for a campaign |
| Write | Create a push campaign (requires |
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 toolscreate_push_campaignA
Create a new push notification campaign in AppMetrica. Requires APPMETRICA_ALLOW_WRITE=true to be set.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | AppMetrica application ID | |
| name | Yes | Campaign name | |
| message | Yes | Push notification message content | |
| audience | No | Audience targeting options | |
| schedule | No | Schedule options for the campaign |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | AppMetrica application ID | |
| date_from | Yes | Start date YYYY-MM-DD | |
| date_to | Yes | End date YYYY-MM-DD | |
| fields | No | Comma-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 | |
| limit | No | Maximum number of crash records to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | AppMetrica application ID | |
| date_from | Yes | Start date YYYY-MM-DD | |
| date_to | Yes | End date YYYY-MM-DD | |
| event_name | No | Filter by specific event name (e.g. subscription_purchase) | |
| fields | No | Comma-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 | |
| limit | No | Maximum number of events to return (default 1000) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | AppMetrica application ID | |
| date_from | Yes | Start date YYYY-MM-DD | |
| date_to | Yes | End date YYYY-MM-DD | |
| fields | No | Comma-separated fields to return. Defaults: installation_id,install_datetime,appmetrica_device_id,app_version_name,os_version,device_model,country_iso_code,city | |
| limit | No | Maximum number of installation records to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | AppMetrica application ID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | AppMetrica application ID | |
| parent_id | Yes | Parent dimension value ID for drilldown | |
| metrics | Yes | Metric keys to retrieve | |
| date_from | Yes | Start date in YYYY-MM-DD format | |
| date_to | Yes | End date in YYYY-MM-DD format |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | AppMetrica application ID | |
| campaign_id | Yes | Push campaign (group) ID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | AppMetrica application ID | |
| metrics | Yes | Metric keys to retrieve, e.g. ['ym:u:users', 'ym:s:sessions', 'ym:cr:crashes'] | |
| dimensions | No | Dimension keys for breakdown, e.g. ['ym:u:date', 'ym:u:appVersion'] | |
| date_from | Yes | Start date in YYYY-MM-DD format | |
| date_to | Yes | End date in YYYY-MM-DD format | |
| limit | No | Maximum number of rows to return |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | AppMetrica application ID | |
| status | No | Filter campaigns by status: active, paused, or finished |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
Clamp Analytics MCP server: traffic, revenue, funnels, cohorts, errors, and search, for AI agents.
MCP server for Appcircle mobile CI/CD platform.
Hosted MCP server for Google Ads and LinkedIn Ads analysis.
Related MCP Servers
- FlicenseCqualityNot gradedmaintenanceAn 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
- FlicenseNot gradedqualityDmaintenanceA 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
- AlicenseCqualityDmaintenanceMCP server for Yandex Metrika analytics, enabling AI assistants to access traffic, content, demographics, conversion, e-commerce, and drill-down reports.312MIT
- AlicenseAqualityAmaintenanceMCP 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.81231MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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