Skip to main content
Glama

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-битная энтропия)

lib/mcp-token.ts

Предварительная проверка формата до любого обращения к БД

lib/mcp-access.ts

Отозванные / истёкшие токены никогда не аутентифицируются

lib/mcp-access.ts

Один общий 401 для отсутствующих/неверных/отозванных/истёкших (без перечисления)

api/mcp/route.ts

Список разрешённых сайтов для каждого токена, применяется централизованно при каждом вызове

lib/tool-runner.ts

Ограничение частоты по IP + по токену; на основе БД, при недоступности БД деградирует до внутриинстансного лимитера в памяти (не полностью открытого)

lib/rate-limit.ts

IP клиента берётся только из заголовков, контролируемых прокси, и проверяется на валидность, так что поддельный X-Forwarded-For не может обойти лимит или раздуть строки

lib/mcp-access.ts

Аудит использования (последнее использование, IP, количество)

lib/mcp-access.ts

Токены Google OAuth зашифрованы в состоянии покоя (AES-256-GCM); при сбое расшифровки возвращается null, никогда не сырой шифротекст

lib/auth.ts, lib/encryption.ts

Только чтение (нет инструментов записи)

lib/tools.ts

no-store + nosniff + no-referrer; верхнеуровневый try/catch, чтобы ошибки никогда не раскрывали внутренности

api/mcp/route.ts

Предпочтительна аутентификация через заголовок; запасной вариант ?key= для коннекторов только по URL, отключается с помощью MCP_ALLOW_QUERY_KEY=false

lib/mcp-access.ts

Проверка same-origin (CSRF) при создании/отзыве токена и на консольных маршрутах

lib/request-guard.ts


Настройка

1. База данных

Создайте базу данных Postgres (например, бесплатный тариф Neon) и скопируйте её строку подключения.

2. Google Cloud

  1. Google Cloud Console → создайте/выберите проект.

  2. Включите APIGoogle Search Console API.

  3. Учётные данные → Создать OAuth client ID → Веб-приложение.

  4. Авторизованные URI перенаправления:

    • http://localhost:3000/api/auth/callback/google (dev)

    • https://your-app.vercel.app/api/auth/callback/google (prod)

  5. Экран согласия OAuth: Внешний; добавьте пользователей как Тестовых пользователей (подходит для частного непроверенного приложения).

3. Настройка и запуск

npm install
cp .env.example .env.local     # fill in all values
npm run db:push                # create the tables
npm run dev

Сгенерируйте секреты с помощью openssl rand -base64 32 (для NEXTAUTH_SECRET и ENCRYPTION_KEY).


Развертывание на Vercel + Neon

  1. Запушьте в Git-репозиторий и импортируйте в Vercel. Добавьте интеграцию Neon (или вставьте DATABASE_URL).

  2. Установите переменные окружения: DATABASE_URL, NEXTAUTH_URL (ваш продакшн-URL), NEXTAUTH_SECRET, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, ENCRYPTION_KEY.

  3. Выполните схему один раз для продакшн-БД: npm run db:push (локально с продакшн DATABASE_URL или разовой задачей).

  4. Добавьте продакшн-URI перенаправления в Google Cloud. Разверните.


Использование

  1. Пользователь заходит на ваш URL, входит через Google, попадает на /dashboard.

  2. Он создаёт токен (опционально ограниченный конкретными сайтами / с истечением срока) и копирует его один раз.

  3. Он подключает Claude с помощью сниппета, который показывает панель управления:

claude mcp add --transport http scmcp "https://your-app.vercel.app/api/mcp" --header "Authorization: Bearer <TOKEN>"

Затем спросите: "Какие у меня быстрые победы в этом месяце для sc-domain:example.com?"

На панели управления также есть песочница инструментов (аутентифицированная по сессии), чтобы запускать любой инструмент на своих данных без открытия Claude.


Инструменты

Живой GSC APIlist_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.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    B
    quality
    B
    maintenance
    Connects 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,349
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Connects 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    123
    11
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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