Yandex Wordstat MCP

io.github.stufently由 GitHub 账号 stufently 发布v2.2.1更新于 Oct 24, 2026

MCP server for Yandex Wordstat API — keyword research for Russian/CIS markets

概览

AI 生成的概览

本地 MCP 服务器,接入 Yandex Wordstat 关键词研究,让助手分析俄罗斯及独联体市场的搜索需求、趋势和地区分布。

可以做什么
查询包含某关键词的热门搜索词,返回近 30 天的关联词和搜索量,可按地区和设备类型筛选。按日、周或月分析关键词的搜索量趋势,日期会自动对齐到有效区间并报告调整。获取关键词的地区兴趣分布,包括搜索量、占比和亲和指数。浏览 Wordstat 地区层级树,并从缓存树中列出某地区的下级地区。
适用场景
适合为俄罗斯及独联体市场做 SEO 或关键词研究、比较不同地区或设备的搜索需求,或跟踪某个词的热度随时间的变化。
运行要求
以本地 Node.js 进程从源码运行(README 说明该作用域下尚未发布包)。需要 Yandex Cloud 账号并绑定计费账户,创建具有 search-api.webSearch.user 角色的服务账号,并配置 WORDSTAT_API_KEY(API 密钥)和 WORDSTAT_FOLDER_ID(文件夹 ID)。凭据也可放在用户主目录下的配置文件中。需要访问 Yandex Cloud Search API 的网络连接。
安装前请注意
需要保密的 Yandex Cloud API 密钥(WORDSTAT_API_KEY)以及绑定计费账户的文件夹 ID,调用可能产生费用。README 提醒无作用域的包名属于无关发布者,安装前应核实来源。该服务器只读取 Wordstat 数据,不会修改任何内容。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Yandex Wordstat MCP,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

yandex-wordstat-mcp

MCP server for Yandex Wordstat via Yandex Cloud Search API v2. Research keywords, analyze search volume trends, and explore regional search distribution for Russian and CIS markets.

v2.0: the legacy api.wordstat.yandex.net API was shut down by Yandex in 2026. The server now talks to searchapi.api.cloud.yandex.net/v2/wordstat/* and authenticates with a Yandex Cloud API key instead of an OAuth token. Tool names and parameters are unchanged.

Installation

This package is published as @stufently/yandex-wordstat-mcp; the unscoped name yandex-wordstat-mcp belongs to an unrelated publisher (see the note in the root README). Nothing is on the scope yet, so run it from source:

bash
git clone https://github.com/stufently/yandex-mcp.gitcd yandex-mcp && bun installnode packages/yandex-wordstat-mcp/src/index.mjs

Configuration

Add to your MCP client config:

json
{  "mcpServers": {    "yandex-wordstat": {      "command": "node",      "args": ["/path/to/yandex-mcp/packages/yandex-wordstat-mcp/src/index.mjs"],      "env": {        "WORDSTAT_API_KEY": "AQVN...",        "WORDSTAT_FOLDER_ID": "b1g..."      }    }  }}

Alternatively, put the credentials into ~/.config/yandex-cloud/wordstat.env (used as a fallback when the env vars are not set):

WORDSTAT_API_KEY=AQVN...WORDSTAT_FOLDER_ID=b1g...

Environment Variables

VariableRequiredDescription
WORDSTAT_API_KEYYesYandex Cloud API key (secret, AQVN...) of a service account
WORDSTAT_FOLDER_IDYesYandex Cloud folder ID (b1g...) used for billing and access checks

Authentication (how to get the key)

  1. Sign in to the Yandex Cloud console and pick (or create) a folder — its ID is visible in the URL: console.yandex.cloud/folders/<folderId>/.... A billing account must be linked to the cloud.
  2. Create a service account in that folder with the search-api.webSearch.user role.
  3. Open the service account → Create new key → API key, scope yc.search-api.execute.
  4. Copy the secret (shown once) into WORDSTAT_API_KEY; the key identifier (ajel...) is only needed to rotate or revoke the key later.

Rate Limiting

The server enforces a client-side rate limit of 10 requests per second using a sliding window. Requests exceeding the limit are automatically queued. Additionally, 429 and 5xx responses trigger automatic retry with exponential backoff.

Tool Reference

get-regions-tree

Get the Yandex Wordstat regions hierarchy tree.

ParameterTypeRequiredDefaultDescription
depthnumberNo3Maximum tree depth (1-5)

Returns a tree of regions with value (region ID), label (name), and children.

get-region-children

Get children of a specific region from the cached tree. Does not make an API call -- works from the cached region tree.

ParameterTypeRequiredDefaultDescription
regionIdnumberYes--Region ID to get children for
depthnumberNo2Maximum subtree depth (1-3)

top-requests

Find popular search queries containing a keyword (last 30 days), plus associated queries.

ParameterTypeRequiredDefaultDescription
phrasestringYes--Keyword or phrase to search for (max 400 chars)
regionsnumber[]No--Region IDs to filter by
devicesenum[]No--Device types: desktop, phone, tablet
limitnumberNo100Max phrases in response (1-2000)

Returns { topRequests: [{ phrase, count }], associations: [{ phrase, count }], totalCount } sorted by search volume.

dynamics

Analyze search volume trends over time for a keyword.

ParameterTypeRequiredDefaultDescription
phrasestringYes--Keyword or phrase (max 400 chars)
periodenumNomonthlyAggregation: daily, weekly, monthly
fromDatestringNoautoStart date (YYYY-MM-DD)
toDatestringNoautoEnd date (YYYY-MM-DD)
regionsnumber[]No--Region IDs
devicesenum[]No--Device types: desktop, phone, tablet

The API enforces window rules that are documented nowhere and are returned as raw gRPC errors when broken (verified against the live API on 2026-07-29):

PeriodRule
dailyfromDate must be within the last 60 days — exactly 60 days back is rejected
weeklyfromDate must be a Monday, toDate a Sunday, and the week must be over
monthlyfromDate must be the 1st of a month, toDate the last day, and the month must be over

Dates you pass are snapped to the nearest valid window instead of being rejected; every shift is listed in adjustments in both the text summary and structuredContent. A range that falls inside a single week or month expands to that whole period. A range that covers only the current, unfinished week or month cannot be served at all — the API rejects it — so the tool says so and names the latest available toDate instead of forwarding a 400.

Default date ranges by period:

  • daily: last 58 days (kept one day inside the limit so a request never expires on a UTC date rollover)
  • weekly: last 52 full weeks, Monday to Sunday
  • monthly: last 12 full months, 1st to end of month

All date math is done in UTC.

Returns an array of { date, count, share } data points.

regions

Get regional distribution of search interest for a keyword.

ParameterTypeRequiredDefaultDescription
phrasestringYes--Keyword or phrase (max 400 chars)
regionsnumber[]No--Region IDs to filter (client-side, includes descendants)
devicesenum[]No--Device types: desktop, phone, tablet
limitnumberNo20Maximum results (1-50)

Returns an array of { regionId, regionName, count, share, affinityIndex } sorted by count. Region names are enriched from the cached region tree.

Caching

The region tree is fetched once on the first call to get-regions-tree, get-region-children, or regions, and cached for the entire server session. A flat lookup map is built for O(1) region name resolution.

License

MIT

来源:packages/yandex-wordstat-mcp/README.md,提交 bdd6c64

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v2.2.1最新Oct 16, 2026
  2. v2.2.0Oct 15, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分