Yandex Wordstat MCP
Provides tools for keyword research and search trend analysis using Yandex Wordstat API, allowing users to get region trees, popular queries, dynamics, and regional distribution.
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 Wordstat MCPtop requests for "купить цветы""
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.
Yandex Wordstat MCP для Open WebUI
MCP-сервер для работы с Yandex Wordstat v2 API (исследование ключевых слов и анализ поисковых трендов) с in-memory кэшированием, обёрнутый в mcpo-прокси для интеграции с Open WebUI.
Архитектура
Open WebUI ──HTTP/OpenAPI──▶ mcpo (proxy) ──stdio──▶ Node MCP Server ──HTTPS──▶ Yandex Wordstat v2 API
:8000 (with TTL cache)MCP-сервер (
src/index.mjs) — stdio-транспорт, 5 инструментов Wordstat, TTL-кэшmcpo — конвертирует stdio MCP → OpenAPI HTTP (нужно для Open WebUI, который поддерживает только Streamable HTTP)
Кэш — in-memory TTL (1 час для запросов, 24 часа для дерева регионов)
Related MCP server: Yandex Wordstat MCP
Инструменты
Инструмент | Описание |
| Дерево регионов (топ-N уровней) |
| Дочерние регионы конкретного региона |
| Популярные запросы по ключевому слову (30 дней) + похожие |
| Динамика поисковых запросов (день/неделя/месяц) |
| Региональное распределение с индексом аффинитивности |
Быстрый старт
1. Получение ключей Yandex Cloud
В консоли Yandex Cloud создайте сервисный аккаунт с ролью
search-api.webSearch.userСоздайте API-ключ с областью
yc.search-api.executeЗапишите folder ID
2. Настройка
cp .env.example .env
# Отредактируйте .env — впишите ключи3. Запуск
docker compose up -d --buildПроверьте, что сервис работает:
curl http://localhost:8000/docs4. Подключение к Open WebUI
Откройте Admin Settings → External Tools в Open WebUI
Нажмите + (Add Server)
Type:
OpenAPI(mcpo отдаёт именно OpenAPI, не MCP)URL:
http://<IP-сервера>:8000Auth:
BearerKey: значение
MCPO_API_KEYиз.envСохраните. Проверьте подключение кнопкой Verify Connection
Теперь инструменты Wordstat доступны в чате через + → Integrations → Tools.
Локальный запуск (без Docker)
npm install
YANDEX_SEARCH_API_KEY=your_key YANDEX_FOLDER_ID=your_folder node src/index.mjsКэширование
Данные | TTL |
Дерево регионов | 24 часа |
Top requests | 1 час |
Dynamics | 1 час |
Regional distribution | 1 час |
Максимум 500 записей в кэше, eviction по LRU.
Переменные окружения
Переменная | Описание | Обязательно |
| API-ключ Yandex Cloud | ✅ |
| ID каталога Yandex Cloud | ✅ |
| Bearer-ключ для доступа к mcpo | ✅ |
| Порт mcpo (по умолчанию 8000) | ❌ |
Публикация Docker-образа (GitHub Container Registry)
Проект включает GitHub Actions workflow (.github/workflows/docker-publish.yml), который автоматически собирает и публикует образ в GHCR при пуше в main или создании тега v*.
Как опубликовать
Создайте репозиторий на GitHub и запушьте код:
git remote add origin https://github.com/<username>/yandex_mcp.git
git push -u origin mainGitHub Actions автоматически соберёт образ и опубликует его как:
ghcr.io/<username>/yandex_mcp:latestДля релиза конкретной версии создайте тег:
git tag v1.0.0
git push origin v1.0.0Это создаст образы ghcr.io/<username>/yandex_mcp:1.0.0 и ghcr.io/<username>/yandex_mcp:1.0.
На хостинге используйте готовый образ — укажите
GHCR_OWNERв.env:
GHCR_OWNER=<username>
docker compose pull && docker compose up -dЛокальная сборка (вместо готового образа)
Если хотите собирать локально, раскомментируйте build: . в docker-compose.yml:
services:
yandex-wordstat-mcp:
# image: ghcr.io/...
build: .Лимиты
Rate limit: 10 запросов/сек (клиентский)
Биллинг: через Yandex Cloud (Search API)
Лицензия
MIT
Available Tools
5 toolsdynamicsSearch DynamicsA
Returns search volume dynamics (trend) for a keyword over time. Daily granularity: last 59 days. Weekly: last 52 weeks. Monthly (default): last 12 months.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time granularity (default: monthly) | |
| phrase | Yes | Keyword to analyze trends for | |
| toDate | No | End date YYYY-MM-DD (auto-aligned if omitted) | |
| devices | No | Filter by device types | |
| regions | No | Array of region IDs to scope the query | |
| fromDate | No | Start date YYYY-MM-DD (auto-aligned if omitted) |
Output Schema
| Name | Required | Description |
|---|---|---|
| trend | Yes | |
| dynamics | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses the return type (trend), granularity options (daily/weekly/monthly), and explicit time windows (last 59 days, 52 weeks, 12 months). This provides adequate behavioral transparency for a simple read tool.
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, front-loaded with the primary purpose, followed by granularity details. Every word earns its place; no redundancy or filler.
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 output schema documents return values, and parameters are fully described in the schema. The description adds context for time ranges and defaults. For a trend tool, this is complete enough; no gaps remain.
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 parameter descriptions. The description adds value by explaining the default period (monthly) and the time ranges associated with each granularity, which are not in the schema. This extra context enhances parameter understanding.
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 'search volume dynamics (trend) for a keyword over time.' It specifies the exact resource (keyword) and output type (trend). Siblings focus on regions and top requests, so this tool is well-distinguished.
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 by mentioning granularity options and their time ranges, but it does not explicitly state when to use this tool versus alternatives or provide any exclusions. Usage context is clear but lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-region-childrenGet Region ChildrenA
Returns the children of a specific region. Use to drill down from get-regions-tree.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Depth of children to return (1-3, default: 2) | |
| regionId | Yes | Region ID to get children 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 for behavioral disclosure. It only says 'returns the children' without explaining behavior like pagination, error handling, or the effect of the depth parameter (which is only documented in schema). This is insufficient for a tool with no annotation safety net.
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, no fluff. Front-loaded with purpose, then usage tip. Every word earns its place.
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 two-parameter tool with no output schema, the description is adequate but incomplete. It does not describe the return format (e.g., list of region objects) or clarify nested behavior (depth implies recursion). Could be more thorough.
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% description coverage, so the schema already explains both parameters (regionId, depth with min/max). The description adds no extra semantics beyond what's in the schema, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns children of a specific region (verb 'Returns', resource 'children of a specific region'). It distinguishes itself from the sibling 'get-regions-tree' by advising to use this for drilling down after that call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: 'Use to drill down from get-regions-tree.' It implies this tool is for subsequent navigation, but does not explicitly exclude other scenarios or mention 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.
get-regions-treeGet Regions TreeA
Returns the top levels of the Wordstat regions tree (countries, federal districts, major regions). Use get-region-children to drill down.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Tree depth to return (1-5, default: 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description correctly indicates it is a read-only query returning tree levels. Could mention the return format or that it's safe, but for a simple query tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. Purpose is front-loaded and the alternative tool is provided succinctly.
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 low-complexity tool with one parameter and no output schema, the description sufficiently explains what it does and how to get more detail. Could mention return structure, but not necessary given the name and context.
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 covers 100% of the single parameter with a clear description. Description does not add additional meaning beyond what the schema provides, so 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?
Description clearly states the verb 'Returns' and the resource 'top levels of the Wordstat regions tree (countries, federal districts, major regions)', and explicitly differentiates from sibling tool get-region-children.
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 says when to use (to get top levels) and when not ('Use get-region-children to drill down'), providing clear context and alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regionsRegional DistributionA
Returns how search volume for a keyword is distributed across regions over the last 30 days. Includes region names, share percentage and affinity index.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of top regions to return (default: 20) | |
| phrase | Yes | Keyword to analyze regional distribution for | |
| devices | No | Filter by device types | |
| regions | No | Array of region IDs to filter results by (client-side) | |
| granularity | No | Distribution granularity (default: all) |
Output Schema
| Name | Required | Description |
|---|---|---|
| regions | Yes | |
| topByAffinity | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It discloses a 30-day timeframe and output fields, but lacks details on rate limits, performance, or side effects.
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, concise and front-loaded with the main purpose. No extraneous 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?
Description covers purpose, timeframe, and output fields. With an output schema present, this is sufficient. Could mention data shape or pagination, but not required.
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% description coverage; the description does not add additional meaning to parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns search volume distribution across regions for a keyword, including specific output fields. It distinguishes itself from sibling tools like get-regions-tree or dynamics.
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 guidance on when to use this tool versus alternatives like dynamics or top-requests. The purpose is implied but not contrasted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
top-requestsTop RequestsA
Returns popular search queries containing the specified keyword for the last 30 days, plus similar/associated queries. The phrase supports Wordstat search operators.
| Name | Required | Description | Default |
|---|---|---|---|
| phrase | Yes | Keyword to search for (e.g., 'купить телефон') | |
| devices | No | Filter by device types | |
| regions | No | Array of region IDs (e.g. 213 = Moscow) | |
| numPhrases | No | Number of phrases to return (1-2000, default: 50) |
Output Schema
| Name | Required | Description |
|---|---|---|
| totalCount | Yes | |
| topRequests | Yes | |
| associations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the time range (last 30 days) and that similar/associated queries are included. However, it does not specify if the operation is readonly, any authentication needs, rate limits, or what happens on error. The behavior is adequately described 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?
The description is two sentences, front-loading the main purpose. Every word is necessary; no fluff or repetition. Efficiently communicates the tool's core function and a key feature (Wordstat operators).
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 complexity (4 parameters, output schema exists), the description covers the main functionality, time range, and operator support. The output schema is not explained (not required per rules). It does not list default values for numPhrases or explicitly mention that devices and regions are optional, but these are in the schema. The description is nearly complete for an average agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all parameters. The description adds value by stating that the phrase parameter supports Wordstat search operators, which is additional context beyond the schema's 'Keyword to search for'. For the other parameters (devices, regions, numPhrases), no extra info is given, but the overall semantic gain justifies a score above 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?
Description clearly states the tool returns popular search queries containing a keyword for the last 30 days, plus similar/associated queries. The verb 'Returns' and resource 'popular search queries' are specific, and the mention of Wordstat operators adds precision. Sibling tools are about regions and dynamics, so this tool is well-distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (keyword research for the last 30 days), but there is no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The sibling tools are unrelated, so confusion is low, but the description could be more helpful by stating, e.g., 'Use this to explore keyword popularity trends.'
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.
5 tool updates
v1.0.0- First observed
dynamics - First observed
get-region-children - First observed
get-regions-tree - First observed
regions - First observed
top-requests
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: region tree navigation, query popularity, trend dynamics, and regional distribution. There is no overlap or ambiguity.
Most tools follow a verb_noun pattern (get-regions-tree, get-region-children, top-requests), but 'dynamics' and 'regions' are noun-only, introducing slight inconsistency.
5 tools is appropriate for a keyword research server, covering core functionalities without unnecessary bloat or missing essentials.
The set covers region browsing, top requests, trend analysis, and regional distribution. A minor gap is the lack of direct keyword volume data, but similar/associated queries partially compensate.
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
Yandex search results, images, and SERP data via the Apify Yandex Search Scraper, hosted MCP.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for Google search results via SERP API
Related MCP Servers
- 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
- AlicenseNot gradedqualityCmaintenanceMCP server for querying Yandex Wordstat via Yandex Cloud Search API. Enables checking phrase frequency, similar queries, regional demand, and seasonality trends.1MIT
- FlicenseCqualityCmaintenanceStandalone MCP server for the Mangools API with 82 tools covering keyword research, SERP analysis, rank tracking, backlinks, competitor research, and AI search visibility. Enables natural language interaction with Mangools SEO capabilities.82-
- AlicenseNot gradedqualityCmaintenanceMCP server that exposes Google Ads keyword search volumes to AI agents via the KeywordPlanIdeaService, offering a free alternative to paid keyword-volume APIs.1MIT