mcpField
Y
Yandex Wordstat MCP

Yandex Wordstat MCP

Local
github.comBusiness & Marketing19Updated 2d ago

About Yandex Wordstat MCP

Yandex Wordstat MCP provides keyword research through Yandex Cloud Search API v2 for researchers focused on Russian and CIS markets. It returns query popularity, time trends, and regional interest, with device and region filters.

Key features

  1. 01Popular and related queries
  2. 02Search-volume trends by date range
  3. 03Regional search-interest distribution
  4. 04Region hierarchy lookup
  5. 05Device and region filtering
  6. 06Rate limiting and retries

Use cases

  1. 01Compare keyword popularity across regions
  2. 02Track query volume over time
  3. 03Find related searches for a phrase
  4. 04Segment keyword data by device

MCP support

Exposes Yandex Wordstat keyword research tools to MCP clients through Yandex Cloud Search API v2. It uses a Yandex Cloud API key and folder ID for authentication.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"stufently-yandex-wordstat": {
"command": "npx",
"args": [
"-y",
"@stufently/yandex-wordstat-mcp"
],
"env": {
"WORDSTAT_API_KEY": "<WORDSTAT_API_KEY>",
"WORDSTAT_FOLDER_ID": "<WORDSTAT_FOLDER_ID>"
}
}
}
}
Run commandnpx -y @stufently/yandex-wordstat-mcp
Environment variables to set
WORDSTAT_API_KEYSecretYandex Cloud API key (service account with search-api.webSearch.user)
WORDSTAT_FOLDER_IDYandex Cloud folder ID for Search API v2

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@stufently/yandex-wordstat-mcp2.2.1

Tools

5

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
depthnumberNoMaximum tree depth (default: 3)

Details

From the project 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:

git clone https://github.com/stufently/yandex-mcp.git
cd yandex-mcp && bun install
node packages/yandex-wordstat-mcp/src/index.mjs

Configuration

Add to your MCP client config:

{
  "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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.