Yandex Metrika 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., "@Yandex Metrika MCPList all my counters"
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.
🗄 Репозиторий заархивирован
Разработка переехала в theYahia/YaAll — сборку, где весь яндексовский слой лежит в одном месте: официальные MCP-серверы Яндекса, MCP под Директ и Метрику, скилл YaGEO и Wordstat-гейт.
Актуальная версия того, что лежало здесь:
mcp/yandex-metrika-mcp/Здесь больше ничего не обновляется. Задачи и pull request'ы — в YaAll.
Archived — development moved to theYahia/YaAll, a single repository bundling the whole Yandex stack. The current version of this package now lives at
mcp/yandex-metrika-mcp/. Please open issues and pull requests there.
@theyahia/yandex-metrika-mcp
MCP server for Yandex.Metrica API — counters, goals, reports, logs, traffic sources, top pages. 15 tools, OAuth Bearer token auth.
Part of the Russian API MCP series by @theYahia.
Related MCP server: ya-metrics-mcp
Getting a Token
Go to oauth.yandex.ru
Create an app (or use an existing one)
Under Platforms, select "Web services"
Under Access, add:
Yandex.Metrica->Read statistics and counter parametersGet the OAuth token:
https://oauth.yandex.ru/authorize?response_type=token&client_id=YOUR_CLIENT_IDCopy the token from the redirect URL (
access_token=...)
Installation
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"yandex-metrika": {
"command": "npx",
"args": ["-y", "@theyahia/yandex-metrika-mcp"],
"env": {
"YANDEX_METRIKA_TOKEN": "your_token"
}
}
}
}Claude Code
claude mcp add yandex-metrika -e YANDEX_METRIKA_TOKEN=your_token -- npx -y @theyahia/yandex-metrika-mcpStreamable HTTP (remote / multi-client)
YANDEX_METRIKA_TOKEN=your_token npx @theyahia/yandex-metrika-mcp --http --port=3000Endpoint: POST http://localhost:3000/mcp
Health check: GET http://localhost:3000/health
Smithery
Use smithery.yaml from the repository. Requires YANDEX_METRIKA_TOKEN.
Environment Variables
Variable | Required | Description |
| Yes | OAuth 2.0 Bearer token from Yandex OAuth |
Tools (15)
Management — Counters
Tool | Description |
| List all counters. Filter by name/URL with |
| Get full details of a single counter by ID. |
| Create a new counter for a website. |
| Update counter name or site URL. |
| Permanently delete a counter (irreversible). |
Management — Goals
Tool | Description |
| List all goals for a counter. |
| Create a goal (url, number, step, action types). |
| Delete a goal from a counter. |
Management — Logs
Tool | Description |
| Export raw visit/hit logs via the Logs API. |
Reporting API
Tool | Description |
| Flexible reporting — any metrics + dimensions + filters + sort. |
| Compare two date periods (A vs B). |
| Hierarchical drill-down into report dimensions. |
Convenience Wrappers
Tool | Description |
| Quick overview: visits, pageviews, users, bounce rate, avg duration. |
| Traffic sources breakdown by channel. |
| Top pages by pageviews with performance metrics. |
Demo Prompts
Show me all my Yandex.Metrica countersCompare last week's traffic to the previous week for counter 12345678What are the top 10 pages on my site this month, sorted by pageviews?Development
npm install
npm run build
npm test
npm run dev # stdio mode
npm run start:http # HTTP mode on port 3000API Reference
License
MIT
Available Tools
15 toolscreate_counterA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Counter display name | |
| site | Yes | Website domain (e.g. 'example.com') | |
| mirrors | No | Mirror domains to track alongside the main site |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses the return value and a required follow-up action, but does not mention side effects, required permissions, or any potential errors. Basic behavioral coverage but lacks depth.
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, compact and front-loaded: first sentence states purpose and return, second gives a clear next step. No redundant or extra 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?
Despite lacking an output schema, the description covers what the tool returns (counter ID and tracking code) and the necessary post-action. For a simple create tool with three parameters, this is nearly complete; could mention error handling or edge cases.
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 has 100% coverage with descriptions for all three parameters. The tool description does not add additional meaning beyond the schema; e.g., it mentions 'website' but not the parameter details. 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' and the resource 'Yandex.Metrica counter', with specific return values (ID and tracking code). Distinguishes from sibling tools like list_counters, update_counter, and delete_counter.
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 describes when to use (to create a new counter) and the post-requisite (install tracking code). Does not mention when not to use or alternative tools, but the context is clear given sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_goalB
Create a new conversion goal for a counter. Supports types: 'url' (page visit), 'number' (page count threshold), 'step' (multi-step funnel), 'action' (JavaScript event).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Goal display name | |
| type | Yes | Goal type: 'url' (page visit), 'number' (page count), 'step' (multi-step funnel), 'action' (JS event) | |
| conditions | No | Conditions array. Required for url, step, action goal types. | |
| counter_id | Yes | Counter ID to create the goal in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It states 'Create' implies mutation but does not disclose side effects, activation behavior, or error handling.
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 clear front-loaded purpose; 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?
Adequate for a four-parameter creation tool but lacks details on return value, error handling, and behavioral nuances beyond type descriptions.
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 property descriptions. Description adds context on goal types but largely mirrors schema content.
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 'Create a new conversion goal for a counter' and lists goal types with explanations, distinguishing from sibling tools like list_goals and delete_goal.
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 on when to use this tool versus alternatives, no prerequisites (e.g., counter must exist), and no when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_counterA
Permanently delete a Yandex.Metrica counter. This action is irreversible — all historical data for this counter will be lost.
| Name | Required | Description | Default |
|---|---|---|---|
| counter_id | Yes | Counter ID to delete. This action is irreversible. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It clearly states the action is irreversible and all historical data will be lost, which is good. Could mention permission requirements or recovery options but still strong.
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 short sentences front-load the action and consequence. Every word is necessary and there is no redundancy or fluff.
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 simplicity of the tool (single parameter, no output schema), the description is fairly complete. It explains what it does and the major consequence. Could add a note that the counter must exist or about permissions, but generally 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 description coverage is 100% for the single parameter counter_id. The tool description adds no additional meaning beyond what is in the schema (both repeat 'this action is irreversible'). Baseline 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 it permanently deletes a Yandex.Metrica counter, explicitly noting irreversibility and data loss. It distinguishes from siblings like update_counter (modifies) and delete_goal (different resource).
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 permanent deletion but does not provide explicit guidance on when to use this tool versus alternatives or any prerequisites. Lacks when-not-to-use or alternative tool suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_goalA
Delete a conversion goal from a counter. Historical goal data in reports is preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| goal_id | Yes | Goal ID to delete | |
| counter_id | Yes | Counter ID the goal belongs to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that historical data is preserved, which is a key behavioral trait beyond the delete action. With no annotations, this adds valuable context, though it could mention permissions or reversibility.
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. Front-loaded and 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?
Adequate for a simple delete tool, but lacks information about expected output, error handling, or idempotency. Could be more complete given no output schema or annotations.
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 parameters are well-documented there. The description adds no additional meaning beyond what's in the schema, meeting the baseline.
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 'Delete a conversion goal from a counter' with specific verb and resource. It distinguishes from sibling tools like list_goals and create_goal.
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 explicit when-to-use or alternatives. The behavioral note about historical data preservation provides some context but no guidance on when not to use or sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_logsA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| date1 | Yes | Дата начала в формате YYYY-MM-DD | |
| date2 | Yes | Дата окончания в формате YYYY-MM-DD | |
| fields | No | Поля через запятую. По умолчанию для visits: ym:s:date,ym:s:clientID,ym:s:lastTrafficSource,ym:s:visitDuration | |
| source | No | Тип данных: visits (визиты) или hits (просмотры) | visits |
| counter_id | Yes | ID счётчика Яндекс.Метрики |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavior. It mentions 'creates a log request and evaluates feasibility' but does not clarify whether the export is synchronous, what the response contains (e.g., a job ID), or any side effects. More detail needed for a mutation-like operation.
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, front-loaded with purpose, then usage. 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?
Covers core parameters and usage, but missing details on output format, async behavior, and error handling. With no output schema, description should provide more context on what the tool returns.
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 description coverage is 100%, but description adds value by explaining default fields for visits and the meaning of source values. It compensates for schema being in Russian, improving usability.
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 it exports raw visit or hit logs via Logs API, creating a log request. Distinguishes between source='visits' and source='hits' for session vs pageview data, which is specific and distinguishes 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?
Provides explicit guidance on when to use source='visits' versus 'hits'. However, does not mention when not to use this tool or alternatives like get_report for aggregated data, but the sibling list implies those exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_counterA
Get full details of a single Yandex.Metrica counter by ID, including configuration, code snippet status, and goals count.
| Name | Required | Description | Default |
|---|---|---|---|
| counter_id | Yes | Counter ID to retrieve details for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool returns 'full details' but does not disclose whether the operation is read-only, idempotent, or any potential side effects. The verb 'Get' implies a read, but explicit transparency about behavior is lacking.
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, concise sentence (17 words) that effectively communicates the tool's purpose without extraneous information. It is appropriately front-loaded and 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 that there is no output schema and no annotations, the description provides sufficient context for a simple read operation. It lists key elements returned (configuration, code snippet status, goals count), but could offer more detail on response structure. Still, it adequately covers the tool's functionality.
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 description coverage is 100% for the single parameter 'counter_id', which already has a clear description. The tool description does not add any additional meaning or constraints beyond what the schema provides, so it meets the baseline but does not improve it.
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 'Get', the resource 'full details of a single Yandex.Metrica counter', and specific items included ('configuration, code snippet status, and goals count'). It distinguishes from siblings like list_counters by specifying 'single counter' and 'full details'.
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 explicitly state when to use this tool versus alternatives such as list_counters or update_counter. Usage is implied by the purpose, but no direct guidance or conditions are provided, which is a gap given the number of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportB
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field, prefix with '-' for descending, e.g. '-ym:s:visits' | |
| date1 | Yes | Start date YYYY-MM-DD | |
| date2 | Yes | End date YYYY-MM-DD | |
| limit | No | Max rows to return (default 100) | |
| filters | No | Filter expression, e.g. ym:s:trafficSource=='organic' | |
| metrics | Yes | Metrics array, e.g. ['ym:s:visits', 'ym:s:pageviews', 'ym:s:bounceRate', 'ym:s:avgVisitDurationSeconds'] | |
| counter_id | Yes | Yandex.Metrica counter ID | |
| dimensions | No | Dimensions array, e.g. ['ym:s:trafficSource', 'ym:s:browser', 'ym:s:country', 'ym:s:deviceCategory'] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It does not mention that the tool is read-only, any rate limits, authentication requirements, or pagination details beyond a default limit. The description lacks key 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?
Two sentences: first sentence defines the tool's purpose, second provides examples of metrics, dimensions, filters, and sorting. Every sentence is necessary and well-structured.
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?
While the description covers purpose and parameters, it does not describe the output format or behavior. Since no output schema exists, the description should mention what the response looks like (e.g., a JSON array). Adequate but incomplete.
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%, but the description adds value by listing example metrics and dimensions, and mentioning filters and sorting. This provides practical context beyond the schema descriptions.
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 is a flexible reporting endpoint for Yandex.Metrica, listing specific metrics and dimensions. However, it does not differentiate from sibling tools like get_report_comparison or get_report_drilldown.
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 on when to use this tool versus alternatives. Given multiple sibling report tools, the description should indicate scenarios where this flexible endpoint is preferred over more specific ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_report_comparisonA
Compare metrics between two date periods (A vs B). Useful for week-over-week, month-over-month, or campaign before/after analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| date1_a | Yes | Period A start date YYYY-MM-DD | |
| date1_b | Yes | Period B start date YYYY-MM-DD | |
| date2_a | Yes | Period A end date YYYY-MM-DD | |
| date2_b | Yes | Period B end date YYYY-MM-DD | |
| metrics | Yes | Metrics to compare | |
| counter_id | Yes | Yandex.Metrica counter ID | |
| dimensions | No | Dimensions to group by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as authentication requirements, rate limits, data freshness, or whether the tool is read-only. The description only states what the tool does, not how it behaves.
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 with no redundant information. The purpose is front-loaded immediately.
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 7 parameters (6 required) and no output schema, the description is too minimal. It lacks details on return format, comparison logic (e.g., percentage change, absolute difference), and any limitations. The complexity of comparing two date periods is not adequately addressed.
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 the schema already documents all parameters. The description does not add meaningful details beyond the schema, e.g., it doesn't explain the relationship between the two periods or how metrics are compared.
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 'Compare' and resource 'metrics between two date periods', and provides specific examples (week-over-week, month-over-month, campaign before/after) that distinguish it from sibling tools like get_report or get_report_drilldown.
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 gives explicit use cases (week-over-week, etc.) and implies when to use the tool. However, it does not mention when not to use it or suggest alternatives like get_report for non-comparison needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_report_drilldownA
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).
| Name | Required | Description | Default |
|---|---|---|---|
| date1 | Yes | Start date YYYY-MM-DD | |
| date2 | Yes | End date YYYY-MM-DD | |
| metrics | Yes | Metrics to retrieve | |
| parent_id | No | Parent row ID to drill into. Omit for top-level. | |
| counter_id | Yes | Yandex.Metrica counter ID | |
| dimensions | Yes | Dimensions for drill-down hierarchy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral aspects. It explains the hierarchical drill-down behavior via parent_id, but does not disclose potential errors, rate limits, or authentication needs. The description is adequate but not exhaustive.
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, front-loaded with core purpose and verb, followed by explanatory examples. No wasted words; concise yet informative.
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 6 parameters, no output schema, and no annotations, the description covers the main usage scenario. It lacks details on return format and constraints on arrays, but the core drill-down concept is well communicated. Slightly more could be added about required parameters and limitations.
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 descriptions for all parameters. The description adds value by explaining the role of parent_id and the drill-down pattern with examples, going beyond the schema's basic parameter descriptions.
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 drills down hierarchically into report data, with specific verb 'drill down' and resource 'report data'. It distinguishes from siblings by indicating hierarchical exploration, unlike non-hierarchical report 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 description implies usage context: start at top level, then use parent_id for deeper levels. It provides examples but does not explicitly state when not to use or mention alternatives like get_report for non-hierarchical queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_pagesA
Top pages by pageviews for a counter. Returns URL, visits, pageviews, bounce rate, and avg duration for each page. Useful for content performance analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| date1 | Yes | Start date YYYY-MM-DD | |
| date2 | Yes | End date YYYY-MM-DD | |
| limit | No | Number of pages to return (default 20) | |
| counter_id | Yes | Yandex.Metrica counter ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns data (URL, visits, etc.) but does not explicitly state it is read-only, idempotent, or safe. The name 'get' implies read-only, but the description adds minimal behavioral context beyond what the name and schema already suggest.
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 long, front-loading the purpose and then listing return fields and a usage hint. Every sentence adds value; there is no fluff 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?
Given no output schema, the description helpfully lists the return fields (URL, visits, pageviews, bounce rate, avg duration) and provides a usage context. It covers the key aspects of the tool's function, though it does not mention ordering, pagination, or default limits explicitly (though limit param is in schema). Overall, it is fairly complete for a retrieval tool.
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 description coverage is 100%, with each parameter already described in the schema. The description does not add any additional meaning or clarification beyond what the schema provides, so it meets the baseline but does not go further.
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 returns 'top pages by pageviews' and lists the returned fields (URL, visits, pageviews, bounce rate, avg duration). This is a specific verb+resource that distinguishes it from sibling tools like get_report, get_counter, or list_counters which deal with different 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 says 'Useful for content performance analysis,' giving a usage hint, but does not explicitly state when to use this tool versus alternatives like get_report or get_traffic_sources. No exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_traffic_sourcesB
Traffic sources breakdown — visits and users by source channel (organic search, direct, social, referral, ad). Quick way to see where traffic comes from.
| Name | Required | Description | Default |
|---|---|---|---|
| date1 | Yes | Start date YYYY-MM-DD | |
| date2 | Yes | End date YYYY-MM-DD | |
| counter_id | Yes | Yandex.Metrica counter ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the burden. It implies a read operation but does not disclose data freshness, pagination, or error conditions. The description adds some behavioral context (channels included) but lacks depth.
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, both substantive. Front-loaded with the key purpose and examples of channels. No wasted words or 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?
For a simple read tool with no output schema, the description could be more complete by describing the return format or data structure. It mentions visits and users by channel but not how they are presented, which may leave the agent uncertain.
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 clear parameter descriptions. The tool description adds context that the output is broken down by source channels, but does not enhance parameter semantics beyond the schema. Baseline 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 it provides a breakdown of traffic sources by channel (organic search, direct, social, referral, ad), specifying visits and users. It is a specific verb-resource pair, though it could better differentiate from sibling tools like get_traffic_summary.
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 on when to use this tool versus alternatives such as get_traffic_summary or get_report. There is no mention of prerequisites, limitations, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_traffic_summaryA
Quick traffic overview for a counter over a date range. Returns visits, pageviews, unique users, bounce rate, and average visit duration in one call.
| Name | Required | Description | Default |
|---|---|---|---|
| date1 | Yes | Start date YYYY-MM-DD | |
| date2 | Yes | End date YYYY-MM-DD | |
| counter_id | Yes | Yandex.Metrica counter ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states what is returned but does not mention whether the operation is read-only, any required permissions, or potential side effects. For a tool lacking annotations, this is insufficient.
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 that is front-loaded with the core purpose ('Quick traffic overview') and efficiently lists the returned metrics. Every word adds value; no unnecessary text.
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 the lack of an output schema, the description adequately explains what is returned (visits, pageviews, etc.). However, it could mention the data source (though the parameter description does) or any limitations. Overall, it is fairly complete for a simple tool.
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 description coverage is 100%, so the schema already documents all three parameters. The description adds the context of a 'quick overview' but does not provide additional meaning beyond what the schema offers. 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 uses a specific verb ('Returns') and clearly lists the exact metrics (visits, pageviews, etc.), distinguishing it from sibling tools like `get_report` which are more general.
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 'Quick traffic overview' implies a consolidated summary, but there is no explicit guidance on when to use this tool instead of `get_traffic_sources` or `get_report`. No when-not-to-use or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_countersA
List all Yandex.Metrica counters available to the authenticated user. Returns counter ID, name, site URL, and status. Supports search filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | Fields to return, comma-separated (e.g. 'name,site,status') | |
| per_page | No | Results per page (default 100, max 10000) | |
| search_string | No | Filter counters by name or site URL substring |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions authentication context and search filtering but omits details on pagination (implied by per_page param), rate limits, or whether the operation is read-only (assumed safe).
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, front-loaded with purpose, followed by return fields and capabilities. No extraneous content.
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 list tool with 3 params and no output schema, the description covers purpose and search but lacks mention of pagination behavior, sorting, error cases, or return format limits.
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 each parameter described. The description adds 'search filtering' aligning with search_string but does not enhance meaning beyond the 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?
The description clearly states the tool lists all Yandex.Metrica counters and specifies returned fields (ID, name, site URL, status). It distinguishes from sibling CRUD tools like create_counter and update_counter.
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 listing as the use case but does not provide explicit guidance on when to use this tool versus alternatives (e.g., get_counter for a single counter) 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.
list_goalsA
List all goals configured for a Yandex.Metrica counter. Goals track conversions like page visits, button clicks, or multi-step funnels.
| Name | Required | Description | Default |
|---|---|---|---|
| counter_id | Yes | Counter ID to list goals for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the action (list) without disclosing behavioral traits such as readOnly vs destructive, authentication requirements, rate limits, pagination behavior, or response format. For a simple list tool, minimal transparency is provided.
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, front-loaded with the main action. Each sentence adds value without redundancy. Efficient and clear.
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 tool's simplicity (one parameter, no output schema), the description covers the purpose and parameter. However, it lacks information about return format, pagination, limits, or any error conditions, leaving some completeness gaps.
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 has 100% coverage (counter_id described clearly). The description adds context by explaining what goals represent ('conversions like page visits, button clicks, or multi-step funnels'), which aids understanding beyond the schema's basic parameter description.
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 states 'List all goals configured for a Yandex.Metrica counter.' This clearly identifies the verb (list), resource (goals), and scope (for a counter), distinguishing it from siblings like list_counters (counters) and create_goal (goal creation).
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?
Description implies usage when an agent needs to retrieve goals for a counter, but does not explicitly state when to use this tool versus alternatives like create_goal, delete_goal, or list_counters. No guidance on prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_counterA
Update an existing Yandex.Metrica counter — change its name or site URL.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New counter display name | |
| site | No | New website domain | |
| counter_id | Yes | Counter ID to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only says 'update' and lists the fields, but does not disclose behavioral aspects such as permissions required, idempotency, side effects, or reversibility. For a mutation tool, this is insufficient.
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 that front-loads the core purpose. It is concise with no unnecessary 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?
The tool has three parameters with good schema coverage, but no output schema. The description does not mention return values, error cases, or partial update behavior. For a simple update, it covers the basics but lacks completeness in describing what happens after the update.
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 each parameter has a clear description. The tool description adds 'change its name or site URL', which is consistent with the schema but does not significantly enhance understanding beyond the schema definitions.
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 'Update an existing Yandex.Metrica counter — change its name or site URL.' It specifies the verb (update), resource (counter), and the specific fields (name, site URL), distinguishing it from siblings like create_counter or delete_counter.
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 implicitly suggests using this tool when you need to change the name or URL of a counter, but it does not explicitly state when not to use it or compare with alternatives like create_goal or delete_counter. No exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
15 tool updates
v2.1.1- First observed
create_counter - First observed
create_goal - First observed
delete_counter - First observed
delete_goal - First observed
export_logs - First observed
get_counter - First observed
get_report - First observed
get_report_comparison - First observed
get_report_drilldown - First observed
get_top_pages - First observed
get_traffic_sources - First observed
get_traffic_summary - First observed
list_counters - First observed
list_goals - First observed
update_counter
TDQS
Each tool targets a distinct operation (e.g., CRUD for counters, goal management, specific report types) with no overlapping purposes, ensuring agents can easily differentiate them.
All tools follow a consistent verb_noun pattern using snake_case (e.g., list_counters, create_goal, get_report), making the set predictable and easy to navigate.
15 tools is well-scoped for an analytics server, covering counter management, goal management, and various reporting needs without being overwhelming or too sparse.
The tool surface covers core CRUD for counters, goal management (except update_goal), and comprehensive reporting (multiple specialized get_report_* tools). Minor gaps like goal updates are present but do not severely hinder workflows.
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
MCP server that delivers up-to-date Bitrix24 REST API documentation.
Google Ads MCP server — manage campaigns, keywords, and metrics.
Google Ads, Meta Ads & GA4 MCP server - 250+ tools for campaigns, creatives, audiences & reports.
Related MCP Servers
- 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
- AlicenseAqualityFmaintenanceMCP server for interacting with Yandex.Webmaster API to manage sites, retrieve search queries, and check indexing status. Requires an OAuth token.13713MIT
- AlicenseBqualityBmaintenanceMCP server for managing Yandex Direct advertising, Yandex Metrica analytics, Wordstat keyword research, and Yandex Webmaster SEO tools, with self-configuring OAuth; provides 153 tools for complete ad and search workflows from AI assistants.100193MIT
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/theYahia/yandex-metrika-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server