mcp-gsc — MCP-сервер Google Search Console для SEO-анализа через ИИ-ассистентов
📂 Исходный код на GitHubMCP-сервер для подключения Google Search Console к ИИ-ассистентам: поисковая аналитика, инспекция URL, проверка индексации и управление sitemap на естественном языке.
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 (рекомендуется, личный аккаунт):
- Зайдите в Google Cloud Console, создайте или выберите проект
- Включите Search Console API
- Credentials → Create Credentials → OAuth client ID
- Настройте OAuth consent screen, выберите тип Desktop app
- Скачайте JSON-файл и сохраните в постоянное место, например
~/Documents/client_secrets.json
При первом использовании откроется окно браузера для входа в Google-аккаунт. Токен сохраняется, повторный вход не требуется.
Вариант B — Service Account (для автоматизации и команд):
- В Google Cloud Console включите Search Console API
- Credentials → Service Account, на вкладке Keys создайте JSON-ключ
- Добавьте 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