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 (статус индексации, канонический URL, мобильная версия, AMP)list_sitemaps— все отправленные sitemap и их статус обработки
Вы спрашиваете: "Какие мои 50 запросов с наибольшей потерей кликов за последние 28 дней по сравнению с предыдущими 28 днями?" — и ассистент загружает данные, вычисляет разницу и пишет анализ. Никаких SQL-экспортов.
Related MCP server: gsc-mcp-connector
Как это работает
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 token сохраняется в OAuth-гранте; при каждом вызове инструмента Worker обновляет свежий access token и вызывает GSC.
Доступ управляется аккаунтом Google пользователя — никакого Service Account, танцев с управлением пользователями GSC или задержек распространения прав.
Предварительные требования
Элемент | Стоимость | Обязательно? |
ChatGPT Plus / Pro / Team или Claude.ai Pro / Team | от $20/мес. | Пользовательские MCP-коннекторы доступны только на платных планах. |
Аккаунт Cloudflare | Бесплатного тарифа достаточно | Да |
Проект Google Cloud | Бесплатно | Да — для создания OAuth-клиента |
Проверенное свойство Search Console | Бесплатно | Да (оно у вас уже есть) |
Node.js 20+ + CLI | Бесплатно | Рекомендуется для шагов установки секретов |
Бесплатного тарифа Cloudflare Workers (100 тыс. запросов/день) с избытком хватит для личного SEO-использования. Платный план Cloudflare не требуется.
Быстрый старт (~15 мин)
1. Разверните Worker
Нажмите кнопку Deploy to Cloudflare в верхней части этого README. Cloudflare клонирует репозиторий в ваш аккаунт, установит зависимости и предоставит публичный URL вида https://gsc-mcp-connector.<your-subdomain>.workers.dev.
Примечание: на этом этапе вас попросят указать
MCP_BEARER_TOKEN,GOOGLE_OAUTH_CLIENT_IDиGOOGLE_OAUTH_CLIENT_SECRET. У вас пока нет значений от Google — заполнитеMCP_BEARER_TOKENлюбой случайной hex-строкой (потом можно изменить), а в поля 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 в панели инструментов, затем спросите: "List my Google Search Console sites". Вы должны увидеть свои свойства.
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, поскольку URI перенаправления Google требуют HTTPS. Для полноценного сквозного тестирования разверните на Cloudflare и тестируйте через URL workers.dev.
Ограничения
Только чтение. Добавление операций записи (отправка sitemap, запрос индексации) намеренно исключено — они рискованны в контексте LLM. Откройте PR, если они нужны.
Однопользовательский по дизайну. Один оператор развёртывает, один bearer token защищает коннектор, доступ привязан к тому, кто проходит Google OAuth. Многопользовательский SaaS-стиль не предусмотрен.
Согласие OAuth в режиме Testing ограничивает вас 100 тестовыми пользователями (более чем достаточно для личного/командного использования). Для более широкого распространения потребуется отправить приложение на проверку Google (область
webmasters.readonlyсчитается «чувствительной», требует ручной проверки).Квоты API GSC — 1200 запросов/мин/проект, 30 тыс./день. Вполне достаточно для интерактивного использования.
Диапазон дат — GSC возвращает данные за последние 16 месяцев. Более ранние даты вызывают ошибку.
Устранение неполадок
Симптом | Причина | Исправление |
| URI перенаправления в GCP не совпадает в точности с тем, что отправляет Worker | Проверьте, что |
| Аккаунт, в который вошли, не добавлен в Test users экрана согласия OAuth | Добавьте Gmail в OAuth consent screen → Audience → Test users |
| Устаревший OAuth-грант от предыдущей попытки | Удалите коннектор в ChatGPT и создайте заново |
| Грант был создан до развёртывания v0.4+ | Удалите коннектор в ChatGPT/Claude и создайте заново |
| Несовпадение | Переустановите секрет через интерактивный |
| Аутентифицированный аккаунт Google не имеет свойств GSC (или не тот аккаунт) | Проверьте, какой аккаунт вы использовали на шаге согласия Google — он должен владеть свойствами GSC |
ChatGPT говорит «no tools available» | URL не заканчивается на | URL сервера должен быть |
Стек
Cloudflare Workers + Durable Objects (через
agentsSDK ≥0.12)@cloudflare/workers-oauth-providerдля OAuth 2.1 + DCR + PKCE@modelcontextprotocol/sdkдля определений инструментовПространство имён KV
OAUTH_KVдля состояния OAuthПоток OAuth 2.0 Google, подписанный нативно через Web Crypto API (без зависимостей Node)
Благодарности
Создано Жюльеном Гурдоном — SEO-консультантом, исследующим пересечение поиска и ИИ.
Лицензия
MIT — см. LICENSE.
This server cannot be installed
Maintenance
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-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
- Alicense-qualityCmaintenanceSelf-hosted MCP server for Google Search Console. Enables natural language queries to list sites, analyze search analytics, inspect URLs, and check sitemaps through AI assistants.MIT
Related MCP Connectors
SEO MCP server: crawl your site, find AI-visibility gaps, and ship the fix from your coding agent.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
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/google-search-console-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server