Yandex Wordstat MCP

io.github.stufentlyPublished by GitHub account stufentlyv2.2.1Updated Oct 24, 2026

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

VerifiedSTDIODesktop onlyWeb Search & ScrapingData & Analytics

Overview

AI-generated overview

Local MCP server for Yandex Wordstat keyword research, letting an assistant explore search demand, trends and regional interest for Russian and CIS markets.

What you can do
Look up popular search queries containing a keyword, with associated queries and volumes for the last 30 days, filterable by region and device type. Analyze search volume trends over daily, weekly or monthly windows, with dates snapped to valid periods and adjustments reported. Get the regional distribution of interest for a keyword, including counts, shares and affinity index. Browse the Wordstat regions hierarchy and list the children of a region from a cached tree.
When to use it
Useful when doing SEO or keyword research for Russian and CIS markets, comparing search demand across regions or devices, or tracking how interest in a term changes over time.
Requirements
Runs locally as a Node.js process started from source (the README says nothing is published on the scope yet). Needs a Yandex Cloud account with a linked billing account, a service account with the search-api.webSearch.user role, and two settings: WORDSTAT_API_KEY (API key) and WORDSTAT_FOLDER_ID (folder ID). Credentials can also be placed in a config file under the user's home directory. Network access to the Yandex Cloud Search API is required.
Before you install
Requires a secret Yandex Cloud API key (WORDSTAT_API_KEY) and a folder ID tied to a billing account, so API calls may incur charges. The README warns that the unscoped package name belongs to an unrelated publisher, so verify the source before installing. The server only reads Wordstat data; it does not modify anything.

Installation

In SourceWeft

  1. Open Yandex Wordstat MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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

Source: packages/yandex-wordstat-mcp/README.md at commit bdd6c64

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v2.2.1LatestOct 16, 2026
  2. v2.2.0Oct 15, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts