Skip to main content
Glama
askads

Yandex Wordstat MCP

Яндекс Вордстат MCP

npm CI Glama License: MIT

Яндекс Вордстат MCP connects an AI application to Yandex search demand statistics. Ask how often a phrase is searched, in which months interest grows, and in which cities the topic is more popular — the assistant will collect Wordstat data and explain the result. The server works through Yandex Cloud Search API, so it does not require access to the Direct advertising account.

  • Five tools. Top and similar queries, demand dynamics, regional distribution, region reference, and a technical API request.

  • Read-only. The Wordstat API does not create campaigns, ads, key phrases, or other objects.

  • Demand and seasonality. Top queries and regions show the last 30 days; dynamics are built by day, week, or month for the desired period.

  • Region and device. Reports can be narrowed to a region and compare demand on computers, phones, and tablets.

  • No Direct OAuth. You need an API key and a Yandex Cloud folder ID for Search API.

Start with a safe request:

How many times a month is "buy a bike" searched, and what similar queries are there?

Connect the server · See scenarios · Open technical documentation


See it work in a minute

Related MCP server: yandex-searchapi-mcp

Contents

Quick start

You need Node.js 20 or newer, a Yandex Cloud API key for Search API, and a Yandex Cloud folder ID.

  1. Get access and add the server to your AI application — instructions for five applications below.

  2. Ask: "How many times a month is 'buy a bike' searched, and what similar queries are there?"

Through the application interface:

  1. Open Settings → Plugins → MCP servers.

  2. Click Add server.

  3. Add the launch command npx -y mcp-yandex-wordstat@latest and environment variables WORDSTAT_API_KEY, WORDSTAT_FOLDER_ID.

Through the command line:

codex mcp add yandex-wordstat \
  --env WORDSTAT_API_KEY=ваш_ключ \
  --env WORDSTAT_FOLDER_ID=ваш_folder_id \
  -- npx -y mcp-yandex-wordstat@latest

Check the connection:

codex mcp list

Official Codex instructions

claude mcp add \
  --env WORDSTAT_API_KEY=ваш_ключ \
  --env WORDSTAT_FOLDER_ID=ваш_folder_id \
  --transport stdio \
  --scope user \
  yandex-wordstat \
  -- npx -y mcp-yandex-wordstat@latest

Check the server:

claude mcp list

Claude Code documentation

Open Settings → Developer → Edit Config and add the server to claude_desktop_config.json:

{
  "mcpServers": {
    "yandex-wordstat": {
      "command": "npx",
      "args": ["-y", "mcp-yandex-wordstat@latest"],
      "env": {
        "WORDSTAT_API_KEY": "ваш_ключ",
        "WORDSTAT_FOLDER_ID": "ваш_folder_id"
      }
    }
  }
}

If Edit Config is unavailable, edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows.

For all projects, create ~/.cursor/mcp.json; for the current project only, create .cursor/mcp.json:

{
  "mcpServers": {
    "yandex-wordstat": {
      "command": "npx",
      "args": ["-y", "mcp-yandex-wordstat@latest"],
      "env": {
        "WORDSTAT_API_KEY": "ваш_ключ",
        "WORDSTAT_FOLDER_ID": "ваш_folder_id"
      }
    }
  }
}

Cursor documentation

Open the command palette and run MCP: Open User Configuration. Add to mcp.json:

{
  "servers": {
    "yandex-wordstat": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-yandex-wordstat@latest"],
      "env": {
        "WORDSTAT_API_KEY": "${input:wordstat_api_key}",
        "WORDSTAT_FOLDER_ID": "${input:wordstat_folder_id}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "wordstat_api_key",
      "description": "API-ключ Yandex Cloud",
      "password": true
    },
    {
      "type": "promptString",
      "id": "wordstat_folder_id",
      "description": "ID каталога Yandex Cloud"
    }
  ]
}

Check the launch with the MCP: List Servers command.

VS Code documentation

What you can delegate

Find and evaluate demand

  • "How many times a month is this phrase searched, and what similar queries appear?"

  • "Find queries around 'pizza delivery' with their frequency."

  • "Show queries containing my phrase separately from semantically similar ones."

Understand seasonality

  • "Show demand for 'skis' by month for a year."

  • "In which weeks does demand for this service grow or fall?"

  • "Compare the dynamics of a query on phones and computers."

Compare regions

  • "In which cities is interest in 'apartment renovation' above average?"

  • "Compare demand in Moscow and St. Petersburg."

  • "Find the ID of the needed region and narrow the next report to it."

How to read demand data

top_requests shows popular queries that contain the given phrase and semantically close queries. The overall totalCount refers to the last 30 days.

dynamics returns a series {date, count, share} with daily, weekly, or monthly granularity. regions distributes demand over the last 30 days by region, and an affinityIndex above 100% means above-average interest. Counter values may come as strings: Yandex passes large integers in JSON in this form.

One call builds data for only one phrase. For a large list of keywords, it is better to first narrow the list rather than run all queries in a row: the Yandex Cloud Search API quota is shared for one key.

How to get access

  1. In Yandex Cloud, create a service account with the role search-api.webSearch.user.

  2. Issue an API key for it with the scope yc.search-api.execute — the steps are described in the AI Studio documentation.

  3. Find the folder ID (folderId) in the Yandex Cloud console on the folder page and in the page URL.

  4. Pass the key as WORDSTAT_API_KEY and the folder as WORDSTAT_FOLDER_ID.

The server accesses Yandex Cloud Search API v2. The old separate Wordstat API with OAuth is not used. The API key is stored in plain text in the MCP client configuration — treat it like a password.

What can change the data

Nothing in Яндекс Вордстат. All five tools, including raw_request, work read-only. Technically, the API uses POST, but Wordstat has no write endpoints; the server additionally does not allow an arbitrary request to go to another host.

Data, limits, and background work

  • Aggregated data. The server receives search demand statistics, not data from a specific advertising account.

  • Region reference cache. In a long-lived process, the region tree is loaded once and reused in subsequent requests.

  • Retries on temporary errors. The timeout for one request is 60 seconds. The server makes up to three retries after 429, 5xx, a network error, or a timeout; it respects Retry-After, and the delay does not exceed 30 seconds.

  • No background monitoring. The server works when the AI application calls it. If the application supports scheduled tasks, you can set up a periodic report for selected phrases there.

  • Anonymous telemetry. By default, the server sends a random installation ID, the event or tool name, server, Node.js, OS, and AI client versions. It does not include the API key, tool arguments, your messages, demand data, or environment variable values. To disable it for Ask Ads MCP servers: ASKADS_TELEMETRY=0.

Technical documentation

Support

Found a bug or missing a scenario? Create an issue or write to Telegram.

Available Tools

5 tools
dynamicsDemand dynamics over timeA
Read-onlyIdempotent

Returns how demand for a phrase changed over time — a series of {date, count, share}, where share is the fraction of all Yandex searches. Use it for seasonality and trend. period sets the granularity (daily/weekly/monthly). fromDate/toDate bound the range as RFC3339 timestamps, and toDate must align to the period boundary.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoGranularity of the series. Default monthly.
phraseYesThe search phrase to research.
toDateNoRange end (RFC3339), aligned to the period boundary.
devicesNoDevice filter: any of all, desktop, phone, tablet. Omit for all devices.
fromDateNoRange start (RFC3339), e.g. 2026-01-01T00:00:00Z.
regionIdsNoRegion ids to scope demand to, e.g. [213] (Moscow), [2] (St. Petersburg). Get ids from list_regions. Omit for all regions.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's additional details (e.g., 'share is the fraction of all Yandex searches' and the alignment constraint for toDate) add useful behavioral context without contradicting annotations.

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

Conciseness5/5

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

The description is two sentences: the first clearly states output and purpose, the second covers parameter constraints. It is front-loaded, concise, and contains no fluff.

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

Completeness4/5

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

Given 6 parameters, no output schema, and high complexity, the description explains the output structure and key parameter constraints. It omits error conditions or empty results, but overall is fairly complete.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds extra meaning by explaining 'share' and the alignment requirement for toDate, improving understanding beyond the schema alone.

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

Purpose5/5

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

The description clearly states the tool returns demand over time with a specific data structure (date, count, share) and explicitly calls out its use for seasonality and trend analysis. This distinguishes it from sibling tools like list_regions or top_requests.

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

Usage Guidelines4/5

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

The description suggests usage for seasonality and trend but does not provide explicit when-to-use or when-not-to-use scenarios or alternatives. However, the purpose is clear enough to infer appropriate context.

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

list_regionsRegion reference treeA
Read-onlyIdempotent

Returns the reference tree of regions Wordstat supports — region ids and their names (label). The ids feed the regionIds/regionMode of the other tools, and the names decode region ids in their responses. The tree is large and stable; fetch it once and cache it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive hints. Description adds that the tree is large and stable, justifying caching strategy.

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

Conciseness5/5

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

Three concise sentences with no waste. First sentence states the core return value, second explains usage, third advises caching.

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

Completeness5/5

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

For a 0-parameter, read-only tool with no output schema, the description completely covers the behavior, return content, and caching recommendation.

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

Parameters4/5

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

Tool has 0 parameters, so schema coverage is 100%. Description does not need to add parameter semantics; baseline 4 applies.

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

Purpose5/5

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

Clearly states the tool returns the reference tree of regions supported by Wordstat, including IDs and labels. Distinguishes from siblings by specifying it's a reference tree used as input for other tools.

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

Usage Guidelines4/5

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

Explicitly instructs to fetch once and cache due to large stable tree. Describes how the output feeds into other tools via regionIds/regionMode, providing clear usage context.

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

raw_requestRaw Wordstat API callA
Read-onlyIdempotent

Escape hatch to call any Yandex Cloud Search API Wordstat path directly, for endpoints without a dedicated tool, e.g. "v2/wordstat/topRequests". Every Wordstat endpoint is POST; body is sent as JSON (folderId is injected automatically).

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body.
pathYesAPI path, e.g. "v2/wordstat/dynamics".
methodNoHTTP method. Only POST is supported; defaults to POST.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive. Description adds that folderId is auto-injected and body is sent as JSON, providing useful behavioral context beyond annotations.

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

Conciseness5/5

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

Two sentences with zero waste. Front-loaded with purpose and includes essential usage details.

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

Completeness4/5

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

Adequately covers purpose, usage, and parameter behavior. Lacks description of the response format, but given it's an escape hatch, this is acceptable.

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

Parameters4/5

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

Schema coverage is 100%. Description adds that folderId is injected automatically, which is not in the schema, enhancing understanding of the body parameter.

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

Purpose5/5

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

Clearly states it's an escape hatch for endpoints without dedicated tools, with an example path. Distinguishes from sibling tools like dynamics and top_requests.

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

Usage Guidelines4/5

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

States it's for endpoints without a dedicated tool and that all endpoints are POST, giving clear context. Lacks explicit when-not-to-use but sufficiently implies usage.

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

regionsRegional distributionA
Read-onlyIdempotent

Returns how demand for a phrase is distributed across regions over the last 30 days. Each row has the region id, count, share and affinityIndex (>100% = above-average interest in that region, <100% = below). regionMode chooses the grouping: all, cities (only cities) or regions (only oblasts/subjects). Map region ids to names with list_regions.

ParametersJSON Schema
NameRequiredDescriptionDefault
phraseYesThe search phrase to research.
regionModeNoGrouping: all (default), cities (only cities), or regions (only subjects/oblasts).

TDQS

A4/5.0
Behavior4/5

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

Annotations (readOnlyHint, idempotentHint, destructiveHint) already convey safety and non-destructiveness. The description adds behavioral context beyond annotations: it specifies the data time range (last 30 days), the output fields (count, share, affinityIndex), and explains the meaning of affinityIndex ('>100% = above-average interest, <100% = below'). This is valuable behavioral detail not present in annotations.

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

Conciseness5/5

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

The description is two sentences long, front-loading the main purpose in the first sentence. Every sentence provides essential information: first the core functionality, second the parameter details and cross-reference to sibling tool. No redundant or extraneous text.

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

Completeness4/5

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

The tool has two parameters (both described), rich annotations, and no output schema. The description explains output fields (count, share, affinityIndex) and provides interpretation of affinityIndex. It references list_regions for name resolution. It does not mention potential pagination or limits, but the fixed 30-day window and single-phrase input make this acceptable for a query tool. Completeness is high for the complexity level.

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

Parameters3/5

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

The input schema covers both parameters with descriptions (phrase and regionMode enum). The description adds a summary of regionMode ('all, cities, or regions/oblasts') and mentions mapping via list_regions, but this largely repeats schema information. Parameter semantics are adequately handled by the schema, so the description adds minimal extra meaning.

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

Purpose5/5

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

The description begins with 'Returns how demand for a phrase is distributed across regions over the last 30 days,' clearly stating the verb ('returns'), the resource ('demand distribution'), and the scope. It distinguishes itself from sibling tools like list_regions by mentioning how to map region ids to names, and the phrase 'across regions' differentiates it from other analytical tools.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus siblings like dynamics or top_requests. It provides some guidance via the regionMode parameter (all, cities, regions) and mentions using list_regions for name mapping, but lacks a clear when-to-use or when-not-to-use statement relative to other tools.

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

top_requestsTop & related queriesA
Read-onlyIdempotent

Returns search-demand for a phrase over the last 30 days: the most popular queries that CONTAIN the phrase (results) and semantically RELATED queries that may not contain it (associations), plus totalCount. Use it to discover keywords and gauge demand. Counts can arrive as strings (int64). Optional regionIds and devices narrow the result; numPhrases sets how many to return (1..2000).

ParametersJSON Schema
NameRequiredDescriptionDefault
phraseYesThe search phrase to research, e.g. «купить велосипед».
devicesNoDevice filter: any of all, desktop, phone, tablet. Omit for all devices.
regionIdsNoRegion ids to scope demand to, e.g. [213] (Moscow), [2] (St. Petersburg). Get ids from list_regions. Omit for all regions.
numPhrasesNoHow many top phrases to return (1..2000; default 20).

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint, idempotentHint), the description adds crucial behavioral details: the 30-day time window, the fact that counts can arrive as strings (int64), and the optional parameters for narrowing results. This enriches agent understanding beyond safe-operation flags.

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

Conciseness5/5

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

Two sentences front-load the core functionality and behavior, with no unnecessary words. Every sentence adds value, making it highly concise and well-structured for quick agent comprehension.

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

Completeness4/5

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

Given the complexity (4 parameters, no output schema), the description explains the two result types, data type nuance for counts, and parameter effects. It could mention result ordering or error handling, but overall covers essential context for effective use.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to compensate. It provides an example for 'phrase' and reiterates parameter roles, but adds little new meaning beyond what's already in the schema's descriptions. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it returns search-demand for a phrase over the last 30 days, specifying two distinct result types (containing phrases and related queries) plus totalCount. It distinguishes itself from sibling tools like 'list_regions' and 'raw_request' by focusing on keyword discovery and demand gauging.

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

Usage Guidelines4/5

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

The description explicitly says 'Use it to discover keywords and gauge demand,' providing a clear context of use. However, it does not mention when to avoid using it or suggest alternatives among siblings, such as when dynamic data is needed instead.

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.

  1. 3 tool updatesv2.0.1
    • Changeddynamics3 fields changed
      • addedInput schema / properties / fromDate / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})$"
      • changedInput schema / properties / regionIds / items / anyOf
        Previous value: -[
        -  {
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "pattern": "^\\d+$",
        +    "type": "string"
        +  }
        +]
      • addedInput schema / properties / toDate / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})$"
    • Changedraw_request2 fields changed
      • changedInput schema / properties / method / description
        Previous value: -"HTTP method. Default POST."New value: +"HTTP method. Only POST is supported; defaults to POST."
      • changedInput schema / properties / method / enum
        Previous value: -[
        -  "GET",
        -  "POST"
        -]New value: +[
        +  "POST"
        +]
    • Changedtop_requests1 field changed
      • changedInput schema / properties / regionIds / items / anyOf
        Previous value: -[
        -  {
        -    "type": "integer"
        -  },
        -  {
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "pattern": "^\\d+$",
        +    "type": "string"
        +  }
        +]
  2. 4 tool updatesv2.0.0
    • Changeddynamics2 fields changed
      • changedInput schema / properties / fromDate / description
        Previous value: -"Range start. cloud: RFC3339; oauth: YYYY-MM-DD."New value: +"Range start (RFC3339), e.g. 2026-01-01T00:00:00Z."
      • changedInput schema / properties / toDate / description
        Previous value: -"Range end (aligned to the period). cloud: RFC3339; oauth: YYYY-MM-DD."New value: +"Range end (RFC3339), aligned to the period boundary."
    • Changedraw_request1 field changed
      • changedInput schema / properties / path / description
        Previous value: -"API path, e.g. \"v2/wordstat/dynamics\" (cloud) or \"v1/regions\" (oauth)."New value: +"API path, e.g. \"v2/wordstat/dynamics\"."
    • Changedregions1 field changed
      • removedInput schema / properties / devices
        Removed value: -{
        -  "description": "Device filter: any of all, desktop, phone, tablet. Omit for all devices.",
        -  "items": {
        -    "enum": [
        -      "all",
        -      "desktop",
        -      "phone",
        -      "tablet"
        -    ],
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
    • Changedtop_requests1 field changed
      • changedInput schema / properties / numPhrases / description
        Previous value: -"How many top phrases to return (cloud flavor only; default 20). Ignored on the oauth flavor."New value: +"How many top phrases to return (1..2000; default 20)."
  3. 5 tool updatesv0.1.0
    • First observeddynamics
    • First observedlist_regions
    • First observedraw_request
    • First observedregions
    • First observedtop_requests

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation5/5

top_requests, dynamics, regions, and list_regions each map to a distinct analytical dimension: current keyword demand, trend over time, geographic distribution, and the region reference. raw_request is clearly labeled as an escape hatch, so it is unlikely to be confused with the domain tools. No two tools appear to do the same thing.

Naming Consistency3/5

Tool names are all lower_snake_case and readable, but the convention is mixed: top_requests, dynamics, and regions are noun-style, list_regions uses verb_noun, and raw_request is an adjective_noun escape hatch. This is not chaotic, but it lacks a uniform verb_noun or consistent action-noun pattern.

Tool Count5/5

Five tools is well-scoped for a focused Wordstat analytics server. It provides the essential analytical operations plus a generic passthrough, with no redundancy or obvious bloat.

Completeness5/5

The server covers the core Wordstat surfaces: query popularity, time dynamics, geographic breakdown, and the region reference needed to interpret results. The raw_request passthrough also allows direct calls to any additional Wordstat endpoint, so there are no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables keyword research and search trend analysis for the Russian market through Yandex Wordstat API. Provides access to popular search queries, search volume dynamics over time, and regional distribution data.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Provides tools for web, image, generative search, and Wordstat keyword statistics via Yandex Search API.
    7
    4
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for querying Yandex Wordstat via Yandex Cloud Search API. Enables checking phrase frequency, similar queries, regional demand, and seasonality trends.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects Claude or ChatGPT to Yandex Wordstat for keyword research, enabling frequency lookups, related phrase suggestions with noise filtering, and 24-month seasonality analysis directly in chat.
    1
    MIT