Skip to main content
Glama
webkoth
by webkoth

yandex-mcp

一个 MCP 服务器,将 Yandex Webmaster、Yandex Direct 和 Yandex Metrika API 作为工具开放给 AI 助手(Claude Desktop、Claude Code、Cursor 等)。

它可以让 AI 助手直接用自然语言操作你的 Yandex SEO、广告和分析数据——检查搜索查询、管理索引和站点地图、申请重新抓取、运行诊断、在写入保护下管理 Direct 广告系列,以及提取流量 / 转化 / 广告统计——而你无需登录 Yandex Web 界面。

  • 共 125 个工具:Webmaster 52 个,Direct 46 个,Metrika 25 个,项目管理 2 个。

  • 6 个 MCP 提示(prompts)——基于 autostrategies 作战手册(playbook)构建的即用型工作流(广告系列审计、每周报告、广告系列上线、预算扩量、SEO 审计、学习检查),该作战手册也作为 yandex://playbook MCP 资源开放。

  • 单服务器、多项目:一个 stdio 进程内支持多个 Yandex 账户/令牌。

  • TypeScript / Node ≥ 22,基于 @modelcontextprotocol/sdk 和 zod 构建。

工作原理

src/index.ts 启动一个 McpServer,并注册来自 src/webmaster/ 和 src/direct/ 的所有工具组。所有请求都通过 src/client.ts——一个按项目定制的 HTTP 客户端——完成,它会:

  • 附加 Authorization: OAuth <token> 请求头(Direct 使用 Bearer);

  • 将 Webmaster 请求路由到 api.webmaster.yandex.net,将 Direct 请求路由到 api.direct.yandex.com/json/v5(若启用了 direct.sandbox,则路由到 Direct Sandbox);

  • 解析并缓存 Webmaster 的 user_id,并在路径中注入 host_id;

  • 在遇到网络错误 / 429 时进行指数退避重试,并处理 204 No Content;

  • 展现 Direct 相关响应体中的 {"error": {...}},并跟踪 Units 配额请求头。

Related MCP server: yandex-direct

前提条件

  • Node.js ≥ 22。

  • 拥有 Webmaster 和/或 Metrika API 访问权限的 Yandex OAuth 令牌。

获取 OAuth 令牌

  1. 在 Yandex OAuth 控制台 注册一个应用,并授予 Webmaster(webmaster:hostinfo、webmaster:verify)和/或 Metrika(metrika:read / metrika:write)权限范围。

  2. 通过 OAuth 流程 获取你账户对应的令牌。

注意:

  • Direct 需要自己专属的应用权限范围,并在应用注册之后向 Direct 提交访问申请(заявка)并获得批准——现有的 Webmaster/Metrika 令牌如果不重新签发,则无法用于 Direct。在访问申请获批之前,请使用 Direct Sandbox(在项目配置中设置 direct.sandbox: true)。

  • Webmaster 的 OAuth 令牌有效期为 6 个月,过期后必须重新签发。

设置

npm install
cp .env.example .env      # then put your token in .env
npm run build

.env:

YANDEX_OAUTH_TOKEN=your_oauth_token_here

运行

npm start          # runs dist/index.js (requires build)
npm run dev        # tsx watch mode against src/index.ts

该服务器通过 stdio 提供 MCP 服务,因此通常由 MCP 客户端启动,而非手动启动。

多项目配置

服务器可以提供服务给多个项目,每个项目都有各自的 Yandex 登录名/令牌。将 projects.example.json 复制为 projects.json(已加入 .gitignore)并填入内容,或将 YANDEX_PROJECTS_CONFIG 指向其他路径。如果不存在配置文件但设置了 YANDEX_OAUTH_TOKEN,则使用名为 default 的单个项目。

使用 yandex_set_active_project 切换活动项目,用 yandex_projects_list 查看项目,或向任意 Direct / Metrika 工具传入 project。Metrika 工具也会遵循项目配置中的 default_counter。

按项目的 Direct 设置:sandbox(路由到 Direct Sandbox)、client_login(代理账户)以及 limits——写入工具强制执行的最大预算/出价变更百分比。

连接到 MCP 客户端

令牌从 YANDEX_OAUTH_TOKEN 环境变量读取。

Claude Desktop / Cursor

添加到 MCP 服务器配置(claude_desktop_config.json 或等效文件)中:

{
  "mcpServers": {
    "yandex": {
      "command": "node",
      "args": ["/absolute/path/to/yandex/dist/index.js"],
      "env": {
        "YANDEX_OAUTH_TOKEN": "your_oauth_token_here"
      }
    }
  }
}

Claude Code

claude mcp add yandex --env YANDEX_OAUTH_TOKEN=your_token -- node /absolute/path/to/yandex/dist/index.js

工具

Webmaster(52)

分组

工具

用户

user_get

站点

hosts_list、host_get2, host_add, host_delete,host_deletion, host_delete

验证

verification_start, verification_status, verification_owners

摘要

summary_get, summary_sqi_history

搜索查询

search_queries_popular, search_queries_all_history, search_queries_history, query_analytics

索引

indexing_history, indexing_samples, indexing_archive_create, indexing_archive_status

搜索结果中的网址

search_urls_in_search_history, search_urls_in_search_samples, search_urls_events_history, search_urls_events_samples

重要网址

important_urls_list, important_urls_history

站点地图

sitemaps_list, sitemaps_get, sitemaps_user_list, sitemaps_user_get, sitemaps_add, sitemaps_delete

重新抓取

recrawl_submit, recrawl_status, recrawl_list, recrawl_quota, recrawl_sitemap_quota, recrawl_sitemap_submit

诊断

diagnostics_get

链接

links_external_samples, links_external_history, links_internal_samples, links_internal_history

Pro 导出

pro_regions, pro_limits, pro_dates, pro_export_start, pro_export_status

Feeds(商品数据源)

feeds_add, feeds_add_status, feeds_batch_add, feeds_list, feeds_batch_delete, feeds_change_regions

所有工具名均以 yandex_webmaster_ 为前缀。

Direct(43)

分组

工具

读取

campaigns_get, adgroups_get, ads_get, keywords_get, bids_get, bidmodifiers_get, sitelinks_get, adextensions_get, adimages_get, retargetinglists_get, audiencetargets_get, feeds_get, creatives_get, smartadtargets_get, dynamictextadtargets_get, negativekeywordsharedsets_get, vcards_get, leads_get, turbopages_get, businesses_get, agencyclients_get, advideos_get, dictionaries_get(24h 缓存)、clients_get, changes_check, units

写入(受保护)

campaigns_manage, adgroups_manage, ads_manage, keywords_manage, bids_set, bidmodifiers_manage, sitelinks_manage, adextensions_manage, adimages_manage, retargetinglists_manage, audiencetargets_manage, feeds_manage, smartadtargets_manage, dynamictextadtargets_manage, negativekeywordsharedsets_manage, vcards_manage, advideos_manage, clients_manage

研究

keywords_research

报告

report

所有工具名均以 yandex_direct_ 为前缀。写入工具会预览差异,除非设置 confirm: true,并执行分项目的预算/出价变更限制(可用 force: true 覆盖)。在项目中设置 direct.sandbox: true 可将调用路由至 Direct Sandbox。写入结果包含单条目汇总——Direct 会在成功的 HTTP 响应中上报部分失败,因此请检查 partial_failure。

项目管理(2)

yandex_projects_list、yandex_set_active_project——参见多项目配置。

Metrika(22)

分组

工具

管理

counters_list, counter_get, goals_list, segments_list, filters_list

目标(受保护写入)

goal_add, goal_update, goal_delete

离线转化

offline_conversions_upload(受保护)、offline_conversions_uploadings

支出导入

expenses_upload(受保护;非 Yandex 广告支出)、expenses_uploadings

CRM 导入

crm_orders_upload(受保护;通过 CDP 上传订单/收入)、calls_upload(受保护)、calls_uploadings

Logs API(原始数据)

logs_evaluate, logs_request_create, logs_requests, logs_download(截断的 TSV)、logs_clean

报告(Stat)

stat_data, stat_bytime, stat_drilldown, stat_comparison, stat_comparison_drilldown

所有工具名均以 yandex_metrika_ 为前缀。统计工具接受用于广告报告的 direct_client_logins(ym:ad: 指标——Direct 花费与站内行为数据连接)以及 extra_params 用于其他任何查询参数。

报告工具对应的是 Metrika 报告 API。指标与维度使用 ym:s:(会话数)和 ym:pv:(页面浏览量)命名空间,例如 metrics: "ym:s:visits,ym:s:users,ym:s:bounceRate"、dimensions: "ym:s:date,ym:s:lastTrafficSource"。日期支持 YYYY-MM-DD 或相对关键字(today、yesterday、7daysAgo)。若省略 counter_id/ids,将默认使用项目里设置的 default_counter。

Project layout

src/
  index.ts            # entry point: boots the MCP server, registers all tools
  client.ts           # per-project HTTP client (auth schemes, base URLs, retries, Direct transport)
  projects.ts         # project registry: per-project tokens, Direct config, limits
  server-tools.ts     # project management tools (list / set active)
  webmaster/          # 14 modules, 51 Webmaster tools
  metrika/            # management + Reporting API — 10 Metrika tools
  direct/             # read, guarded write, reports — 14 Direct tools

Scripts

命令

描述

npm run build

将 TypeScript 编译到 dist/ 目录

npm run dev

使用 tsx 监听模式从源码运行

npm test

运行单元测试套件(tsx --test)

npm start

运行构建后的服务器

npm run clean

删除 dist/ 目录

许可证

MIT © Minas Sarkisyan

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables interaction with Yandex advertising and analytics APIs (Direct, Metrika, Audience, Webmaster, AdMetrica) through MCP tools, resources, and prompts for campaign management and data retrieval.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to manage Yandex Direct advertising campaigns, ads, keywords, and reports via natural language using the Yandex Direct API v5.
    2
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to retrieve comprehensive analytics data from Yandex Metrika accounts, including traffic, content, e-commerce, and user demographics.
    68 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Connects AI assistants to SEO data from Yandex Webmaster, Google Search Console, Yandex Metrica, and Topvisor, enabling natural language analysis of search performance, indexation, positions, and audits.
    MIT