SCMCP
SCMCP — мультитенантный MCP для Google Search Console
Хостируемый MCP-сервер, который позволяет любому количеству пользователей подключать Claude к своим собственным данным Google Search Console — с кастомными SEO-анализами, которые сырой GSC не умеет: быстрые победы, упадок контента, каннибализация, выбросы CTR, брендовые разбивки, сводки по папкам, классификация интентов и корреляция с обновлениями алгоритмов.
Каждый пользователь входит через Google, получает токены доступа с ограниченными правами и подключает Claude. Каждый токен может читать только данные своего владельца. Все инструменты — только для чтения.
Создано на основе MCP-сервера из SearchPulse.
Архитектура
Google sign-in ──► NextAuth ──► Account (OAuth tokens, ENCRYPTED at rest)
│
Claude ──HTTP──► /api/mcp ──► token → userId (+ site scope) ──► tools ──► GSC API
│
IP + per-token rate limits · revocation · expiry · auditВход: Google OAuth (
webmasters.readonly), сессии как подписанные JWT.Токены MCP для каждого пользователя:
scmcp_+ 256 бит энтропии, хранятся только как SHA-256 хэш. Несколько именованных токенов на пользователя, каждый опционально ограничен сайтом и с истечением срока, индивидуально отзываемый, с аудитом последнего использования/IP/количества.Состояние: Postgres через Prisma.
Related MCP server: GSC MCP Server v2 - Remote Edition
Усиление безопасности MCP
Мера | Где |
Токены хранятся только как SHA-256 хэши (256-битная энтропия) |
|
Предварительная проверка формата до любого обращения к БД |
|
Отозванные / истёкшие токены никогда не аутентифицируются |
|
Один общий 401 для отсутствующих/неверных/отозванных/истёкших (без перечисления) |
|
Список разрешённых сайтов для каждого токена, применяется централизованно при каждом вызове |
|
Ограничение частоты по IP + по токену; на основе БД, при недоступности БД деградирует до внутриинстансного лимитера в памяти (не полностью открытого) |
|
IP клиента берётся только из заголовков, контролируемых прокси, и проверяется на валидность, так что поддельный |
|
Аудит использования (последнее использование, IP, количество) |
|
Токены Google OAuth зашифрованы в состоянии покоя (AES-256-GCM); при сбое расшифровки возвращается null, никогда не сырой шифротекст |
|
Только чтение (нет инструментов записи) |
|
|
|
Предпочтительна аутентификация через заголовок; запасной вариант |
|
Проверка same-origin (CSRF) при создании/отзыве токена и на консольных маршрутах |
|
Настройка
1. База данных
Создайте базу данных Postgres (например, бесплатный тариф Neon) и скопируйте её строку подключения.
2. Google Cloud
Google Cloud Console → создайте/выберите проект.
Включите API → Google Search Console API.
Учётные данные → Создать OAuth client ID → Веб-приложение.
Авторизованные URI перенаправления:
http://localhost:3000/api/auth/callback/google(dev)https://your-app.vercel.app/api/auth/callback/google(prod)
Экран согласия OAuth: Внешний; добавьте пользователей как Тестовых пользователей (подходит для частного непроверенного приложения).
3. Настройка и запуск
npm install
cp .env.example .env.local # fill in all values
npm run db:push # create the tables
npm run devЛендинг: http://localhost:3000
Панель управления (токены + песочница): http://localhost:3000/dashboard
Здоровье: http://localhost:3000/api/health
MCP-эндпоинт:
http://localhost:3000/api/mcp
Сгенерируйте секреты с помощью openssl rand -base64 32 (для NEXTAUTH_SECRET и ENCRYPTION_KEY).
Развертывание на Vercel + Neon
Запушьте в Git-репозиторий и импортируйте в Vercel. Добавьте интеграцию Neon (или вставьте
DATABASE_URL).Установите переменные окружения:
DATABASE_URL,NEXTAUTH_URL(ваш продакшн-URL),NEXTAUTH_SECRET,GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET,ENCRYPTION_KEY.Выполните схему один раз для продакшн-БД:
npm run db:push(локально с продакшнDATABASE_URLили разовой задачей).Добавьте продакшн-URI перенаправления в Google Cloud. Разверните.
Использование
Пользователь заходит на ваш URL, входит через Google, попадает на /dashboard.
Он создаёт токен (опционально ограниченный конкретными сайтами / с истечением срока) и копирует его один раз.
Он подключает Claude с помощью сниппета, который показывает панель управления:
claude mcp add --transport http scmcp "https://your-app.vercel.app/api/mcp" --header "Authorization: Bearer <TOKEN>"Затем спросите: "Какие у меня быстрые победы в этом месяце для sc-domain:example.com?"
На панели управления также есть песочница инструментов (аутентифицированная по сессии), чтобы запускать любой инструмент на своих данных без открытия Claude.
Инструменты
Живой GSC API — list_gsc_properties · gsc_totals · gsc_top_queries ·
gsc_top_pages · gsc_performance_timeseries · gsc_compare_queries ·
gsc_compare_pages · gsc_page_queries · gsc_query_pages · gsc_breakdown ·
gsc_quick_wins · gsc_content_decay · gsc_cannibalization ·
gsc_new_lost_keywords · gsc_ctr_outliers · gsc_branded_split ·
gsc_folder_performance · gsc_query_intent · list_algorithm_updates
BigQuery bulk export (исторические, без сэмплирования, без ограничения в 1000 строк) — bq_status ·
bq_totals · bq_top_queries · bq_top_pages · bq_timeseries ·
bq_by_country · bq_by_device · bq_page_queries · bq_query_pages ·
bq_custom_query
Добавляйте новые в src/lib/tools.ts / src/lib/tools-bq.ts
— одна запись на инструмент; контроль области действия и оба транспорта подхватят её автоматически.
Коннектор BigQuery
Bulk Data Export из Search Console непрерывно передаёт ваши полные, несэмплированные данные GSC в BigQuery. SCMCP запрашивает этот экспорт, чтобы Claude мог получать исторические/большие данные за пределами лимитов живого API.
Никаких новых секретов. Запросы выполняются с собственным OAuth-токеном пользователя (SCMCP добавляет область
bigquery.readonly) в собственном проекте Google Cloud пользователя. Никаких ключей сервисных аккаунтов хранить не нужно.Настройка (для каждого пользователя): в Search Console → Настройки → Bulk data export, укажите экспорт в проект GCP. Затем в панели SCMCP → Аналитика → BigQuery, введите идентификатор проекта, датасет (начинается с
searchconsole) и расположение. Поскольку доступ к BigQuery — новая область, существующим пользователям нужно выйти и войти один раз.Безопасность: каждый запрос использует именованные параметры BigQuery (защита от инъекций), ограничивает выставляемые байты (
BQ_MAX_BYTES_BILLED, по умолчанию 10 ГБ) и учитывает область сайта токена.bq_custom_queryвыполняет одинSELECTтолько для чтения и отключён для токенов с ограничением по сайту.
Спросите Claude: "Вытащи последние 12 месяцев топ-запросов из BigQuery для sc-domain:example.com."
Панель аналитики
/dashboard/analytics отображает ваши данные в виде графиков (Recharts): карточки метрик с
дельтой к предыдущему периоду, двухосевой линейный график производительности с переключателем метрик,
сортируемые/поисковые таблицы топ-страниц и топ-запросов, а также столбчатые диаграммы по странам/устройствам.
Переключатель источника меняет весь вид между живым GSC API и
BigQuery. Он аутентифицирован по сессии — для просмотра своих данных токен MCP не нужен.
Стек
Next.js 16 · NextAuth v5 (Google) · Prisma + Postgres · mcp-handler ·
@modelcontextprotocol/sdk · googleapis · zod.
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
- AlicenseBqualityBmaintenanceConnects Google Search Console with Claude AI to enable SEO professionals to analyze their SEO data through natural language conversations, providing access to property information, search analytics, URL inspection, and sitemap management.1,349MIT
- AlicenseNot gradedqualityNot gradedmaintenanceConnects Claude AI to Google Search Console with OAuth 2.0 authentication, enabling users to analyze search performance, inspect URLs, manage sitemaps, and export analytics data through natural language conversations.2
- AlicenseNot gradedqualityDmaintenanceConnects Google Search Console with Claude AI to analyze SEO data through natural language, enabling search analytics reporting, URL inspection, indexing status checks, sitemap management, and data visualization for SEO professionals.MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to access Google Search Console data including search performance, URL indexation, sitemaps, and built-in SEO analysis tools such as trending queries, cannibalization detection, and traffic drop diagnostics.12311MIT
Related MCP Connectors
SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.
Turn Search Console data into SEO actions, content, publishing, indexing, and AI insights.
Live SEO workflow tools for Claude Code, Codex, and AI 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/abhilashst/scmcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server