Skip to main content
Glama
webkoth
by webkoth

yandex-mcp

Сервер MCP, который предоставляет API Yandex Webmaster, Yandex Direct и Yandex Metrika как инструменты для ИИ-ассистентов (Claude Desktop, Claude Code, Cursor и др.).

Он позволяет ассистенту работать с вашими данными SEO, рекламы и аналитики Yandex на естественном языке — просматривать поисковые запросы, управлять индексацией и картами сайта, запрашивать переобход, запускать диагностику, управлять кампаниями Direct с защитой записи и получать статистику по трафику, конверсиям и рекламе — без входа в веб-интерфейс Yandex.

  • 125 tool всего: 52 для Webmaster, 46 для Direct, 25 для Metrika, 2 для управления проектами.

  • 6 MCP-проектов — элементы приложений готовые сценарии (аудит кампании, еженедельный отчёт, запуск кампании, масштабирование бюджета, SEO-аудит, проверка усвоения) на playbook по autostrategies, который также публикуется как MCP resource yandex://playbook.

  • Один сервер, много-проектовая: several Yandex-аккаунтов/токенов в одном stdio-процессе.

  • TypeScript / Node ≥ 22, построенный на @modelcontextprotocol/sdk и zod.

Как это работает

src/index.ts поднимает один McpServer и регистрирует все группы инструментов из src/webmaster/ и src/direct/. Все запросы проходят через src/client.ts — HTTP-клиента для каждого проекта, который:

  • добавляет заголовок Authorization: OAuth <token> (Bearer для Direct),

  • направляет запросы Webmaster на api.webmaster.yandex.net, а Direct — на api.direct.yandex.com/json/v5 (или в Direct Sandbox, если включён direct.sandbox),

  • определяет и кэширует user_id Webmaster и подставляет host_id в пути,

  • повторяет запросы при сетевых ошибках / 429 с экспоненциальной задержкой и обрабатывает 204 No Content,

  • распаковывает внутренние ошибки Direct в теле ответа {"error": {...}} и следит за заголовком квоты Units.

Related MCP server: yandex-direct

Предварительные требования

  • Node.js ≥ 22.

  • OAuth-токен Yandex с доступом к API Webmaster и/или Metrika.

Получение OAuth-токена

  1. Заре.hasNextRegisterthe app in the Yandex OAuth consolе and выдайте ему прова Webmaster (webmaster:hostinfo, webmaster:verifion) and/or Metrika (metrika:read / metrika:write) scopes.

  2. Get the token for your account via OAuth flow.

Notes:

  • Direct требует собственнной области приложения и одобренной заявки (request), поданной из аккаунта Direct после регистрации приложения — существующие токенs Webmaster/Metrika не подойдут для Direct, пока не перевыпустить. Until access approved, use the Direct Sandbox (direct.sandbox: true in the project config).

  • OAuth-токены Webmaster expire after 6 месяцs and must be reissued.

Настройка

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

Сервер по MCP через stdio, поэтому его обычно запускает MCP-клиент, а не вручную.

Конфигурация нескольких проектов

Сервер может обслуживать несколько проектов, у каждого из которых свой логин/токен Yandex. Скопируйте projects.example.json в projects.json (в .gitignore) и заполните его, либо укажите YANDEX_PROJECTS_CONFIG другой путь. Если файла конфигурации нет, но задан YANDEX_OAUTH_TOKEN, используется один проект default.

Переключайте активный проект через yandex_set_active_project, смотрите список через yandex_projects_list или передавайте project в любой инструмент Direct или Metrika. Инструменты Metrika также учитывают default_counter проекта.

Настройки Direct для отдельных проектов: sandbox (маршрутизация в Direct Sandbox), allow_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, hosts_get, hosts_add, hosts_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

URL в поиске

search_urls_in_search_history, search_urls_in_search_samples, search_urls_events_history, search_urls_events_samples

Важные URL

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_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 (кэшC 24 часа), clients_get, changes_check, units

Запись (с защитой)

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

Исследование

keywords_research

Отчёты

report

Все имена инструментов имеют префикс yandex_direct_. Инструменты записивают предварительно diff до изменения, not iff confirm: true, и следат проектных лимитах бюджета/ставки (обход — force: true). Set direct.sandbox: true in the project to route вызовы into Direct Sandbox. Результаты записиваются с сводкой по каждому эlementа — Direct сообщает о чатчных failures в hello успешного HTTP-ответа, therefore check the partial_failure.

Управление проектами (2)

yandex_projects_list, yandex_set_active_project — the same config for the Configuraция тних проектов.

Metrika (22)

Группа

Инструменты

Управление

fetch_data_list counters_list, counter_get, goals_list, segments_list, filters_list

Цели (запись с защитой)

target_add, target_update, target_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

Reporting (Stat)

stat_data, stat_bytime, stat_drilldown, stat_comparison, stat_comparison_drilldown

Все имена инструментов имеют префикс yandex_metrika_. Стат-инструменты принимают direct_client_logins для рекламных отчётов (метрики ym:ad: — расходы Direct в объединении с поведением на сайте) и extra_params для любого другого параметра запроса.

Инструменты отчётности повторяют Metrika Reporting 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). Инструменты, привязанные к счётчику, по умолчанию используют default_counter проекта, если counter_id/ids не указаны.

Структура проекта

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

Скрипты

Команда

Описание

npm run build

Компилировать TypeScript в dist/

npm run dev

Запускать из исходного кода с tsx watch

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