mcp-gsc — MCP-сервер Google Search Console для SEO-анализа через ИИ-ассистентов

· 3 мин чтения
mcp seo google-search-console analytics ai-agents
📂 Исходный код на GitHub

MCP-сервер для подключения Google Search Console к ИИ-ассистентам: поисковая аналитика, инспекция URL, проверка индексации и управление sitemap на естественном языке.

mcp-gsc — MCP-сервер Google Search Console для SEO-анализа через ИИ-ассистентов

Google Search Console — один из самых недооценённых источников данных о сайте: запросы, показы, клики, CTR, позиции, статус индексации. Проблема в том, что интерфейс GSC неудобен для глубокого анализа: выгрузки ограничены, сравнение периодов требует ручных манипуляций, а инспекция URL — кропотливая работа по одному адресу. Проект mcp-gsc решает это элегантно: это MCP-сервер (Model Context Protocol), который подключает Google Search Console к ИИ-ассистентам — Claude Desktop, Cursor, Codex CLI, Gemini CLI, Antigravity и любым другим MCP-совместимым клиентам.

Результат: вместо кликанья по отчётам вы просто спрашиваете ассистента «покажи топ-20 запросов за последние 30 дней, где CTR ниже 2%, и предложи, как улучшить заголовки» — и получаете ответ с реальными данными из вашего Search Console.

Что умеет

Сервер закрывает четыре ключевые зоны работы с GSC:

Управление ресурсами (properties) — список всех ваших сайтов в GSC, детали верификации, добавление и удаление ресурсов.

Поисковая аналитика и отчётность — какие запросы приводят посетителей, отслеживание показов, кликов и CTR, анализ трендов, сравнение периодов. Ассистент может визуализировать данные графиками прямо в чате.

Инспекция URL и индексация — проверка конкретных страниц на проблемы с индексацией, дата последнего обхода, пакетная инспекция нескольких URL сразу для выявления закономерностей.

Управление sitemap — просмотр всех карт сайта и их статусов, отправка новых, проверка ошибок и предупреждений.

Всего в сервере около 20 инструментов. Полный список в любой момент можно получить, попросив ассистента вызвать get_capabilities — этот инструмент показывает и все доступные функции, и текущий статус авторизации.

Основные инструменты:

Инструмент Что делает Что нужно передать
get_capabilities Список всех инструментов и статус авторизации Ничего
list_properties Все ваши ресурсы GSC Ничего
get_search_analytics Топ запросов и страниц с кликами, показами, CTR и позициями URL сайта, период
get_performance_overview Сводка по производительности сайта URL сайта, период
compare_search_periods Сравнение двух периодов URL сайта, два диапазона дат
get_search_by_page_query Запросы, приводящие трафик на конкретную страницу URL сайта, URL страницы
get_advanced_search_analytics Аналитика с фильтрами по стране, устройству, запросу, странице URL сайта
inspect_url_enhanced Детальный статус обхода и индексации URL URL сайта, URL страницы
batch_url_inspection Инспекция до 10 URL одновременно URL сайта, список URL
check_indexing_issues Проверка нескольких URL на проблемы индексации URL сайта, список URL
manage_sitemaps Отправка или удаление sitemap URL сайта, действие
reauthenticate Повторный OAuth-вход (смена аккаунта) Ничего

Настройка учётных данных Google

Прежде чем настраивать клиент, нужны учётные данные Google API. Есть два варианта.

Вариант A — OAuth (рекомендуется, личный аккаунт):

  1. Зайдите в Google Cloud Console, создайте или выберите проект
  2. Включите Search Console API
  3. Credentials → Create Credentials → OAuth client ID
  4. Настройте OAuth consent screen, выберите тип Desktop app
  5. Скачайте JSON-файл и сохраните в постоянное место, например ~/Documents/client_secrets.json

При первом использовании откроется окно браузера для входа в Google-аккаунт. Токен сохраняется, повторный вход не требуется.

Вариант B — Service Account (для автоматизации и команд):

  1. В Google Cloud Console включите Search Console API
  2. Credentials → Service Account, на вкладке Keys создайте JSON-ключ
  3. Добавьте email сервисного аккаунта в свой ресурс GSC: Search Console → Settings → Users and permissions → Add user с полным доступом

Установка через uvx

Рекомендуемый способ — uvx: не нужно клонировать репозиторий, ставить Python или создавать виртуальные окружения. Установите uv:

# 1. Скачать и установить
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. Активировать в текущей сессии терминала
source $HOME/.local/bin/env

# 3. Сделать постоянным для будущих сессий
echo 'source $HOME/.local/bin/env' >> ~/.zshrc

Затем добавьте сервер в конфигурацию клиента. Для Claude Desktop (файл ~/Library/Application Support/Claude/claude_desktop_config.json) с OAuth:

{
  "mcpServers": {
    "gscServer": {
      "command": "/FULL/PATH/TO/uvx",
      "args": ["mcp-search-console"],
      "env": {
        "GSC_OAUTH_CLIENT_SECRETS_FILE": "/full/path/to/client_secrets.json"
      }
    }
  }
}

Для Cursor конфиг тот же по структуре, файл — ~/.cursor/mcp.json. Для Codex CLI — TOML-формат в ~/.codex/config.toml:

[mcp_servers.gscServer]
command = "/FULL/PATH/TO/uvx"
args = ["mcp-search-console"]
enabled = true
env = { GSC_OAUTH_CLIENT_SECRETS_FILE = "/full/path/to/client_secrets.json" }

Важный нюанс: используйте полный путь к uvx (узнать его можно командой which uvx). GUI-приложения вроде Claude Desktop и Cursor запускаются без чтения shell-конфигов, поэтому не находят ~/.local/bin. Если видите ошибку spawn uvx ENOENT — это как раз оно.

После сохранения конфига полностью закройте приложение (Cmd+Q) и откройте заново.

Альтернатива — классическое клонирование репозитория (git clone https://github.com/AminForou/mcp-gsc.git с установкой зависимостей через uv venv и uv pip install). Этот путь требует Python 3.11+ и подходит, если хотите модифицировать код. Подробности — в README проекта.

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

Проверка простая: попросите ассистента «List my GSC properties». Если увидели список своих ресурсов — всё работает. Если нет — «Call get_capabilities» покажет статус авторизации и подскажет, что не так.

Несколько примеров того, как это выглядит на практике:

  • «Покажи топ-20 поисковых запросов для mywebsite.com за последние 30 дней, выдели те, у которых CTR ниже 2%, и предложи улучшения заголовков»
  • «Сделай визуальный обзор производительности сайта за 28 дней, найди необычные падения или скачки и объясни возможные причины»
  • «Проверь эти страницы на проблемы с индексацией: mywebsite.com/product, mywebsite.com/services, mywebsite.com/about»
  • «Сравни производительность сайта в январе и феврале. По каким запросам был наибольший рост?»
  • «Проанализируй запросы с высокими показами, но позициями ниже 10, отфильтруй по мобильному трафику из США»

Готовые SEO-скиллы для Cursor

Для пользователей Cursor проект доступен в Cursor Marketplace (ищите mcp-search-console) и поставляется с четырьмя готовыми скиллами:

Скилл Как вызвать Что делает
seo-weekly-report «Run the SEO weekly report for example.com» Полная сводка за 28 дней со сравнением периодов и топом запросов
cannibalization-check «Check for keyword cannibalization on example.com» Находит запросы, по которым конкурируют несколько страниц, и рекомендует, какую оставить
indexing-audit «Audit indexing for my top pages» Пакетно инспектирует топ-20 страниц и возвращает приоритизированный список исправлений
content-opportunities «Find content opportunities for example.com» Находит запросы на позициях 11–20 с высокими показами и низким CTR

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

Переменная Назначение
GSC_OAUTH_CLIENT_SECRETS_FILE Абсолютный путь к OAuth client secrets JSON (обязательна для OAuth)
GSC_CREDENTIALS_PATH Абсолютный путь к ключу сервисного аккаунта (обязательна для service account)
GSC_SKIP_OAUTH "true" — принудительно использовать service account, пропустив OAuth
GSC_DATA_STATE "all" (по умолчанию) соответствует дашборду GSC; "final" возвращает только подтверждённые данные с лагом 2–3 дня
GSC_ALLOW_DESTRUCTIVE "true" — включает инструменты добавления/удаления сайтов и удаления sitemap

Про безопасность: по умолчанию деструктивные операции (add_site, delete_site, delete_sitemap) отключены. Это разумный дефолт — ИИ-ассистент с доступом к вашей консоли не сможет случайно удалить сайт.

Для продвинутых: HTTP-транспорт и Docker

Стандартно сервер работает локально через stdio, но есть режим SSE для запуска на удалённом сервере:

MCP_TRANSPORT=sse MCP_HOST=0.0.0.0 MCP_PORT=3001 python gsc_server.py

Есть и готовый Dockerfile:

docker build -t mcp-gsc .

docker run \
  -e MCP_TRANSPORT=sse \
  -e MCP_HOST=0.0.0.0 \
  -e MCP_PORT=3001 \
  -e GSC_CREDENTIALS_PATH=/app/credentials.json \
  -v /path/to/credentials.json:/app/credentials.json \
  -p 3001:3001 \
  mcp-gsc

Детали

Проект активно развивается: на момент написания — версия 0.3.3 с 1.5k звёзд на GitHub. В свежих версиях исправлена совместимость с SDK mcp 2.0 (свежие установки через uvx ломались из-за удалённого модуля mcp.server.fastmcp), добавлен инструмент get_capabilities и починен OAuth-флоу для браузера при запуске через uvx. Лицензия — MIT. Автор также развивает Advanced GSC Visualizer — Chrome-расширение для работы с GSC и платную hosted-версию этого MCP-сервера, но локальный open-source сервер полностью самодостаточен.

Типичные проблемы при установке: клиент не находит uvx (лечится полным путём в конфиге), относительные пути к файлам учётных данных (нужны абсолютные), и работа через claude.ai в браузере — MCP-сервер работает только в десктопном приложении Claude. Если что-то не заводится, get_capabilities — первый инструмент, который стоит вызвать: он покажет точный статус авторизации.

Источник: https://github.com/AminForou/mcp-gsc