Odel
yandex webmaster mcp

yandex webmaster mcp

Local
@theyahia3TypeScriptMITUpdated 1w ago

MCP server for Yandex.Webmaster API — hosts, search queries, indexing status. Bearer token auth.

🗄 Репозиторий заархивирован

Разработка переехала в theYahia/YaAll — сборку, где весь яндексовский слой лежит в одном месте: свои MCP-серверы, скиллы Claude Code и материалы официальных наборов Яндекса.

Актуальная версия того, что лежало здесь: mcp/yandex-webmaster-mcp/

Пакет в npm прежний — @theyahia/yandex-webmaster-mcp, ставится и работает как раньше. Здесь больше ничего не обновляется. Задачи и pull request'ы — в YaAll.

Archived — development moved to theYahia/YaAll, a single repository bundling the whole Yandex stack. The current version of this package now lives at mcp/yandex-webmaster-mcp/. The npm package @theyahia/yandex-webmaster-mcp is unchanged. Please open issues and pull requests there.

Этот сервер входит в сборку theYahia/YaAll — весь яндексовский слой в одном репозитории: десять MCP-серверов, скиллы Claude Code под SEO и валидацию спроса, плюс материалы официальных серверов Яндекса. Здесь он живёт отдельно, там — рядом с остальными: mcp/yandex-webmaster-mcp/

Part of theYahia/YaAll — the whole Yandex stack in one repo.

@theyahia/yandex-webmaster-mcp

MCP-сервер для API Яндекс.Вебмастер — сайты, индексация, поисковые запросы, sitemaps, диагностика и переобход. 13 инструментов, вывод в компактном Markdown (или сыром JSON).

npm License: MIT

Установка

Claude Desktop

{
  "mcpServers": {
    "yandex-webmaster": {
      "command": "npx",
      "args": ["-y", "@theyahia/yandex-webmaster-mcp"],
      "env": {
        "YANDEX_WEBMASTER_TOKEN": "ваш_oauth_токен"
      }
    }
  }
}

Claude Code

claude mcp add yandex-webmaster -e YANDEX_WEBMASTER_TOKEN=ваш_oauth_токен -- npx -y @theyahia/yandex-webmaster-mcp

Авторизация

Нужен только YANDEX_WEBMASTER_TOKEN — OAuth-токен с правом webmaster:api. user_id определяется автоматически через GET /user/, задавать его руками не нужно.

Как получить токен:

  1. Создайте приложение на https://oauth.yandex.ru/ и выдайте ему право Яндекс.Вебмастер (webmaster:api).
  2. Получите OAuth-токен по инструкции Яндекса и положите его в YANDEX_WEBMASTER_TOKEN.

Переменные окружения

ПеременнаяОбяз.Назначение
YANDEX_WEBMASTER_TOKENдаOAuth-токен с правом webmaster:api
YANDEX_WEBMASTER_USER_IDнетЧисловой user ID. Если не задан — определяется автоматически
PORTнетПорт HTTP-режима (по умолчанию 3100)
MCP_ALLOWED_HOSTSнетРазрешённые Host для HTTP (CSV). * — отключить защиту от DNS-rebinding
MCP_HTTP_AUTH_TOKENнетЕсли задан — требует Authorization: Bearer <token> на POST /mcp

Инструменты (13)

ИнструментОписание
get_hostsСписок сайтов: URL, статус подтверждения
get_user_infoДанные аккаунта (user_id)
get_popular_search_queriesПоисковые запросы по сайту: показы, клики, средняя позиция (per-query)
get_query_analyticsАгрегированный тренд трафика во времени (НЕ per-query)
get_search_queries⚠️ deprecated — алиас get_popular_search_queries
get_indexingСводка индексации сайта
get_indexing_historyТренд проиндексированных/исключённых страниц
submit_urlОтправить URL на переобход (расходует дневную квоту)
get_recrawl_quotaОстаток дневной квоты переобхода
get_recrawl_taskСтатус задачи переобхода по task_id
get_sitemapsСписок sitemap'ов сайта
get_diagnosticsДиагностика сайта: ошибки обхода, DNS, проблемы сервера
get_important_urlsМониторинг важных URL

У каждого инструмента есть параметр format: markdown (по умолчанию, компактно) или json (сырой ответ API).

Примеры запросов

Какие сайты у меня в Вебмастере?
По каким запросам находят мой сайт за последнюю неделю?
Сколько страниц проиндексировано и есть ли деиндексация?
Отправь https://example.com/new-page на переобход и покажи остаток квоты.

HTTP-режим

Помимо stdio сервер умеет работать по Streamable HTTP:

YANDEX_WEBMASTER_TOKEN=... npx @theyahia/yandex-webmaster-mcp --http
# POST /mcp  — MCP endpoint
# GET  /health — { "status": "ok", "version": "..." }

По умолчанию включена защита от DNS-rebinding (разрешены только localhost/127.0.0.1). Для доступа с другого хоста задайте MCP_ALLOWED_HOSTS. Токен в HTTP-режиме общий (берётся из окружения) — multi-tenancy не поддерживается.

Разработка

npm install
npm run dev          # запуск из исходников (tsx)
npm test             # тесты (vitest)
npm run typecheck    # tsc --noEmit (src + tests)
npm run lint         # eslint
npm run format       # prettier --check
npm run build        # сборка в dist/

Лицензия

MIT