google-search-console
GSC MCP — Google Search Console для Claude
MCP-сервер и CLI-выгрузчик в одном файле. Тянет данные из Search Console: запросы, страницы, позиции, сравнение периодов, брендовый/небрендовый сплит, «быстрые победы» на позициях 5–20, статус индексации.
Два режима работы:
CLI — запустили, получили папку CSV +
summary.md. Работает сразу, без настройки Claude.MCP — подключается к Claude Desktop, можно спрашивать данные прямо в чате.
Начинать проще с CLI: выгрузили, положили в папку проекта, и я читаю файлы. MCP подключается потом, когда нужны интерактивные срезы.
1. Установка
pip install -r requirements.txtНужен Python 3.10+.
2. Доступ к Google API
2.1. Проект и API
Откройте console.cloud.google.com, создайте проект (или возьмите существующий).
APIs & Services → Library → найдите Google Search Console API → Enable.
2.2. Сервисный аккаунт
IAM & Admin → Service Accounts → Create service account. Имя любое, роли на уровне проекта не нужны — жмите Done.
Откройте созданный аккаунт → вкладка Keys → Add key → Create new key → JSON. Файл скачается сам.
Положите его вне папки репозитория — например
~/.config/gsc-mcp/service-account.json(Windows:%USERPROFILE%\.config\gsc-mcp\service-account.json). Путь к нему скрипт берёт из переменной окружения, поэтому ключ никогда не попадёт в git.Откройте файл и скопируйте значение
client_email— видаимя@проект.iam.gserviceaccount.com.
2.3. Доступ в Search Console
search.google.com/search-console → нужный ресурс → Настройки → Пользователи и разрешения → Добавить пользователя.
Вставьте
client_email, права — Полный доступ (Full).
Для инструмента
inspect_url(проверка индексации) полного доступа может не хватить — API иногда отвечает 403. Тогда добавьте сервисный аккаунт владельцем ресурса (Настройки → Пользователи и разрешения → Владельцы ресурса → Добавить владельца). На остальные инструменты это не влияет.
2.4. Переменная окружения
Windows (PowerShell, на текущую сессию):
$env:GSC_SERVICE_ACCOUNT_FILE = "$env:USERPROFILE\.config\gsc-mcp\service-account.json"Навсегда:
setx GSC_SERVICE_ACCOUNT_FILE "%USERPROFILE%\.config\gsc-mcp\service-account.json"macOS / Linux:
export GSC_SERVICE_ACCOUNT_FILE=~/.config/gsc-mcp/service-account.json3. Проверка и первая выгрузка
# что вообще доступно этому сервисному аккаунту
python gsc_mcp.py listДолжно вывести строку вида sc-domain:example.com siteFullUser.
Пусто — значит шаг 2.3 не сработал, проверьте email.
# полная выгрузка за 180 дней
python gsc_mcp.py export ^
--site "sc-domain:example.com" ^
--days 180 ^
--out "D:\projects\gsc_export" ^
--brand "example.com,бренд,brand name"--site пишется ровно так, как ресурс называется в GSC:
домен-ресурс →
sc-domain:example.comURL-префикс →
https://example.com/(со слэшем на конце)
Что появится в папке:
файл | что внутри |
| Человекочитаемая сводка: итоги, динамика, бренд/небренд, быстрые решения |
| Все запросы: клики, показы, CTR, средняя позиция |
| Все страницы с трафиком |
| Пары запрос ↔ страница — видно каннибализацию и нерелевантные посадочные |
| Позиции 5–20 при ≥50 показов — самый дешёвый рост |
| Текущий период против предыдущего той же длины |
| География — видно, есть ли зарубежный спрос |
| Устройства и дневная динамика |
| Карты сайта: отправлено против проиндексировано |
CSV в UTF-8 с BOM — Excel открывает кириллицу без плясок с кодировками.
Разовый срез без полной выгрузки:
python gsc_mcp.py query --site "sc-domain:example.com" --dimensions query,page --days 90 --limit 1004. Подключение к Claude Desktop
Claude Desktop → Настройки → Разработчик → Изменить конфигурацию.
В claude_desktop_config.json добавьте (см. claude_desktop_config.example.json):
{
"mcpServers": {
"google-search-console": {
"command": "python",
"args": ["D:\\projects\\gsc-mcp\\gsc_mcp.py"],
"env": {
"GSC_SERVICE_ACCOUNT_FILE": "C:\\Users\\USER\\.config\\gsc-mcp\\service-account.json",
"GSC_OUT_DIR": "D:\\projects\\gsc_export"
}
}
}
}Пути в Windows — с двойными обратными слэшами. Если python не в PATH,
укажите полный путь к python.exe. Перезапустите Claude Desktop.
5. Инструменты MCP
инструмент | зачем |
| Список доступных ресурсов. Проверка, что доступы работают |
| Произвольный запрос: любые измерения, фильтры, тип поиска, выгрузка в CSV |
| Топ запросов, с фильтром по стране и устройству |
| Топ страниц по кликам |
| По каким запросам показывается конкретная страница |
| Запросы на позициях 5–20 — где ссылки окупятся быстрее всего |
| Период к периоду, с дельтами по кликам и позициям |
| Брендовый против небрендового трафика |
| Индексация, канонический URL, дата обхода, мобильная пригодность |
| Карты сайта: отправлено / проиндексировано / ошибки |
| Полная выгрузка в CSV прямо из чата |
Примеры формулировок в чате:
Покажи топ-50 небрендовых запросов example.com за 6 месяцев по России Найди запросы на позициях 5–20 — с них начнём ссылочное Сравни последние 90 дней с предыдущими 90 по страницам Проверь, проиндексирована ли https://example.com/cases/
6. Что важно знать про данные
Задержка. Search Console финализирует данные с лагом. Скрипт по умолчанию берёт период, заканчивающийся 3 дня назад — иначе последние дни выглядят как провал трафика, которого не было.
Глубина. GSC хранит максимум 16 месяцев. --days 480 — предел.
Если сайт подключён недавно, истории будет меньше — это видно по dates.csv.
Только Google. В GSC нет данных Яндекса, а Яндекс — около 70% поиска в РФ. Для полной картины baseline нужна выгрузка из Яндекс.Вебмастера отдельно. Эти цифры не суммируются и не сравниваются напрямую: разные методики подсчёта показов.
Скрытые запросы. Google прячет низкочастотные запросы ради приватности.
Сумма кликов по queries.csv будет меньше общей цифры в интерфейсе — это норма,
а не ошибка выгрузки.
Квоты. API лимитирован по числу запросов. Скрипт делает повторы с экспоненциальной задержкой при 429/503, так что большие выгрузки просто идут дольше, а не падают.
7. Если что-то не работает
симптом | причина |
|
|
403 на | Не включён Google Search Console API в проекте GCP |
403 только на | Нужны права владельца ресурса |
| Не выставлена |
Пустые CSV при живом сайте | Неверный формат |
Сервер не виден в Claude | Проверьте путь к |
8. Самопроверка
_selftest.py гоняет весь код против поддельного API — без сети и без ключей.
Полезно после любой правки:
python _selftest.pyLatest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DVeresov/dv-gsc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server