Google Search Console MCP

Servidor MCP de Google Search Console para auditorías SEO, información de palabras clave, inspección de URL, gestión de sitemaps y flujos de trabajo de IA en Cursor, Claude y Gemini CLI.

Documentación

GSC SEO MCP

Conecta Google Search Console a Cursor, Claude o Gemini. Haz preguntas en lenguaje natural y obtén datos SEO reales.

npm MCP License: MIT


Qué puedes preguntarle a tu IA una vez configurado

Show me the biggest SEO opportunities for my site.
Which pages are losing clicks?
Find keywords ranking positions 4–15 that I can push to page 1.
Split branded vs non-branded traffic for the last 90 days.
Which pages have bad CTR for their ranking position?
Inspect these URLs and tell me what's wrong with indexing.
Generate a Markdown SEO report for the last 28 days.

Configuración

Hay dos partes:

  1. Google — dale al MCP acceso a tus datos de Search Console
  2. Tu aplicación de IA — dile a Cursor / Claude / Gemini cómo ejecutarlo

Elige primero tu método de autenticación de Google:

Cuenta de servicioOAuth
Ideal paraAgencias, sitios de clientes, equiposSitios personales, tu propia cuenta
Cómo funcionaArchivo de clave JSON, sin inicio de sesión en navegadorInicia sesión una vez mediante navegador
¿Recomendado?Sí, más simple para MCPTambién funciona

Parte 1 — Configuración de Google

Paso 1: Crea un proyecto de Google Cloud

Esto es solo un contenedor para el acceso a la API. No es tu sitio web.

  1. Ve a console.cloud.google.com
  2. Haz clic en el menú desplegable de proyectos en la parte superior → Nuevo proyecto
  3. Nómbralo GSC SEO MCP y haz clic en Crear
  4. Asegúrate de que esté seleccionado en el menú desplegable superior después de crearlo

Paso 2: Habilita la API de Search Console

  1. Ve a APIs y servicios → Biblioteca
  2. Busca Google Search Console API → haz clic en ella → haz clic en Habilitar
  3. Opcional: también habilita la Indexing API si quieres las herramientas de indexing_* (solo útil para páginas de JobPosting/transmisiones en vivo)

Opción A: Cuenta de servicio (recomendada)

1. Crea la cuenta de servicio

  1. Ve a IAM y administración → Cuentas de servicio
  2. Haz clic en Crear cuenta de servicio
  3. Nombre: gsc-seo-mcp → haz clic en Crear y continuar
  4. Omite la asignación de roles → haz clic en Continuar → haz clic en Listo
  5. Copia el correo de la cuenta de servicio — se ve así:
    gsc-seo-mcp@your-project-id.iam.gserviceaccount.com
    

2. Descarga el archivo de clave

  1. Haz clic en la cuenta de servicio que acabas de crear
  2. Ve a la pestaña ClavesAgregar clave → Crear clave nueva → JSON → Crear
  3. Google descarga un archivo .json — guárdalo en un lugar seguro, como:
    • Mac/Linux: /Users/your-name/keys/gsc-seo-mcp.json
    • Windows: C:/Users/your-name/keys/gsc-seo-mcp.json

No subas este archivo a GitHub. Trátalo como una contraseña.

3. Agrégalo a Search Console

  1. Abre search.google.com/search-console
  2. Selecciona tu propiedad
  3. Ve a Configuración → Usuarios y permisos → Agregar usuario
  4. Pega el correo de la cuenta de servicio, establece el permiso en Completo, haz clic en Agregar

Necesitas ser propietario de la propiedad para hacer esto.

4. Tu configuración de MCP

{
  "mcpServers": {
    "gsc-seo": {
      "command": "npx",
      "args": ["-y", "gsc-seo-mcp"],
      "env": {
        "GSC_AUTH_MODE": "service_account",
        "GSC_KEY_FILE": "/absolute/path/to/gsc-seo-mcp.json",
        "GSC_SITE_URL": "sc-domain:example.com"
      }
    }
  }
}

Consejo para rutas en Windows — usa barras normales o dobles barras invertidas:

"GSC_KEY_FILE": "C:/Users/your-name/keys/gsc-seo-mcp.json"

Opción B: OAuth (iniciar sesión con Google)

Usa esto si quieres conectarte con tu propia cuenta de Google mediante inicio de sesión en el navegador.

1. Configura la pantalla de consentimiento de OAuth

  1. Ve a APIs y servicios → Pantalla de consentimiento de OAuth
  2. Elige Externa (funciona para cuentas de Gmail) → completa el nombre de la aplicación, el correo → guarda
  3. Si la aplicación está en modo de prueba, agrega tu Gmail en Usuarios de prueba

2. Crea el cliente OAuth

  1. Ve a APIs y servicios → Credenciales → Crear credenciales → ID de cliente OAuth
  2. Tipo de aplicación: Aplicación de escritorio → nómbrala GSC SEO MCP Desktop → haz clic en Crear
  3. Haz clic en Descargar JSON — guárdalo como:
    • Mac/Linux: /Users/your-name/keys/gsc-oauth-client.json
    • Windows: C:/Users/your-name/keys/gsc-oauth-client.json

3. Tu configuración de MCP

{
  "mcpServers": {
    "gsc-seo": {
      "command": "npx",
      "args": ["-y", "gsc-seo-mcp"],
      "env": {
        "GSC_AUTH_MODE": "oauth",
        "GSC_OAUTH_SECRETS_FILE": "/absolute/path/to/gsc-oauth-client.json",
        "GSC_TOKEN_FILE": "/absolute/path/to/gsc-oauth-token.json",
        "GSC_SITE_URL": "sc-domain:example.com"
      }
    }
  }
}

GSC_TOKEN_FILE es donde el MCP guarda tu token de inicio de sesión después del primer acceso en el navegador. Si lo omites, se guarda en ~/.gsc-seo-mcp/token.json por defecto.

4. Primera ejecución

Reinicia tu cliente MCP y luego pídele que ejecute server_health o list_properties. Se abrirá una ventana del navegador — inicia sesión con Google y aprueba el acceso. Eso es todo, no necesitas iniciar sesión de nuevo.

Si Google muestra una advertencia de "aplicación no verificada", haz clic en Avanzado → Continuar — es tu propia aplicación OAuth, no hay problema.


Parte 2 — Agrégalo a tu aplicación de IA

Se requiere Node.js 20+. Descárgalo aquí si no lo tienes.

Cursor

Crea .cursor/mcp.json en la carpeta de tu proyecto (o usa la configuración global de MCP):

{
  "mcpServers": {
    "gsc-seo": {
      "command": "npx",
      "args": ["-y", "gsc-seo-mcp"],
      "env": {
        "GSC_AUTH_MODE": "service_account",
        "GSC_KEY_FILE": "/absolute/path/to/service-account.json",
        "GSC_SITE_URL": "sc-domain:example.com",
        "GSC_BRAND_TERMS": "mybrand,mybrand.com"
      }
    }
  }
}

Claude Desktop

Edita claude_desktop_config.json:

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "gsc-seo": {
      "command": "npx",
      "args": ["-y", "gsc-seo-mcp"],
      "env": {
        "GSC_AUTH_MODE": "service_account",
        "GSC_KEY_FILE": "/absolute/path/to/service-account.json",
        "GSC_SITE_URL": "sc-domain:example.com"
      }
    }
  }
}

Reinicia Claude Desktop después de guardar.

Claude Code

Crea .mcp.json en tu proyecto:

{
  "mcpServers": {
    "gsc-seo": {
      "command": "npx",
      "args": ["-y", "gsc-seo-mcp"],
      "env": {
        "GSC_AUTH_MODE": "service_account",
        "GSC_KEY_FILE": "/absolute/path/to/service-account.json",
        "GSC_SITE_URL": "sc-domain:example.com"
      }
    }
  }
}

O mediante CLI:

claude mcp add --transport stdio \
  --env GSC_AUTH_MODE=service_account \
  --env GSC_KEY_FILE=/absolute/path/to/service-account.json \
  --env GSC_SITE_URL=sc-domain:example.com \
  gsc-seo -- npx -y gsc-seo-mcp

Gemini CLI

Edita ~/.gemini/settings.json (o .gemini/settings.json en tu proyecto):

{
  "mcpServers": {
    "gsc-seo": {
      "command": "npx",
      "args": ["-y", "gsc-seo-mcp"],
      "env": {
        "GSC_AUTH_MODE": "service_account",
        "GSC_KEY_FILE": "/absolute/path/to/service-account.json",
        "GSC_SITE_URL": "sc-domain:example.com"
      },
      "timeout": 120000,
      "trust": false
    }
  }
}

Formato de URL de propiedad

Usa el formato exacto de Search Console:

sc-domain:example.com        ← domain property (recommended)
https://www.example.com/     ← URL-prefix property (include the trailing slash)

Todas las variables de configuración

VariableRequeridaQué hace
GSC_SITE_URLRecomendadaPropiedad predeterminada. Ejemplo: sc-domain:example.com
GSC_SITE_URLSOpcionalPropiedades separadas por comas para paneles de múltiples sitios
GSC_AUTH_MODEOpcionalservice_account o oauth. Se detecta automáticamente cuando es posible
GSC_KEY_FILECuenta de servicioRuta a la clave JSON de la cuenta de servicio
GOOGLE_APPLICATION_CREDENTIALSCuenta de servicioVariable de ruta alternativa
GSC_OAUTH_SECRETS_FILEOAuthRuta al secreto del cliente OAuth JSON
GSC_OAUTH_CLIENT_IDAlternativa OAuthID de cliente si no usas un archivo de secretos
GSC_OAUTH_CLIENT_SECRETAlternativa OAuthSecreto de cliente si no usas un archivo de secretos
GSC_TOKEN_FILEOpcionalDónde se guarda el token OAuth después del inicio de sesión
GSC_BRAND_TERMSOpcionalTérminos de marca separados por comas para brand_nonbrand_split
GSC_REPORT_DIROpcionalCarpeta para informes Markdown. Por defecto en ./reports
GSC_DATA_STATEOpcionalall, final o hourly_all. Por defecto en all

Herramientas

Principales

HerramientaQué hace
server_healthMuestra el estado de configuración, el modo de autenticación y el número de herramientas
list_propertiesLista todas las propiedades de Search Console a las que tienes acceso
get_siteObtiene los detalles de permisos de una propiedad
add_siteAgrega un sitio a tu cuenta
delete_siteElimina un sitio de tu cuenta

Análisis de búsqueda

HerramientaQué hace
search_analyticsConsulta completa con dimensiones, filtros, tipo de búsqueda y estado de datos
advanced_filter_queryObtiene hasta 50,000 filas para auditorías más profundas
top_queriesPrincipales consultas, opcionalmente filtradas por página
top_pagesPrincipales páginas, opcionalmente filtradas por consulta
performance_overviewInstantánea del sitio con comparación de períodos, tendencia diaria, dispositivos
compare_periodsPeríodo actual vs anterior por página, consulta, país o dispositivo
dimension_breakdownRendimiento por una dimensión
page_query_matrixMapea páginas a las consultas que las generan

Análisis SEO

HerramientaQué responde
quick_wins¿Qué palabras clave están lo suficientemente cerca para mejorar rápido?
ctr_opportunities¿Qué fragmentos rinden por debajo de lo esperado para su posición?
content_decay¿Qué páginas están decayendo en múltiples períodos?
traffic_drop_diagnosis¿La caída fue en posiciones, CTR, demanda, cobertura o mixta?
cannibalization_check¿Qué consultas están divididas entre páginas que compiten?
brand_nonbrand_split¿Cuánto tráfico es de marca vs no marca?
search_intent_breakdown¿Cómo se dividen las consultas entre informativas, comerciales, transaccionales, de navegación y locales?
device_country_opportunities¿Qué segmentos de dispositivo/país/página tienen CTR o posiciones débiles?
long_tail_questions¿Qué consultas de pregunta merecen expansión de contenido?
page_refresh_priorities¿Qué páginas deberían actualizarse primero?
internal_link_opportunities¿Qué páginas fuertes pueden respaldar a páginas más débiles?
query_page_fit¿Para qué posiciona una página y el contenido coincide?
title_meta_brief¿Qué consultas deberían guiar las actualizaciones de títulos/meta?
anomaly_alerts¿Qué páginas tuvieron pérdidas anormales recientemente?

Indexación, Sitemaps, URLs

HerramientaQué hace
inspect_urlVerifica una URL para estado de indexación, canónica, rastreo, cobertura
batch_inspect_urlsInspecciona múltiples URLs
index_coverage_summaryResume los resultados de inspección en una lista de URLs
list_sitemapsLista los sitemaps enviados con errores y recuentos indexados
get_sitemapDetalles de un sitemap
submit_sitemapEnvía o actualiza un sitemap
delete_sitemapElimina un sitemap enviado
indexing_publish_urlEnvía una notificación de Indexing API para una URL elegible
indexing_batch_publishEnvía múltiples notificaciones de Indexing API
indexing_get_metadataVerifica el estado más reciente de notificación de Indexing API para una URL

Informes

HerramientaQué hace
multi_site_dashboardCompara múltiples propiedades en una sola vista
generate_markdown_reportGuarda un informe SEO en Markdown en el disco
verify_claimVuelve a consultar GSC para verificar un número antes de reportarlo a un cliente

Solución de problemas

Las herramientas no aparecen en mi aplicación de IA Asegúrate de que Node.js 20+ esté instalado. Verifica que tu configuración de MCP use npx -y gsc-seo-mcp exactamente. Todas las rutas de archivo deben ser absolutas (no ~/ ni relativas).

La cuenta de servicio no muestra propiedades Necesitas agregar el correo de la cuenta de servicio a Search Console en Configuración → Usuarios y permisos.

La inspección de URL falla La URL debe pertenecer a la propiedad en GSC_SITE_URL. Para propiedades de prefijo de URL, usa el prefijo exacto con protocolo y barra final.

OAuth no abre el navegador Configura GSC_OAUTH_PORT=0 para que elija un puerto libre. Si estás en una máquina remota, tendrás que ejecutar esto localmente.


Notas sobre los datos

  • Las filas de Search Analytics están ordenadas por clics. La API tiene límites internos de filas, por lo que no se incluyen todas las filas posibles.
  • GSC_DATA_STATE=all incluye datos recientes. Usa final para cifras de informes finalizadas.
  • La inspección de URL muestra el estado del índice de Google, no un rastreo en vivo.
  • La Indexing API es solo para páginas de JobPosting y BroadcastEvent — no es un atajo general de indexación.

Seguridad

  • Nunca subas claves de cuentas de servicio, secretos OAuth o archivos de token a Git.
  • Usa permisos de solo lectura en Search Console si no necesitas herramientas de escritura.
  • Revisa las llamadas a delete_site, delete_sitemap, submit_sitemap y indexing_publish_url antes de aprobarlas.

Documentación oficial


Licencia

MIT. Si esto te ahorra tiempo, dale una estrella al repositorio.