# Яндекс Вебмастер MCP [![npm](https://img.shields.io/npm/v/mcp-yandex-webmaster)](https://www.npmjs.com/package/mcp-yandex-webmaster) [![CI](https://github.com/askads/mcp-yandex-webmaster/actions/workflows/ci.yml/badge.svg)](https://github.com/askads/mcp-yandex-webmaster/actions/workflows/ci.yml) [![Glama](https://glama.ai/mcp/servers/askads/mcp-yandex-webmaster/badges/score.svg)](https://glama.ai/mcp/servers/askads/mcp-yandex-webmaster) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE) **Яндекс Вебмастер MCP** подключает AI-приложение — Claude, Cursor, Codex и другие — к данным Яндекс Вебмастера. Спросите на естественном языке, как сайт выглядит в поиске Яндекса: какие страницы попали или не попали в поиск, что происходит с показами и кликами, какие проблемы видит Вебмастер, как устроены sitemap и внешние ссылки. Подключение начинается прямо в диалоге: не нужно заранее создавать токен или редактировать конфигурацию. - **20 инструментов.** Сайты, диагностика, поисковые запросы, индексация, sitemap, внешние ссылки и подключение аккаунта прямо из диалога. - **Работает с органическим поиском.** Это не Метрика, не Вордстат и не рекламный кабинет: здесь нет данных о посещаемости, поисковом спросе и рекламе. - **Подключение в чате.** Яндекс откроет страницу входа; одноразовый код действует 10 минут, а сервер проверит доступ к сайтам сразу после подключения. - **Почти всё — чтение.** Отдельные инструменты могут добавить сайт или sitemap, запустить подтверждение прав либо поставить страницу в очередь на переобход. - **Только ваши сайты.** Сервер видит данные тех сайтов, к которым у токена есть доступ; для статистики и диагностики права на сайт должны быть подтверждены в Вебмастере. Попробуйте первым сообщением: > Какие критичные проблемы сейчас видит диагностика на моём сайте? [Подключить сервер](#быстрый-старт) · [Посмотреть сценарии](#что-можно-поручить) · [Открыть техническую документацию](#техническая-документация) --- ## Увидеть работу за минуту > **Вы:** Покажи мои сайты в Вебмастере и кратко оцени их состояние. > > **Ассистент:** Показывает сайты, доступные по токену, их ИКС, число страниц в поиске и исключённых страниц, а также количество проблем по степени серьёзности. > > **Вы:** Какие критичные проблемы есть у основного сайта и что проверить в первую очередь? > > **Ассистент:** Разбирает текущую диагностику Вебмастера, отделяет критичные проблемы от рекомендаций и объясняет, какие из них требуют действий на сайте. > > **Вы:** По каким запросам сайт чаще всего показывался за последнюю неделю? > > **Ассистент:** Показывает запросы с показами, кликами и средними позициями. При необходимости сравнивает динамику для компьютеров и мобильных устройств. ## Содержание - [Быстрый старт](#быстрый-старт) - [Что можно поручить](#что-можно-поручить) - [Как это работает](#как-это-работает) - [Что может изменить данные](#что-может-изменить-данные) - [Подключение и настройка](#подключение-и-настройка) - [Данные и телеметрия](#данные-и-телеметрия) - [Ограничения](#ограничения) - [Техническая документация](#техническая-документация) - [Поддержка](#поддержка) ## Быстрый старт Нужен Node.js 20+. `npx` скачает сервер при первом запуске — отдельно устанавливать пакет не нужно. Токен заранее получать не нужно: подключение проходит прямо в диалоге. 1. Добавьте сервер в своё AI-приложение. Выберите инструкцию ниже. 2. Напишите: **«Подключи Яндекс Вебмастер»** — ассистент проведёт через вход в Яндекс и проверит, что видит ваши сайты. 3. Задайте первый вопрос, например: **«Какие критичные проблемы сейчас видит диагностика на моём сайте?»** Для CI и автоматических установок можно задать готовый токен — см. [Подключение и настройка](#подключение-и-настройка).
Codex **Через интерфейс.** Откройте Settings → Plugins → MCP servers, нажмите Add server и укажите: - имя: yandex-webmaster; - команда: npx; - аргументы: -y mcp-yandex-webmaster@latest. Сохраните сервер. Он появится в списке MCP-серверов Codex. **Через командную строку.** Вместо интерфейса можно выполнить: ```bash codex mcp add yandex-webmaster \ -- npx -y mcp-yandex-webmaster@latest ``` Проверить, что сервер добавлен: `codex mcp list`.
Claude Code ```bash claude mcp add --transport stdio --scope user \ yandex-webmaster -- npx -y mcp-yandex-webmaster@latest ``` Проверить подключение: `claude mcp list`.
Claude Desktop Откройте Settings → Developer → Edit Config и добавьте в `claude_desktop_config.json`: ```json { "mcpServers": { "yandex-webmaster": { "command": "npx", "args": ["-y", "mcp-yandex-webmaster@latest"] } } } ``` Если раздела Developer нет, откройте файл вручную: macOS — `~/Library/Application Support/Claude/claude_desktop_config.json`, Windows — `%APPDATA%\Claude\claude_desktop_config.json`. Перезапустите Claude Desktop.
Cursor Откройте `~/.cursor/mcp.json`, чтобы подключить сервер во всех проектах, или `.cursor/mcp.json` в конкретном проекте. Добавьте: ```json { "mcpServers": { "yandex-webmaster": { "command": "npx", "args": ["-y", "mcp-yandex-webmaster@latest"] } } } ```
VS Code В палитре команд выполните MCP: Open User Configuration. В открывшемся `mcp.json` добавьте сервер: ```json { "servers": { "yandex-webmaster": { "type": "stdio", "command": "npx", "args": ["-y", "mcp-yandex-webmaster@latest"] } } } ``` После сохранения выполните MCP: List Servers и запустите сервер из списка.
## Что можно поручить ### Понять состояние сайта в поиске - «Покажи мои сайты в Вебмастере и их ИКС». - «Сколько страниц основного сайта находится в поиске и сколько исключено?» - «Какие критичные и фатальные проблемы есть на сайте?» - «Какие важные страницы изменили статус индексации?» ### Разобраться с поисковыми запросами - «По каким запросам сайт чаще всего показывался за последнюю неделю?» - «Как менялись показы, клики и средняя позиция сайта за последний месяц?» - «Сравни видимость сайта на мобильных устройствах и компьютерах». ### Проверить обход, sitemap и внешние ссылки - «Покажи, какие HTTP-ошибки робот Яндекса встречал при обходе сайта». - «Есть ли ошибки в sitemap и когда робот в последний раз его читал?» - «Покажи примеры внешних ссылок на сайт». ### Подготовить действие на сайте - «Проверь, добавлен ли sitemap https://example.com/sitemap.xml, и объясни, что изменится при добавлении». - «Сколько переобходов осталось на сегодня для сайта и можно ли отправить страницу в очередь?» - «Как подтвердить права на новый сайт через DNS?» ## Как это работает Работа начинается со списка сайтов. У каждого есть технический идентификатор `host_id` — сервер подхватывает его из вашего запроса или из переменной `YANDEX_WEBMASTER_HOST_ID`, если она задана. После подтверждения прав на сайт сервер может собрать в одном диалоге: - **состояние в поиске** — ИКС, число страниц в поиске и исключённых страниц, текущие проблемы; - **видимость по запросам** — показы, клики и средние позиции по датам и типам устройств; - **обход и индексацию** — HTTP-коды при обходе, статус важных страниц, sitemap и очередь на переобход; - **ссылочный профиль** — примеры страниц, которые ссылаются на ваш сайт. Если прав на сайт нет, Вебмастер вернёт `HOST_NOT_VERIFIED`. Если сайт ещё не загружен или не проиндексирован, `HOST_NOT_LOADED` и `HOST_NOT_INDEXED` означают, что данных пока нет, а не нулевые показатели. ## Что может изменить данные Большинство вопросов к серверу только читают данные. Следующие операции меняют состояние в Яндекс Вебмастере: | Действие | Что происходит | На что обратить внимание | | --- | --- | --- | | Добавить сайт | Сайт появляется в списке сайтов аккаунта. | Права на него нужно подтвердить отдельно. | | Запустить подтверждение прав | Вебмастер начинает проверять DNS-запись, HTML-файл или мета-тег. | Перед запуском нужно разместить код, который выдал Вебмастер. | | Добавить sitemap | Sitemap передаётся Вебмастеру. | Повторное добавление вернёт сообщение, что файл уже есть. | | Отправить страницу на переобход | URL попадает в очередь на обход роботом. | Тратится суточная квота сайта; ответ покажет её остаток. | | Выполнить прямой запрос API | `raw_request` открывает пути API, для которых нет отдельного инструмента. | `POST` тоже может менять данные, а `DELETE` — безвозвратно удалить сайт или sitemap. | Инструменты, которые меняют состояние, помечены для AI-приложения как действия, а `raw_request` с возможным удалением — как потенциально необратимое. Приложение может запросить подтверждение, но его поведение зависит от конкретного клиента. Для удаления нужна явная просьба. ## Подключение и настройка Сервер обращается к [Yandex Webmaster API v4](https://yandex.ru/dev/webmaster/) от имени вашего аккаунта Яндекса и видит те же сайты, которые доступны этому аккаунту в веб-интерфейсе Вебмастера. Для обычного использования токен заранее не нужен: 1. В чате попросите подключить Яндекс Вебмастер. 2. Откройте ссылку на Яндекс OAuth под аккаунтом, которому в Вебмастере видны нужные сайты. 3. Подтвердите доступ и пришлите показанный код ассистенту. Код одноразовый, действует 10 минут и меняется на токен только внутри работающего сервера — перезапускать приложение и править конфигурацию не нужно. Сервер использует PKCE: код из чата сам по себе нельзя обменять на токен, поэтому пересылать его в чате безопасно. Полученный токен хранится локально в `~/.config/mcp-yandex-webmaster/credentials.json` с правами только для владельца (`0600`). Дальше подключение живёт само: доступ продлевается автоматически и не отваливается через год. Проверить состояние — попросите «покажи статус подключения», отключить — «отключи Вебмастер»; выданный доступ отзывается в [Яндекс ID](https://id.yandex.ru/security). Для CI и нестандартных установок доступна настройка через переменные окружения: | Переменная | Назначение | |---|---| | `YANDEX_OAUTH_TOKEN` | Готовый OAuth-токен с доступом к Вебмастеру; имеет приоритет над входом из диалога — такой токен сервер не обновляет и не удаляет. | | `YANDEX_WEBMASTER_HOST_ID` | Сайт (`host_id`) по умолчанию, чтобы не уточнять его в каждом запросе. Узнать `host_id` можно командой «Покажи мои сайты в Вебмастере». | | `YANDEX_WEBMASTER_OAUTH_CLIENT_ID` | ClientID собственного OAuth-приложения вместо приложения по умолчанию. | | `YANDEX_USER_ID` | Идентификатор пользователя Вебмастера; по умолчанию определяется автоматически. | | `YANDEX_WEBMASTER_TIMEOUT_MS` | Таймаут запроса; по умолчанию 60 000 мс. | | `YANDEX_WEBMASTER_MAX_RETRIES` | Число повторов при временных ошибках; по умолчанию 3. | | `YANDEX_WEBMASTER_API_BASE` | Базовый адрес API; по умолчанию `https://api.webmaster.yandex.net/v4`. | Готовый токен для `YANDEX_OAUTH_TOKEN` можно получить так: создайте приложение на [oauth.yandex.ru](https://oauth.yandex.ru), в правах доступа выберите **API Яндекс Вебмастера** и получите токен по [инструкции Яндекс OAuth](https://yandex.ru/dev/id/doc/ru/access). Это же приложение подойдёт и для входа из диалога — задайте его ClientID в `YANDEX_WEBMASTER_OAUTH_CLIENT_ID` (Redirect URI — `https://oauth.yandex.ru/verification_code`). Не публикуйте токен в чате, репозитории или скриншотах: он даёт доступ к сайтам вашего аккаунта. ## Данные и телеметрия По умолчанию сервер отправляет анонимные технические события: случайный идентификатор установки, название вызванного инструмента, версии сервера, AI-приложения, Node.js и операционной системы. Токен Яндекса, данные аккаунта, аргументы инструментов, тексты запросов, значения и названия переменных окружения не отправляются. Чтобы отключить телеметрию для MCP-серверов Ask Ads, задайте переменную окружения: ```bash ASKADS_TELEMETRY=0 ``` ## Ограничения - **Подтверждённые права обязательны для статистики.** Без них доступны список сайтов и проверка статуса прав, но не диагностика, запросы и индексация. - **Переобход ограничен суточной квотой сайта.** В ответе есть `quota_remainder` — остаток на сегодня. При `429 QUOTA_EXCEEDED` ожидание не поможет: квота восстановится завтра. - **Популярные запросы ограничены данными Вебмастера.** В топ попадает до 3 000 запросов за последнюю неделю, а за один запрос можно получить до 500 строк. - **Повторы запросов предусмотрены только для временных ошибок.** Сервер делает до трёх повторов для обычных ограничений частоты; ошибки сети и сервера повторяются только при чтении, чтобы не продублировать действие. - **Нет постоянного наблюдения.** Сервер работает, когда его вызывает AI-приложение. Если приложение поддерживает регулярные задания, можно настроить периодический запрос к серверу для проверки нужных показателей. ## Техническая документация - [Все инструменты](./docs/TOOLS.md) — параметры, ответы и примеры вызовов. - [Разработка](./docs/DEVELOPMENT.md) — устройство проекта и работа с исходным кодом. - [Пакет в npm](https://www.npmjs.com/package/mcp-yandex-webmaster). - [Документация Yandex Webmaster API](https://yandex.ru/dev/webmaster/) — первоисточник по API и его ограничениям. ## Поддержка Нашли ошибку или не хватает сценария? [Создайте issue](https://github.com/askads/mcp-yandex-webmaster/issues) или напишите в [Telegram](http://t.me/gistrec).