yandex-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| yandex_wordstat_get_topB | Get Yandex Wordstat top requests with raw provenance and normalized output. |
| yandex_wordstat_dynamicsC | Get Wordstat demand over time using UTC dates YYYY-MM-DD and the server budget gate. |
| yandex_wordstat_regionsC | Get Wordstat demand by region for the last 30 days through the server budget gate. |
| yandex_wordstat_regions_treeB | Get the Wordstat region tree through Cloud credentials and the server budget gate. |
| yandex_serp_prepareC | Prepare an asynchronous Yandex SERP request without a live provider call. |
| yandex_serp_submitB | Queue an approved asynchronous Yandex SERP request. |
| yandex_serp_statusB | Return durable status for an asynchronous Yandex SERP job. |
| yandex_serp_get_resultB | Return raw provenance metadata and normalized Yandex SERP output. |
| direct_list_campaignsC | List Direct campaigns through the strict read allowlist. |
| direct_get_campaignA | Get one Direct campaign by numeric id. |
| direct_get_inventoryC | Run a provider-native get against the explicit Direct inventory allowlist. |
| direct_get_statisticsC | Read campaign statistics; returns completed TSV rows or safe offline queue status. |
| direct_keyword_forecastC | Forecast search-volume presence by device for phrases and regions. |
| direct_prepare_changesA | Draft a Direct change set and open an unaccepted, expiring approval. The draft carries a diff hash and an approval_id. A human must accept the
approval before |
| direct_apply_changesA | Execute one accepted, allowlisted Direct write (Campaigns.update) with readback. Fail-closed: needs the runtime flag, an accepted approval whose hash matches these exact changes, and a bounded allowlisted service/method. The approval is consumed exactly once (idempotency); after the write the affected campaigns are re-read to confirm the applied state. |
| direct_writeA | Autonomously apply a Direct write across campaigns/adgroups/ads/keywords/bids. Allowlisted service/method only (add/update/delete/suspend/resume/archive/ moderate, bids set/setAuto). Idempotent, with a post-write readback of the affected objects. campaigns:update also has an approval-gated path (direct_apply_changes) for a stricter human gate. |
| metrika_list_countersA | List Metrika counters through a server-side read-only credential. |
| metrika_list_goalsA | List goals for one positive Metrika counter id. |
| metrika_get_statisticsC | Run a bounded read-only Metrika reporting request. |
| metrika_apply_goalB | Autonomously create, update or delete a Metrika goal (idempotent, readback). |
| metrika_reportB | Report or compare two Metrika periods, with sampling, exact totals and bounded JSON/CSV rows. Each period uses at most three pages. Complete rows can still be sampled; inspect metadata. Differences compare provider totals, never sums of partial rows. Missing values stay null. |
| webmaster_get_userA | Read the OAuth account user identifier; OAuth stays on the server. |
| webmaster_list_hostsA | Read one bounded page of sites accessible to the server account. |
| webmaster_get_hostB | Read metadata for an exact Webmaster host identifier. |
| webmaster_get_verificationA | Read ownership verification state without starting verification. |
| webmaster_get_summaryB | Read indexing and site summary; missing metrics remain missing. |
| webmaster_get_diagnosticsB | Read problems with native severity, presence state and state-change time. |
| webmaster_get_query_historyB | Read at most 31 days of aggregate or selected-query indicators. |
| webmaster_list_popular_queriesC | Read one page of popular queries; explicit periods are at most 31 days. |
| webmaster_get_indexing_historyB | Read at most 31 days of indexing history. |
| webmaster_list_indexing_samplesC | Read one page of indexing samples with continuation metadata. |
| webmaster_list_search_urlsB | Read one page of URLs in search; a sample is not the full index. |
| webmaster_get_search_urls_historyB | Read at most 31 days of search URL count history. |
| webmaster_list_sitemapsC | Read one sitemap page using the upstream sitemap identifier cursor. |
| webmaster_get_sitemapB | Read detected sitemap details or registration of a submitted sitemap. |
| webmaster_list_user_sitemapsB | Read one page of submitted sitemaps with an exclusive identifier cursor. |
| webmaster_list_external_linksC | Read one page of external link samples. |
| webmaster_get_external_links_historyB | Read at most 31 days of external link history. |
| webmaster_list_broken_linksC | Read one page of broken internal link samples. |
| webmaster_get_broken_links_historyB | Read at most 31 days of broken internal link history. |
| webmaster_list_recrawl_queueA | Read one page of asynchronous recrawl requests. |
| webmaster_get_recrawl_quotaA | Read the daily quota and remaining submissions. |
| webmaster_get_recrawl_taskB | Read IN_PROGRESS/DONE/FAILED; DONE does not prove search indexing. |
| webmaster_prepare_recrawlA | Prepare exactly one URL for human approval after ownership, quota and duplicate checks. |
| webmaster_prepare_sitemapC | Prepare one sitemap registration for expiring human approval. |
| webmaster_apply_recrawlC | Submit one accepted URL exactly once. Uncertain POSTs are reconciled without retransmission. |
| webmaster_apply_sitemapB | Submit one accepted sitemap with a durable key and registration readback. |
| webmaster_reconcile_actionC | Read and reconcile this principal's existing action. This tool cannot send a POST. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 48 tools
Most tools map to distinct resource-action pairs, and product prefixes help separate Wordstat, SERP, Direct, Metrika, and Webmaster. However, several read/report tools overlap in function (metrika_report vs metrika_get_statistics, direct_get_campaign vs direct_get_inventory, webmaster_get_sitemap vs list_sitemaps vs list_user_sitemaps), requiring careful description reading to avoid misselection.
Tool names are mostly consistent within each product area, following a service-specific prefix plus verb_noun pattern (e.g., direct_list_campaigns, metrika_list_counters, webmaster_get_diagnostics). Some deviations exist, such as yandex_wordstat_regions and yandex_wordstat_dynamics lacking a verb, so the pattern is not perfectly uniform.
With 48 tools, the server is heavily overloaded for a single MCP surface, far exceeding the typical 3-15 well-scoped range. Although the tools are grouped by Yandex product, the sheer number of near-repetitive Webmaster read endpoints makes the set feel bloated and harder for an agent to navigate efficiently.
The tool set covers the major Yandex product areas comprehensively: Wordstat research, SERP async workflow, Direct campaign management and writes, Metrika statistics/goals, and extensive Webmaster read/reconcile/apply operations. Minor gaps exist, such as no explicit verification-start tool or no direct counter creation, but agents can accomplish core workflows with the available surface.