gsc-mcp-connector
gsc-mcp-connector
Самостоятельно размещаемый MCP-сервер для Google Search Console, развёртываемый на Cloudflare Workers за 15 минут. Подключайте его к ChatGPT, Claude или любому клиенту, поддерживающему MCP, и запрашивайте данные GSC на естественном языке.
Что вы получаете
После развёртывания вы получаете собственный MCP-эндпоинт, предоставляющий 4 инструмента вашему ИИ-ассистенту:
list_sites— просмотр всех свойств, доступных аутентифицированному пользователюquery_search_analytics— клики, показы, CTR, позиция; фильтрация по запросу / странице / стране / устройству / типу поиска / датеinspect_url— полный вывод API URL Inspection (статус индексации, канонический адрес, мобильная версия, AMP)list_sitemaps— все отправленные карты сайта и статус их обработки
Вы спрашиваете: «Какие 50 запросов показали наибольшую потерю кликов за последние 28 дней по сравнению с предыдущими 28 днями?» — ассистент загружает данные, вычисляет разницу и пишет анализ. Никаких экспортов в SQL.
Related MCP server: Google Search Console MCP
Как это работает
ChatGPT/Claude ──OAuth──▶ Your Worker ──OAuth──▶ Google
│
└─ holds your Google refresh_token
(encrypted, in OAuth grant props)Два потока OAuth:
MCP-клиент → Worker: ChatGPT/Claude выполняют OAuth 2.1 + PKCE против вашего Worker. Интерфейс входа запрашивает статический «ключ доступа», который вы задаёте при развёртывании (шлюз коннектора).
Worker → Google: после проверки ключа доступа пользователь перенаправляется на экран согласия Google для предоставления разрешения
webmasters.readonly. Полученный refresh-токен сохраняется в OAuth-гранте; при каждом вызове инструмента Worker обновляет свежий access-токен и обращается к GSC.
Доступ управляется аккаунтом Google пользователя — никаких сервисных аккаунтов, танцев с управлением пользователями GSC и задержек распространения прав.
Необходимые условия
Пункт | Стоимость | Обязательно? |
ChatGPT Plus / Pro / Team или Claude.ai Pro / Team | от $20/мес. | Пользовательские MCP-коннекторы доступны только в платных тарифах. |
Аккаунт Cloudflare | Бесплатный тариф подходит | Да |
Проект Google Cloud | Бесплатно | Да — для создания OAuth-клиента |
Подтверждённое свойство Search Console | Бесплатно | Да (у вас уже есть) |
Node.js 20+ + CLI | Бесплатно | Рекомендуется для шагов с настройкой секретов |
Бесплатного тарифа Cloudflare Workers (100 000 запросов/день) вполне достаточно для личного SEO-использования. Платный план Cloudflare не требуется.
Быстрый старт (~15 минут)
1. Разверните Worker
Нажмите кнопку Deploy to Cloudflare в верхней части этого README. Cloudflare клонирует репозиторий в ваш аккаунт, установит зависимости и выдаст публичный URL вида https://gsc-mcp-connector.<ваш-поддомен>.workers.dev.
Примечание: на этом этапе вас попросят указать
MCP_BEARER_TOKEN,GOOGLE_OAUTH_CLIENT_IDиGOOGLE_OAUTH_CLIENT_SECRET. Google-параметров у вас пока нет — введите вMCP_BEARER_TOKENлюбую случайную строку (её можно изменить позже), а в поля Google — что угодно. Корректные значения мы установим на шаге 4.Если вы предпочитаете обойтись без кнопки, клонируйте репозиторий локально, выполните
npm install, затемnpx wrangler deploy.
После развёртывания запомните URL вашего Worker. Он понадобится на шагах 3 и 5.
2. Сгенерируйте ключ доступа коннектора
Это статическая случайная строка, используемая как шлюз перед Google OAuth. Любой, кто использует коннектор, должен вставить эту строку в интерфейсе входа.
openssl rand -hex 32Сохраните вывод — вы установите его как секрет и будете использовать в ChatGPT/Claude.
3. Настройте Google Cloud (OAuth-клиент)
Следуйте пошаговой инструкции в docs/SETUP_GCP.md. Используйте URL вашего Worker с шага 1 в поле Authorized redirect URI. В результате вы получите Client ID и Client Secret.
Это самый длинный шаг (~10 минут в первый раз), но он выполняется только один раз.
4. Настройте секреты Worker
npx wrangler secret put MCP_BEARER_TOKEN
# paste the value from step 2
npx wrangler secret put GOOGLE_OAUTH_CLIENT_ID
# paste the Client ID from step 3
npx wrangler secret put GOOGLE_OAUTH_CLIENT_SECRET
# paste the Client Secret from step 3Или через панель управления Cloudflare: Workers & Pages → ваш worker → Settings → Variables and Secrets → добавьте каждый как тип Secret.
Совет — проблема с кодировкой в Windows: если вы передаёте содержимое файла через конвейер (например,
Get-Content | wrangler secret put) и в этом файле есть BOM для UTF-8, BOM попадёт в ваш секрет и нарушит парсинг JSON. Панель управления Cloudflare или интерактивный режимwrangler secret put(вставка в ответ на приглашение) полностью избегают этой проблемы.
5. Подключитесь к ChatGPT (Plus/Pro/Team)
ChatGPT → Settings → Connectors → Add custom connector:
Name:
gscMCP Server URL:
https://YOUR-WORKER-URL/mcp(обязательно заканчивается на/mcp)Authentication:
OAuthОтметьте «I understand and want to continue»
Create
Откроется всплывающее окно с интерфейсом входа на вашем Worker. Вставьте ваш MCP_BEARER_TOKEN → нажмите Continue with Google → Google попросит вас войти (используйте аккаунт, которому принадлежит ваше свойство GSC) и предоставить разрешение webmasters.readonly → вы будете перенаправлены обратно в ChatGPT, коннектор активен.
В новом чате включите коннектор gsc на панели инструментов, затем спросите: «Список моих сайтов в Google Search Console». Вы должны увидеть свои свойства.
6. (Необязательно) Подключитесь к Claude.ai (Pro/Team)
Settings → Integrations → Add custom integration → тот же URL, та же процедура.
Локальная разработка
git clone https://github.com/JuJu78/gsc-mcp-connector
cd gsc-mcp-connector
npm install
cp .dev.vars.example .dev.vars
# edit .dev.vars with your real Client ID + Client Secret + bearer token
npx wrangler devСервер разработки запускается на http://localhost:8787. Обратите внимание: локальная разработка не может полностью завершить поток Google OAuth, поскольку redirect URI Google требуют HTTPS. Для настоящего сквозного тестирования разверните на Cloudflare и тестируйте через URL workers.dev.
Ограничения
Только чтение. Добавление операций записи (отправка карты сайта, запрос индексации) намеренно исключено — они рискованны в контексте LLM. Откройте PR, если они вам нужны.
Однотенантный по замыслу. Один оператор развёртывает, один bearer-токен защищает коннектор, доступ привязан к тому, кто проходит процедуру Google OAuth. Мультитенантный SaaS-подход не входит в рамки.
Экран согласия OAuth в режиме Testing ограничивает вас 100 тестовыми пользователями (более чем достаточно для личного/командного использования). Для более широкого распространения потребуется отправить приложение на проверку Google (область
webmasters.readonlyсчитается «чувствительной» и требует ручной проверки).Квоты API GSC — 1200 запросов/мин/проект, 30 000/день. Вполне достаточно для интерактивного использования.
Диапазон дат — GSC возвращает данные за последние 16 месяцев. Более ранние даты приводят к ошибке.
Устранение неполадок
Симптом | Причина | Исправление |
| Authorized redirect URI в GCP не совпадает точно с тем, что отправляет Worker | Убедитесь, что |
| Вошедший аккаунт не входит в Test users экрана согласия OAuth | Добавьте Gmail-адрес в OAuth consent screen → Audience → Test users |
| Устаревший OAuth-грант от предыдущей попытки | Удалите коннектор в ChatGPT и создайте заново |
| Грант был создан до развёртывания v0.4+ | Удалите коннектор в ChatGPT/Claude и создайте заново |
| Несовпадение | Переустановите секрет через интерактивный |
| Аутентифицированный аккаунт Google не имеет свойств GSC (или не тот аккаунт) | Проверьте, какой аккаунт вы использовали на этапе согласия Google — он должен владеть свойствами GSC |
ChatGPT говорит «нет доступных инструментов» | URL не заканчивается на | URL сервера должен быть |
Стек
Cloudflare Workers + Durable Objects (через SDK
agents≥0.12)@cloudflare/workers-oauth-providerдля OAuth 2.1 + DCR + PKCE@modelcontextprotocol/sdkдля определений инструментовПространство имён KV
OAUTH_KVдля состояния OAuthПоток Google OAuth 2.0, подписанный нативно через Web Crypto API (без зависимостей Node)
Благодарности
Создано Julien Gourdon — SEO-консультантом, исследующим пересечение поиска и ИИ.
Лицензия
MIT — см. LICENSE.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityBmaintenanceSelf-hosted MCP server that exposes Google Search Console tools (list sites, query analytics, inspect URL, list sitemaps) via natural language to AI assistants like ChatGPT and Claude.MIT
- Alicense-qualityAmaintenanceOAuth-protected Google Search Console MCP for analytics, URL inspection, sitemap management, indexing requests, and SEO diagnostics. Open-source Cloudflare Workers implementation with 17 tools.145MIT
- Alicense-qualityCmaintenanceSelf-hosted MCP server that connects Google Search Console to AI assistants, enabling natural language queries about search analytics, sitemaps, and URL inspection data.MIT
- Alicense-qualityCmaintenanceSelf-hosted Google Search Console MCP server deployable to Cloudflare Workers, allowing natural language queries of GSC data via ChatGPT, Claude, or any MCP-capable client.MIT
Related MCP Connectors
SEO MCP server: crawl your site, find AI-visibility gaps, and ship the fix from your coding agent.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
Latest 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/pradeepoct/gsc-mcp-connector'
If you have feedback or need assistance with the MCP directory API, please join our Discord server