Skip to main content
Glama
tvermolaev-source

Yandex Wordstat MCP

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

Инструменты

Инструмент

Описание

get-regions-tree

Дерево регионов (топ-N уровней)

get-region-children

Дочерние регионы конкретного региона

top-requests

Популярные запросы по ключевому слову (30 дней) + похожие

dynamics

Динамика поисковых запросов (день/неделя/месяц)

regions

Региональное распределение с индексом аффинитивности

Быстрый старт

1. Получение ключей Yandex Cloud

  1. В консоли Yandex Cloud создайте сервисный аккаунт с ролью search-api.webSearch.user

  2. Создайте API-ключ с областью yc.search-api.execute

  3. Запишите folder ID

2. Настройка

cp .env.example .env
# Отредактируйте .env — впишите ключи

3. Запуск

docker compose up -d --build

Проверьте, что сервис работает:

curl http://localhost:8000/docs

4. Подключение к Open WebUI

  1. Откройте Admin Settings → External Tools в Open WebUI

  2. Нажмите + (Add Server)

  3. Type: OpenAPI (mcpo отдаёт именно OpenAPI, не MCP)

  4. URL: http://<IP-сервера>:8000

  5. Auth: Bearer

  6. Key: значение MCPO_API_KEY из .env

  7. Сохраните. Проверьте подключение кнопкой 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.

Переменные окружения

Переменная

Описание

Обязательно

YANDEX_SEARCH_API_KEY

API-ключ Yandex Cloud

YANDEX_FOLDER_ID

ID каталога Yandex Cloud

MCPO_API_KEY

Bearer-ключ для доступа к mcpo

MCPO_PORT

Порт mcpo (по умолчанию 8000)

Публикация Docker-образа (GitHub Container Registry)

Проект включает GitHub Actions workflow (.github/workflows/docker-publish.yml), который автоматически собирает и публикует образ в GHCR при пуше в main или создании тега v*.

Как опубликовать

  1. Создайте репозиторий на GitHub и запушьте код:

git remote add origin https://github.com/<username>/yandex_mcp.git
git push -u origin main
  1. GitHub Actions автоматически соберёт образ и опубликует его как:

ghcr.io/<username>/yandex_mcp:latest
  1. Для релиза конкретной версии создайте тег:

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.

  1. На хостинге используйте готовый образ — укажите 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 tools
dynamicsSearch 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoTime granularity (default: monthly)
phraseYesKeyword to analyze trends for
toDateNoEnd date YYYY-MM-DD (auto-aligned if omitted)
devicesNoFilter by device types
regionsNoArray of region IDs to scope the query
fromDateNoStart date YYYY-MM-DD (auto-aligned if omitted)

Output Schema

ParametersJSON Schema
NameRequiredDescription
trendYes
dynamicsYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

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 '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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoDepth of children to return (1-3, default: 2)
regionIdYesRegion ID to get children for

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

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 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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoTree depth to return (1-5, default: 3)

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of top regions to return (default: 20)
phraseYesKeyword to analyze regional distribution for
devicesNoFilter by device types
regionsNoArray of region IDs to filter results by (client-side)
granularityNoDistribution granularity (default: all)

Output Schema

ParametersJSON Schema
NameRequiredDescription
regionsYes
topByAffinityYes

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
phraseYesKeyword to search for (e.g., 'купить телефон')
devicesNoFilter by device types
regionsNoArray of region IDs (e.g. 213 = Moscow)
numPhrasesNoNumber of phrases to return (1-2000, default: 50)

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalCountYes
topRequestsYes
associationsYes

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 5 tool updatesv1.0.0
    • First observeddynamics
    • First observedget-region-children
    • First observedget-regions-tree
    • First observedregions
    • First observedtop-requests

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: region tree navigation, query popularity, trend dynamics, and regional distribution. There is no overlap or ambiguity.

Naming Consistency4/5

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.

Tool Count5/5

5 tools is appropriate for a keyword research server, covering core functionalities without unnecessary bloat or missing essentials.

Completeness4/5

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

ActivitySlowing
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    MCP 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.
    100
    19
    3
    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
  • F
    license
    C
    quality
    C
    maintenance
    Standalone 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
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that exposes Google Ads keyword search volumes to AI agents via the KeywordPlanIdeaService, offering a free alternative to paid keyword-volume APIs.
    1
    MIT