Skip to main content
Glama
Yandex Wordstat MCP

Yandex Wordstat MCP

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

npm CI Glama License: MIT

Яндекс Вордстат MCP는 AI 애플리케이션을 Yandex 검색 수요 통계에 연결합니다. 특정 문구가 얼마나 자주 검색되는지, 어떤 달에 관심이 증가하는지, 어떤 도시에서 주제가 더 인기 있는지 물어보세요. 어시스턴트가 Wordstat 데이터를 수집하고 결과를 설명해 드립니다. 서버는 Yandex Cloud Search API를 통해 작동하므로 Direct 광고 계정에 접근할 필요가 없습니다.

  • 다섯 가지 도구. 상위 및 유사 검색어, 수요 동향, 지역별 분포, 지역 사전, API 기술 요청.

  • 읽기 전용. Wordstat API는 캠페인, 광고, 키워드 및 기타 개체를 생성하지 않습니다.

  • 수요와 계절성. 상위 검색어와 지역은 최근 30일을 표시하며, 동향은 원하는 기간 동안 일별, 주별 또는 월별로 구성됩니다.

  • 지역 및 기기. 보고서를 특정 지역으로 좁히고 컴퓨터, 휴대폰, 태블릿의 수요를 비교할 수 있습니다.

  • Direct OAuth 불필요. Search API에 필요한 것은 API 키와 Yandex Cloud 카탈로그 ID뿐입니다.

안전한 요청으로 시작하세요:

"자전거 구매"를 한 달에 얼마나 검색하며, 유사한 검색어는 무엇인가요?

서버 연결 · 시나리오 보기 · 기술 문서 열기


1분 만에 작동 확인

Related MCP server: Wordstat MCP

목차

빠른 시작

Node.js 20 이상, Search API용 Yandex Cloud API 키, Yandex Cloud 카탈로그 ID가 필요합니다.

  1. 접근 권한을 얻고 AI 애플리케이션에 서버를 추가하세요. 아래에 다섯 가지 애플리케이션에 대한 지침이 있습니다.

  2. "자전거 구매"를 한 달에 얼마나 검색하며, 유사한 검색어는 무엇인가요?"라고 물어보세요.

애플리케이션 인터페이스를 통해:

  1. Settings → Plugins → MCP servers를 엽니다.

  2. Add server를 클릭합니다.

  3. 실행 명령 npx -y mcp-yandex-wordstat@latest와 환경 변수 WORDSTAT_API_KEY, WORDSTAT_FOLDER_ID를 추가합니다.

명령줄을 통해:

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

연결을 확인하세요:

codex mcp list

Codex 공식 문서

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

서버를 확인하세요:

claude mcp list

Claude Code 문서

Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 서버를 추가하세요:

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

Edit Config를 사용할 수 없으면 macOS에서는 ~/Library/Application Support/Claude/claude_desktop_config.json, Windows에서는 %APPDATA%\Claude\claude_desktop_config.json을 편집하세요.

모든 프로젝트에 대해 ~/.cursor/mcp.json을 만들고, 현재 프로젝트에만 적용하려면 .cursor/mcp.json을 만드세요:

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

Cursor 문서

명령 팔레트를 열고 MCP: Open User Configuration을 실행하세요. 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"
    }
  ]
}

MCP: List Servers 명령으로 실행을 확인하세요.

VS Code 문서

무엇을 맡길 수 있나요

검색어 선정 및 수요 평가

  • "이 문구를 한 달에 몇 번 검색하며, 유사한 검색어는 무엇인가요?"

  • "'피자 배달' 관련 검색어를 빈도와 함께 찾아주세요."

  • "내 문구가 포함된 검색어와 의미상 유사한 검색어를 분리해서 보여주세요."

계절성 이해

  • "'스키'에 대한 수요를 1년간 월별로 보여주세요."

  • "이 서비스에 대한 수요가 증가하거나 감소하는 주는 언제인가요?"

  • "휴대폰과 컴퓨터에서의 검색어 동향을 비교하세요."

지역 비교

  • "'아파트 리모델링'에 대한 관심이 평균보다 높은 도시는 어디인가요?"

  • "모스크바와 상트페테르부르크의 수요를 비교하세요."

  • "필요한 지역의 ID를 찾고 다음 보고서를 해당 지역으로 좁히세요."

수요 데이터 읽는 방법

top_requests는 지정된 문구를 포함하는 인기 검색어와 의미상 유사한 검색어를 표시합니다. 전체 totalCount는 최근 30일을 기준으로 합니다.

dynamics는 일별, 주별 또는 월별 세부 정보로 {date, count, share} 계열을 반환합니다. regions는 최근 30일간의 수요를 지역별로 분배하며, affinityIndex가 100%를 초과하면 평균보다 높은 관심을 의미합니다. 카운터 값은 문자열로 전달될 수 있습니다. Yandex는 JSON에서 큰 정수를 이러한 형식으로 전송합니다.

한 번의 호출은 하나의 문구에 대한 데이터만 생성합니다. 키워드 목록이 많은 경우 모든 요청을 연속으로 실행하는 대신 먼저 목록을 좁히는 것이 좋습니다. Yandex Cloud Search API 할당량은 하나의 키에 대해 공유됩니다.

접근 권한 얻는 방법

  1. Yandex Cloud에서 search-api.webSearch.user 역할을 가진 서비스 계정을 만듭니다.

  2. 해당 계정에 대해 yc.search-api.execute 범위의 API 키를 발급합니다. 단계는 AI Studio 문서에 설명되어 있습니다.

  3. Yandex Cloud 콘솔의 카탈로그 페이지와 페이지 URL에서 카탈로그 ID(folderId)를 찾습니다.

  4. 키를 WORDSTAT_API_KEY로, 카탈로그를 WORDSTAT_FOLDER_ID로 전달합니다.

서버는 Yandex Cloud Search API v2에 연결합니다. OAuth를 사용하는 기존의 별도 Wordstat API는 사용되지 않습니다. API 키는 MCP 클라이언트 구성에 일반 텍스트로 저장되므로 비밀번호처럼 취급하세요.

데이터를 변경할 수 있는 것

Yandex Wordstat에서는 아무것도 변경할 수 없습니다. raw_request를 포함한 다섯 가지 도구 모두 읽기 전용으로만 작동합니다. 기술적으로 API는 POST를 사용하지만 Wordstat에는 쓰기 엔드포인트가 없습니다. 서버는 또한 임의의 요청이 다른 호스트로 전송되는 것을 추가로 차단합니다.

데이터, 한도 및 백그라운드 작업

  • 집계 데이터. 서버는 특정 광고 계정의 데이터가 아닌 검색 수요 통계를 받습니다.

  • 지역 사전 캐시. 장기 실행 프로세스에서 지역 트리는 한 번 로드되고 이후 요청에서 재사용됩니다.

  • 일시적 오류 시 재시도. 단일 요청의 타임아웃은 60초입니다. 서버는 429, 5xx, 네트워크 오류 또는 타임아웃 후 최대 3회 재시도하며, Retry-After를 고려하고 지연은 30초를 초과하지 않습니다.

  • 백그라운드 모니터링 없음. 서버는 AI 애플리케이션이 호출할 때만 작동합니다. 애플리케이션이 예약 작업을 지원하는 경우 선택한 문구에 대한 정기 보고서를 설정할 수 있습니다.

  • 익명 텔레메트리. 기본적으로 서버는 무작위 설치 ID, 이벤트 또는 도구 이름, 서버 버전, Node.js, OS 및 AI 클라이언트 버전을 전송합니다. API 키, 도구 인수, 사용자 메시지, 수요 데이터 및 환경 변수 값은 포함되지 않습니다. Ask Ads MCP 서버에 대해 비활성화하려면: ASKADS_TELEMETRY=0.

기술 문서

지원

오류를 발견했거나 시나리오가 부족한가요? 이슈를 생성하거나 Telegram으로 문의하세요.

Available Tools

5 tools
dynamicsДинамика спроса во времениA
Read-onlyIdempotent

Возвращает, как менялся спрос на фразу во времени, — ряд {date, count, share}, где share — доля от всех поисковых запросов Яндекса. Подходит для оценки сезонности и тренда. period задаёт шаг ряда (daily/weekly/monthly). fromDate/toDate ограничивают диапазон метками времени RFC3339, при этом toDate должен попадать на границу периода.

NameRequiredDescriptionDefault
periodNoШаг ряда. По умолчанию monthly.
phraseYesПоисковая фраза для анализа.
toDateNoКонец диапазона (RFC3339), выровненный по границе периода.
devicesNoФильтр по устройствам: любые из all, desktop, phone, tablet. Без параметра — все устройства.
fromDateNoНачало диапазона (RFC3339), например 2026-01-01T00:00:00Z.
regionIdsNoId регионов, которыми ограничить спрос, например [213] (Москва), [2] (Санкт-Петербург). Id берутся из list_regions. Без параметра — все регионы.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world behavior, so the bar is lower. The description still adds real context beyond them: the return field semantics (share = fraction of all Yandex searches) and the non-obvious constraint that toDate must land on a period boundary. Missing: any note on rate limits, empty-result behavior, or data granularity limits.

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 short sentences, front-loaded with the core purpose and return shape, followed by usage and the one tricky parameter constraint. No filler.

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?

With no output schema, the description usefully documents the returned {date, count, share} fields and explains share, covering the biggest gap. Remaining gaps are minor: what happens if toDate is not aligned to the period, and whether the series can return empty buckets.

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 description coverage is 100%, so the baseline is 3. The description re-states that period sets the series step and that from/to use RFC3339 with toDate aligned to period boundaries, but this largely duplicates the schema and adds nothing about devices or regionIds.

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?

Names a specific resource and verb: shows how demand for a phrase changed over time, and returns a concrete series shape {date, count, share}. This is inherently distinct from time-agnostic siblings like top_requests or regions, so an agent can select it without opening the schema.

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?

"Подходит для оценки сезонности и тренда" gives clear usage context for when this tool is appropriate. It does not name an alternative or state exclusions (e.g. when a single-point snapshot would be enough), leaving that inference to the agent.

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

list_regionsСправочное дерево регионовA
Read-onlyIdempotent

Возвращает справочное дерево регионов, которые поддерживает Вордстат, — id регионов и их названия (label). Эти id подставляются в regionIds инструментов top_requests и dynamics, а названия расшифровывают id регионов в их ответах. Дерево большое и стабильное: достаточно запросить его один раз и закешировать.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds genuinely non-obvious traits beyond them: the response is large, it is stable over time, and caching is the intended usage pattern. It stops short of describing pagination or exact response shape.

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

Conciseness5/5

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

Three sentences, front-loaded with what is returned, then downstream usage, then the caching recommendation. Every sentence carries information an agent would otherwise have to discover empirically.

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?

No output schema exists, and the description compensates by describing the payload (id + label). Enough to call it correctly, but it never resolves the relationship with the similarly named `regions` sibling, which is the remaining completeness gap.

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?

Zero parameters, so the baseline is 4. The description does useful adjacent work by explaining the semantics of the returned ids in the consuming tools' `regionIds` parameter, though there is no parameter schema of its own to enrich.

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

Purpose4/5

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

States a specific verb and resource: returns a reference tree of regions supported by Wordstat, with ids and labels. It also names sibling tools (top_requests, dynamics) where the ids are consumed. However, it does not differentiate itself from the sibling `regions`, leaving real ambiguity about which of the two to call.

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?

Explains what to do with the output (plug ids into regionIds of top_requests/dynamics, use labels to decode responses) and advises fetching once and caching because the tree is large and stable. No exclusion against the `regions` sibling, which is the one missing piece of routing guidance.

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

raw_requestПрямой вызов API ВордстатаA
Read-onlyIdempotent

Универсальный запрос: обращается напрямую к любому пути Wordstat в Yandex Cloud Search API — для эндпоинтов, у которых нет отдельного инструмента, например "v2/wordstat/topRequests". Все эндпоинты Вордстата работают методом POST; body отправляется как JSON (folderId подставляется автоматически).

NameRequiredDescriptionDefault
bodyNoТело запроса в формате JSON.
pathYesПуть API, например "v2/wordstat/dynamics".
methodNoHTTP-метод. Поддерживается только POST, он же по умолчанию.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/open-world, so the lower bar applies, and the description still adds real context: POST is the only supported method, `body` is serialized as JSON, and folderId is injected automatically. It does not cover error behavior or what an invalid path returns, which matters for a pass-through tool, so it stops short of a 5.

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 no filler: the first establishes what it is and when to reach for it, the second carries the operational constraints. Nothing could be removed without losing information.

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

Completeness3/5

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

For a raw HTTP pass-through with no output schema and open-world semantics, the description never says what comes back — raw JSON of unknown shape, or an error envelope — which is the single most important unknown for this kind of tool. It covers invocation well but leaves the result contract and failure modes unaddressed.

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%, so the baseline is 3, but the description goes beyond the schema by explaining that `body` is sent as JSON and that folderId is auto-injected into it — non-obvious behavior the schema does not state. Neither `path` formatting beyond the example nor enum restriction gets extra clarification, keeping it at 4.

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 uses a specific verb and resource ('обращается напрямую к любому пути Wordstat в Yandex Cloud Search API') and immediately scopes it to endpoints without a dedicated tool, which separates it from the four sibling tools. An agent can tell this is a raw passthrough, not a typed query wrapper.

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?

It explicitly states the selection rule — use this only for endpoints that have no separate tool — which is a clear when-to-use condition. However, the illustrative path it names ("v2/wordstat/topRequests") is exactly what the sibling top_requests already covers, which slightly muddies the rule it just set.

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

regionsРаспределение по регионамA
Read-onlyIdempotent

Возвращает, как спрос на фразу распределён по регионам за последние 30 дней. В каждой строке — id региона, count, share и affinityIndex (>100% — интерес в регионе выше среднего, <100% — ниже). regionMode выбирает группировку: all, cities (только города) или regions (только области и субъекты). Сопоставить id регионов с названиями помогает list_regions.

NameRequiredDescriptionDefault
phraseYesПоисковая фраза для анализа.
regionModeNoГруппировка: all (по умолчанию), cities (только города) или regions (только субъекты и области).

TDQS

A4.5/5.0
Behavior5/5

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

Adds context beyond the annotations: the fixed 30-day window, the exact row fields (id, count, share, affinityIndex), and how to interpret affinityIndex above/below 100. No output schema exists, so this return-value disclosure is genuinely valuable, and it is consistent with the readOnly/idempotent 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?

Three tight sentences, front-loaded with the core purpose, followed by return shape, parameter meaning, and a pointer to a helper tool. No filler.

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?

Covers purpose, return fields, metric interpretation, and the regionMode grouping. With no output schema, the enumerated row fields fill that gap, leaving nothing an agent needs missing.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are already documented, including the enum values for regionMode. The description restates the regionMode grouping without adding syntax or edge-case detail, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource: returns how demand for a phrase is distributed across regions over the last 30 days. This is distinguishable from siblings like dynamics and top_requests without opening any schema.

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 use case (regional breakdown of demand) is clear, and it explicitly points to list_regions for mapping region ids to names. It does not state when to prefer this over dynamics or top_requests, so it stops short of full routing guidance.

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

top_requestsТоп и похожие запросыA
Read-onlyIdempotent

Возвращает поисковый спрос по фразе за последние 30 дней: самые популярные запросы, которые СОДЕРЖАТ фразу (results), и семантически ПОХОЖИЕ запросы, которые могут её не содержать (associations), плюс totalCount. Подходит для подбора ключевых фраз и оценки спроса. Значения счётчиков могут приходить строками (int64). Необязательные regionIds и devices сужают выборку; numPhrases задаёт, сколько фраз вернуть (1..2000).

NameRequiredDescriptionDefault
phraseYesПоисковая фраза для анализа, например «купить велосипед».
devicesNoФильтр по устройствам: любые из all, desktop, phone, tablet. Без параметра — все устройства.
regionIdsNoId регионов, которыми ограничить спрос, например [213] (Москва), [2] (Санкт-Петербург). Id берутся из list_regions. Без параметра — все регионы.
numPhrasesNoСколько топовых фраз вернуть (1..2000; по умолчанию 20).

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the description doesn't need to re-establish safety. It does add real behavioral context: the two-bucket result structure and the caveat that counters may arrive as strings (int64), which is non-obvious and valuable. It does not cover rate limits, ordering, or pagination behavior, so it stays at a moderate score.

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

Conciseness4/5

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

Three sentences, front-loaded with the return structure and then the type caveat and parameter hints. Dense but every clause carries information; minor redundancy with the schema on parameter ranges keeps it from a 5.

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?

There is no output schema, so the description carries the burden of explaining returns — and it does: names results, associations and totalCount and flags the int64-as-string quirk. Together with complete schema descriptions for all parameters, an agent has everything needed to call and interpret this tool.

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 description coverage is 100%, so all four parameters are already documented in the schema with examples and defaults. The description only restates that regionIds/devices narrow the sample and numPhrases is 1..2000 — no syntax or 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.

Purpose5/5

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

The description states a specific verb and resource (returns search demand for a phrase over the last 30 days) and explicitly distinguishes the two result buckets: results (containing the phrase) and associations (semantically similar, may not contain it), plus totalCount. This is far more precise than the tool name and lets an agent understand the payload without opening a schema.

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?

It gives a clear usage context (keyword selection and demand estimation) and tells the agent that regionIds and devices narrow the sample. However, it never names an alternative sibling — e.g. when to prefer dynamics or regions — so the agent gets context but no explicit routing against alternatives.

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. 4 tool updatesv2.4.0
    • Changeddynamics6 fields changed
      • changedInput schema / properties / devices / description
        Previous value: -"Device filter: any of all, desktop, phone, tablet. Omit for all devices."New value: +"Фильтр по устройствам: любые из all, desktop, phone, tablet. Без параметра — все устройства."
      • changedInput schema / properties / fromDate / description
        Previous value: -"Range start (RFC3339), e.g. 2026-01-01T00:00:00Z."New value: +"Начало диапазона (RFC3339), например 2026-01-01T00:00:00Z."
      • changedInput schema / properties / period / description
        Previous value: -"Granularity of the series. Default monthly."New value: +"Шаг ряда. По умолчанию monthly."
      • changedInput schema / properties / phrase / description
        Previous value: -"The search phrase to research."New value: +"Поисковая фраза для анализа."
      • changedInput schema / properties / regionIds / description
        Previous value: -"Region ids to scope demand to, e.g. [213] (Moscow), [2] (St. Petersburg). Get ids from list_regions. Omit for all regions."New value: +"Id регионов, которыми ограничить спрос, например [213] (Москва), [2] (Санкт-Петербург). Id берутся из list_regions. Без параметра — все регионы."
      • changedInput schema / properties / toDate / description
        Previous value: -"Range end (RFC3339), aligned to the period boundary."New value: +"Конец диапазона (RFC3339), выровненный по границе периода."
    • Changedraw_request3 fields changed
      • changedInput schema / properties / body / description
        Previous value: -"JSON request body."New value: +"Тело запроса в формате JSON."
      • changedInput schema / properties / method / description
        Previous value: -"HTTP method. Only POST is supported; defaults to POST."New value: +"HTTP-метод. Поддерживается только POST, он же по умолчанию."
      • changedInput schema / properties / path / description
        Previous value: -"API path, e.g. \"v2/wordstat/dynamics\"."New value: +"Путь API, например \"v2/wordstat/dynamics\"."
    • Changedregions2 fields changed
      • changedInput schema / properties / phrase / description
        Previous value: -"The search phrase to research."New value: +"Поисковая фраза для анализа."
      • changedInput schema / properties / regionMode / description
        Previous value: -"Grouping: all (default), cities (only cities), or regions (only subjects/oblasts)."New value: +"Группировка: all (по умолчанию), cities (только города) или regions (только субъекты и области)."
    • Changedtop_requests4 fields changed
      • changedInput schema / properties / devices / description
        Previous value: -"Device filter: any of all, desktop, phone, tablet. Omit for all devices."New value: +"Фильтр по устройствам: любые из all, desktop, phone, tablet. Без параметра — все устройства."
      • changedInput schema / properties / numPhrases / description
        Previous value: -"How many top phrases to return (1..2000; default 20)."New value: +"Сколько топовых фраз вернуть (1..2000; по умолчанию 20)."
      • changedInput schema / properties / phrase / description
        Previous value: -"The search phrase to research, e.g. «купить велосипед»."New value: +"Поисковая фраза для анализа, например «купить велосипед»."
      • changedInput schema / properties / regionIds / description
        Previous value: -"Region ids to scope demand to, e.g. [213] (Moscow), [2] (St. Petersburg). Get ids from list_regions. Omit for all regions."New value: +"Id регионов, которыми ограничить спрос, например [213] (Москва), [2] (Санкт-Петербург). Id берутся из list_regions. Без параметра — все регионы."
  2. 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"
        +  }
        +]
  3. 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)."
  4. 5 tool updatesv0.1.0
    • First observeddynamics
    • First observedlist_regions
    • First observedraw_request
    • First observedregions
    • First observedtop_requests

TDQS

A4/5.0

Scored across 5 tools

Disambiguation3/5

The pair list_regions and regions is genuinely easy to confuse: one returns a static reference tree of region ids/names, the other returns per-region demand for a phrase. Descriptions do disambiguate once read, but raw_request also overlaps with every other tool by design, giving an agent three plausible paths for some queries.

Naming Consistency3/5

All names are snake_case, but the grammatical pattern is mixed: verb_noun (list_regions), bare nouns (dynamics, regions), adjective_noun (raw_request), and noun with modifier (top_requests). Readable, yet no predictable verb-first convention an agent can rely on.

Tool Count5/5

Five tools map cleanly onto the Wordstat surface: a reference lookup, two analytical endpoints, a top-queries endpoint, and one escape hatch. Nothing feels padded or missing at this scope.

Completeness4/5

Core Wordstat capabilities (top requests/associations, dynamics time series, regional breakdown, region dictionary) are all covered, and raw_request guarantees no endpoint is unreachable. The minor gap is that anything outside these four requires hand-building a raw POST with a path and body, rather than a typed tool.

Maintenance

ActivityMaintained
ResponsivenessSyncing

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
    Not graded
    quality
    C
    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.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to read Yandex Wordstat search query statistics, including top phrases, dynamics, regional distribution, and region code trees, via the Yandex Search API in a read-only manner.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables collecting real Yandex Wordstat v2 data and running managed semantic-core research workflows, including query frequencies, regional demand, dynamics, and AI-assisted cleaning, intent labeling, clustering, and reporting.
    5
    MIT