Skip to main content
Glama

SCMCP — MCP multiinquilino de Google Search Console

Un servidor MCP alojado que permite a cualquier número de usuarios conectar Claude a sus propios datos de Google Search Console, con análisis SEO personalizados que el GSC sin procesar no puede hacer: victorias rápidas, decaimiento de contenido, canibalización, valores atípicos de CTR, divisiones de marca, resúmenes de carpetas, clasificación de intención y correlación de actualizaciones de algoritmo.

Cada usuario inicia sesión con Google, genera tokens de acceso con ámbito y conecta Claude. Cada token solo puede leer los datos de su propietario. Todas las herramientas son de solo lectura.

Construido reutilizando el servidor MCP de SearchPulse.


Arquitectura

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
  • Inicio de sesión: Google OAuth (webmasters.readonly), sesiones como JWT firmados.

  • Tokens MCP por usuario: scmcp_ + 256 bits de entropía, almacenados solo como hash SHA-256. Múltiples tokens con nombre por usuario, cada uno opcionalmente con ámbito de sitio y con expiración, revocables individualmente, con auditoría de último uso/IP/recuento.

  • Estado: Postgres mediante Prisma.


Related MCP server: GSC MCP Server v2 - Remote Edition

Endurecimiento de MCP

Medida

Dónde

Tokens almacenados solo como hashes SHA-256 (entropía de 256 bits)

lib/mcp-token.ts

Verificación previa de formato antes de cualquier acceso a la base de datos

lib/mcp-access.ts

Los tokens revocados/expirados nunca se autentican

lib/mcp-access.ts

Un 401 genérico para ausente/incorrecto/revocado/expirado (sin enumeración)

api/mcp/route.ts

Lista de sitios permitidos por token aplicada centralmente en cada llamada

lib/tool-runner.ts

Límite de velocidad por IP + por token; respaldado por base de datos, degrada a un limitador en memoria por instancia si la base de datos está caída (no completamente abierto)

lib/rate-limit.ts

La IP del cliente se toma solo de encabezados controlados por proxy + validada por IP, por lo que un X-Forwarded-For falsificado no puede evadir el límite ni expandir filas

lib/mcp-access.ts

Auditoría de uso (último uso, IP, recuento)

lib/mcp-access.ts

Tokens OAuth de Google cifrados en reposo (AES-256-GCM); un fallo de descifrado devuelve null, nunca texto cifrado sin procesar

lib/auth.ts, lib/encryption.ts

Superficie de herramientas de solo lectura (sin herramientas de escritura)

lib/tools.ts

no-store + nosniff + no-referrer; try/catch de nivel superior para que los errores nunca filtren internos

api/mcp/route.ts

Autenticación por encabezado preferida; respaldo ?key= para conectores solo URL, deshabilitar con MCP_ALLOW_QUERY_KEY=false

lib/mcp-access.ts

Verificación de mismo origen (CSRF) en creación/revocación de tokens + rutas de consola

lib/request-guard.ts


Configuración

1. Base de datos

Crea una base de datos Postgres (por ejemplo, el nivel gratuito de Neon) y copia su cadena de conexión.

2. Google Cloud

  1. Google Cloud Console → crea/selecciona un proyecto.

  2. Habilita las APIsGoogle Search Console API.

  3. Credenciales → Crear ID de cliente OAuth → Aplicación web.

  4. URIs de redirección autorizadas:

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

    • https://your-app.vercel.app/api/auth/callback/google (producción)

  5. Pantalla de consentimiento de OAuth: Externa; agrega usuarios como usuarios de prueba (está bien para una aplicación privada y no verificada).

3. Configurar y ejecutar

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

Genera secretos con openssl rand -base64 32 (para NEXTAUTH_SECRET y ENCRYPTION_KEY).


Desplegar en Vercel + Neon

  1. Haz push a un repositorio Git e Importa en Vercel. Agrega la integración de Neon (o pega una DATABASE_URL).

  2. Configura las variables de entorno: DATABASE_URL, NEXTAUTH_URL (tu URL de producción), NEXTAUTH_SECRET, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, ENCRYPTION_KEY.

  3. Ejecuta el esquema una vez contra la base de datos de producción: npm run db:push (localmente con la DATABASE_URL de producción, o un trabajo único).

  4. Agrega la URI de redirección de producción en Google Cloud. Despliega.


Uso

  1. Un usuario visita tu URL, inicia sesión con Google y aterriza en /dashboard.

  2. Crean un token (opcionalmente con ámbito para sitios específicos / con expiración) y lo copian una vez.

  3. Conectan Claude con el fragmento que muestra el panel:

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

Luego pregunta: "¿Cuáles son mis victorias rápidas este mes para sc-domain:example.com?"

El panel también tiene un área de pruebas de herramientas (autenticado por sesión) para ejecutar cualquier herramienta contra tus propios datos sin abrir Claude.


Herramientas

API de GSC en vivolist_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

Exportación masiva de BigQuery (histórica, sin muestreo, sin límite de 1000 filas) — 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

Agrega más en src/lib/tools.ts / src/lib/tools-bq.ts — una entrada por herramienta; la aplicación de ámbito y ambos transportes lo recogen automáticamente.

Conector de BigQuery

La Exportación de datos masivos de Search Console transmite continuamente tus datos completos y sin muestreo de GSC a BigQuery. SCMCP consulta esa exportación para que Claude pueda obtener datos históricos/grandes más allá de los límites de la API en vivo.

  • Sin nuevos secretos. Las consultas se ejecutan con el propio token OAuth del usuario (SCMCP agrega el ámbito bigquery.readonly) contra el propio proyecto de Google Cloud del usuario. No hay claves de cuenta de servicio que almacenar.

  • Configuración (por usuario): en Search Console → Configuración → Exportación de datos masivos, apunta la exportación a un proyecto de GCP. Luego, en el panel de SCMCP → Analítica → BigQuery, ingresa tu ID de proyecto, conjunto de datos (comienza con searchconsole) y ubicación. Debido a que el acceso a BigQuery es un ámbito nuevo, los usuarios existentes cierran sesión y vuelven a iniciarla una vez.

  • Seguridad: cada consulta utiliza parámetros NOMBRADOS de BigQuery (seguros contra inyección), limita bytes facturados (BQ_MAX_BYTES_BILLED, por defecto 10 GB) y respeta el ámbito de sitio de un token. bq_custom_query ejecuta un único SELECT de solo lectura y está deshabilitado en tokens con ámbito de sitio.

Pregunta a Claude: "Obtén los últimos 12 meses de consultas principales desde BigQuery para sc-domain:example.com."

Panel de analítica

/dashboard/analytics renderiza tus datos como gráficos (Recharts): tarjetas de métricas con deltas del período anterior, un gráfico de líneas de rendimiento de doble eje con un conmutador de métricas, tablas de páginas principales y consultas principales ordenables/buscables, y barras de país/dispositivo. Un conmutador de fuente cambia toda la vista entre la API de GSC en vivo y BigQuery. Está autenticado por sesión: no se necesita token MCP para ver tus propios datos.

Stack

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