Skip to main content
Glama
DVeresov

YWM MCP

by DVeresov

YWM MCP — Яндекс.Вебмастер для Claude

MCP-сервер и CLI-выгрузчик в одном файле. Парный к gsc-mcp: те же имена CSV, та же структура summary.md, те же названия метрик — чтобы выгрузки Яндекса и Google можно было положить рядом.

Главное, ради чего он существует: API Search Console не отдаёт внешние ссылки, отчёт по ссылкам живёт только в интерфейсе. API Вебмастера отдаёт — и список доноров, и историю изменения их количества. То есть текущий ссылочный профиль сайта вы получаете бесплатно, без подписки на Ahrefs.

Два режима:

  • CLI — запустили, получили папку CSV + summary.md.

  • MCP — подключается к Claude Desktop, данные запрашиваются прямо в чате.


1. Установка

pip install -r requirements.txt

Python 3.10+. Из зависимостей только mcp — HTTP на стандартной библиотеке. Если нужен исключительно CLI, можно вообще ничего не ставить.


Related MCP server: Wordstat MCP

2. Токен

Никаких сервисных аккаунтов и облачных проектов, в отличие от Google.

  1. Откройте oauth.yandex.ru/client/new.

  2. Название приложения — любое, например ywm-export.

  3. Платформа: Веб-сервисы. Redirect URI: https://oauth.yandex.ru/verification_code

  4. Доступы: найдите Яндекс.Вебмастер и отметьте «Получение информации о сайтах пользователя» (webmaster:hostinfo).

  5. Создайте приложение и скопируйте ClientID.

  6. Откройте в браузере, подставив свой ClientID:

    https://oauth.yandex.ru/authorize?response_type=token&client_id=ВАШ_CLIENT_ID
  7. Нажмите «Разрешить» — токен появится прямо на странице.

Сохраните его:

# Linux / WSL / macOS
export YWM_TOKEN="<ВАШ_ТОКЕН>"

# или в файл, чтобы не светить в истории команд
echo "<ВАШ_ТОКЕН>" > ~/.ywm_token && chmod 600 ~/.ywm_token
export YWM_TOKEN_FILE=~/.ywm_token
# Windows, навсегда
setx YWM_TOKEN "<ВАШ_ТОКЕН>"

Токен даёт доступ ко всем сайтам аккаунта. Держите его вне общих папок и вне репозиториев — по нему видно всё, что видно в Вебмастере.


3. Проверка и выгрузка

python3 ywm_mcp.py list

Выведет подтверждённые сайты и их host_id. Пусто — значит сайт не подтверждён в Вебмастере под этим аккаунтом.

python3 ywm_mcp.py export \
  --host "example.com" \
  --days 90 \
  --out "~/seo-exports/ywm_export" \
  --brand "example.com,бренд,brand name"

--host принимает и голый домен, и полный URL, и host_id — скрипт сам разберётся.

Что появится в папке

файл

что внутри

summary.md

Сводка: ИКС, страницы в поиске, итоги, ссылочный профиль, быстрые победы

donors.csv

Домены-доноры со счётчиком ссылок. Главный файл

external_links.csv

Все внешние ссылки: откуда, куда, когда обнаружены

links_history.csv

Динамика количества ссылок. Резкий скачок = чья-то массовая закупка

queries.csv

Запросы: показы, клики, CTR, средняя позиция показа и клика

dates.csv

Дневной ряд показов и кликов

striking_distance.csv

Запросы на позициях 5–20 — рабочий список под ссылки

pages_in_search.csv

Сколько страниц в индексе, по датам

page_samples.csv

Примеры страниц в поиске

indexing_history.csv

Обход по кодам ответа: 2xx / 3xx / 4xx / 5xx

diagnostics.csv

Проблемы сайта по уровням критичности

broken_links.csv

Внутренние битые ссылки

sitemaps.csv

Карты сайта и число URL в них

CSV в UTF-8 с BOM — Excel открывает кириллицу корректно.

Точечные команды без полной выгрузки:

python3 ywm_mcp.py links   --host example.com --out ./links
python3 ywm_mcp.py queries --host example.com --days 180 --limit 100

4. Подключение к Claude Desktop

{
  "mcpServers": {
    "yandex-webmaster": {
      "command": "python",
      "args": ["D:\\projects\\ywm-mcp\\ywm_mcp.py"],
      "env": {
        "YWM_TOKEN": "y0_ВАШ_ТОКЕН",
        "YWM_OUT_DIR": "D:\\projects\\ywm_export"
      }
    }
  }
}

Если сервер запускается из WSL, а Claude Desktop стоит на Windows:

{
  "command": "wsl.exe",
  "args": ["-e", "python3", "/home/USER/ywm-mcp/ywm_mcp.py"]
}

5. Инструменты MCP

инструмент

зачем

list_hosts

Подтверждённые сайты. Проверка токена

site_summary

ИКС, страницы в поиске, исключённые, счётчик проблем

top_queries

Запросы с показами, кликами, CTR и позицией; фильтр по устройству

striking_distance

Запросы на позициях 5–20

backlinks

Внешние ссылки, сгруппированные по доменам-донорам

backlinks_history

Динамика количества ссылок во времени

traffic_history

Дневной ряд показов, кликов, CTR, позиции

pages_in_search

Динамика индекса и примеры страниц

diagnostics

Проблемы, которые видит Яндекс

broken_links

Внутренние битые ссылки

sitemaps

Карты сайта

export_all

Полная выгрузка в CSV прямо из чата

Примеры формулировок:

Покажи доноров example.com — есть ли среди них мусорные Найди запросы на позициях 5–20 в Яндексе Сравни динамику ссылок за полгода — были ли резкие скачки


6. Что важно знать про данные

Показы Яндекса и показы Google — разные величины. Методики подсчёта не совпадают. Сравнивайте динамику внутри каждой системы и структуру спроса, но не складывайте абсолютные числа и не делите одно на другое.

Позиция показа и позиция клика — разные метрики. Яндекс отдаёт обе. AVG_SHOW_POSITION сопоставима с «средней позицией» Google; AVG_CLICK_POSITION показывает, с какой позиции реально кликают, и обычно она заметно выше.

Ссылки — это выборка. Вебмастер отдаёт count (сколько всего знает) и примеры постранично. Скрипт по умолчанию тянет до 5000 ссылок и честно пишет в summary.md, если упёрся в лимит. Поднять — флагом --max-links.

Глубина истории по запросам ограничена. Если API вернёт ошибку на длинном периоде, уменьшите --days.

Ни один эндпоинт не роняет выгрузку. Если что-то недоступно по правам или данных ещё нет, соответствующий CSV будет пустым, а причина попадёт в раздел «Не удалось получить» в summary.md. Тихих провалов нет.


7. Если что-то не работает

симптом

причина

401

Токен истёк или скопирован с лишними символами. Получите новый по шагу 6

403

Приложение выпущено без доступа «Яндекс.Вебмастер». Пересоздайте с нужным правом

404 на конкретном эндпоинте

Сайт не подтверждён, ещё не проиндексирован, или данных за период нет

list пуст

Под этим аккаунтом Яндекса нет подтверждённых сайтов

Пустой queries.csv

Слишком длинный период либо нет поискового трафика за него

Пустой donors.csv при живом сайте

Яндекс ещё не построил ссылочный отчёт — бывает на молодых сайтах


8. Самопроверка

_selftest.py прогоняет весь код против поддельного API — без сети и без токена. Проверяет пагинацию, лимиты, агрегацию доноров, разбор истории и то, что выгрузка переживает отказ отдельного эндпоинта.

python3 _selftest.py

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Lets you ask Claude questions about your Google Search Console data and get real analysis, not raw API rows. Provides 20 tools for analysis, indexing, and safety.
    29
    868
    123
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects Claude or ChatGPT to Yandex Wordstat for keyword research, enabling frequency lookups, related phrase suggestions with noise filtering, and 24-month seasonality analysis directly in chat.
    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
  • A
    license
    C
    quality
    C
    maintenance
    Enables Claude Code to read Google Search Console and GA4 data locally with read-only access, and provides combined SEO analysis tools for comparing datasets and identifying opportunities.
    20
    MIT