search-console-mcp
search-console-mcp
Servidor MCP para Google Search Console que expone la Search Console API oficial como herramientas para agentes de IA.
Su enfoque es el rendimiento de búsqueda y la salud del índice: consultar clics, impresiones, CTR y posición por consulta, página, país, dispositivo o fecha; comprobar si una URL está indexada y por qué no, y gestionar los sitemaps y las propiedades de una cuenta.
Lo que deliberadamente no hace: no solicita la (re)indexación de URLs — la Indexing API independiente solo admite páginas de ofertas de empleo y emisiones en directo —, no verifica la propiedad de un sitio (un propietario debe añadir la cuenta de servicio a cada propiedad) y no accede a datos de Google Analytics (para eso sirve la Analytics Data API, que no está relacionada).
Los borrados son opt-in.
delete_sitemapydelete_sitesolo se registran cuandoGOOGLE_SEARCH_CONSOLE_ALLOW_DESTRUCTIVEestá establecida; ver Configuración.
Instalación
claude mcp add search-console \
-e GOOGLE_SERVICE_ACCOUNT_KEY_PATH=/path/to/service-account.json \
-e GOOGLE_SEARCH_CONSOLE_SITE_URL=https://example.com/ \
-- npx -y @orellbuehler/search-console-mcpLos parámetros -e deben aparecer antes del separador --; todo lo que vaya después de -- se pasa al proceso
del servidor en lugar de leerse como configuración.
Obtención de una clave de cuenta de servicio
En la consola de Google Cloud, selecciona o crea un proyecto y habilita la Google Search Console API.
Ve a IAM y administración → Cuentas de servicio → Crear cuenta de servicio. Puedes omitir los pasos opcionales de "conceder acceso"; los permisos de Search Console se conceden por separado, no mediante roles de IAM de Cloud.
Abre la nueva cuenta de servicio, ve a la pestaña Claves y elige Añadir clave → Crear clave nueva → JSON. El archivo se descarga una sola vez y no se puede volver a recuperar.
En Search Console, abre la propiedad, ve a Configuración → Usuarios y permisos → Añadir usuario y pega la dirección de correo de la cuenta de servicio (
name@project-id.iam.gserviceaccount.com). Concede:Restringido o Completo para las herramientas de lectura (analytics, sitemaps, inspección de URLs)
Completo para
submit_sitemapydelete_sitemap
Repite el paso 4 con cada propiedad que el servidor deba ver: una cuenta de servicio no puede verificar propiedades por sí misma.
Haz que
GOOGLE_SERVICE_ACCOUNT_KEY_PATHapunte al archivo JSON descargado.
Trata la clave JSON como una contraseña: conlleva todos los permisos que hayas concedido y no tiene un segundo factor
delante. Mantenla fuera del repositorio y plantéate aplicar chmod 600.
Configuración
Variable | Obligatoria | Descripción |
| una | Ruta al archivo JSON de la cuenta de servicio descargado |
| una de las | La clave JSON de la cuenta de servicio en línea, como cadena JSON cruda |
| no | Propiedad por defecto, para que las herramientas puedan omitir |
| no | Establecer como |
Una propiedad se identifica bien como propiedad de prefijo de URL como https://example.com/ (el protocolo
y la barra final cuentan; https://example.com/ y http://example.com/ son propiedades distintas), bien como
propiedad de dominio como sc-domain:example.com, que cubre todos los subdominios y protocolos. Usa la forma
concreta con la que la propiedad se añadió a Search Console; list_sites muestra las cadenas exactas.
Uso con Claude Code
{
"mcpServers": {
"search-console": {
"command": "npx",
"args": ["-y", "@orellbuehler/search-console-mcp"],
"env": {
"GOOGLE_SERVICE_ACCOUNT_KEY_PATH": "/path/to/service-account.json",
"GOOGLE_SEARCH_CONSOLE_SITE_URL": "https://example.com/"
}
}
}
}Ejemplos de prompts
"¿Cuáles son mis consultas de búsqueda principales de este mes?"
"¿Qué páginas reciben más clics de Google y cómo ha cambiado eso respecto a los últimos 28 días?"
"Mostrar consultas que contengan 'pricing' en las que aparezcamos por debajo de la posición 10: candidatas claras."
"¿Cuánto de nuestro tráfico es móvil frente a escritorio?"
"Representar gráficamente nuestros clics e impresiones diarios de los últimos tres meses."
"¿Qué países obtienen impresiones de nosotros pero casi ningún clic?"
"¿Está indexada https://example.com/blog/launch? Si no, ¿por qué?"
"Lista nuestros sitemaps y dime si alguno tiene errores o avisos."
"Vuelve a enviar el sitemap después de la restructuración de ayer."
"¿Qué páginas posicionadas para 'mcp server' compiten entre sí?"
"Compara nuestro tráfico de Discover con el de búsqueda web de este trimestre."
Herramientas
Analítica de búsqueda
Herramienta | Descripción |
| Consulta de rendimiento completa: cualquier dimensión, filtros, regex, tipo de búsqueda, paginación de hasta 25 000 filas |
| Principales consultas de búsqueda por clics, opcionalmente restringidas a una página, país o dispositivo |
| Principales páginas por clics, opcionalmente restringidas a un fragmento de consulta, país o dispositivo |
Sitemaps
Herramienta | Descripción |
| Lista los sitemaps enviados, con estado, errores, avisos y recuento de URLs indexadas |
| Obtiene del estado de procesamiento y el contenido de un sitemap |
| Envía un sitemap nuevo o vuelve a enviar uno ya existente para reprocesarlo |
| Elimina un sitemap de Search Console (opt-in mediante |
Sitios
Herramienta | Descripción |
| Lista todas las propiedades que pueda acceder la cuenta de servicio, con niveles de permiso |
| Obtiene el nivel de permiso de una propiedad |
| Añade a la cuenta una propiedad ya verificada |
| Elimina una propiedad de la vista de la cuenta (opt-in mediante |
Inspección de URLs
Herramienta | Descripción |
| Estado de indexación de una URL en Google: veredicto, cobertura, canónicos, último rastreo, resultados enriquecidos, robots |
Notas y avisos
Los datos de rendimiento tienen un desfase de unos 2–3 días. Las herramientas de conveniencia ajustan por defecto su rango de fechas a 3 días antes;
data_state: "all"incluye datos recientes pero posiblemente incompletos.Retención de 16 meses. Las consultas anteriores a ese rango no devuelven filas.
Filtrado por privacidad. Las filas de consultas poco frecuentes se omiten, por lo que sumar las filas por consulta da un total menor que el real; se debe consultar sin dimensiones para obtener totales exactos.
25 000 filas por llamada. Hay que paginar con
start_row; una respuesta con menos filas quelimites la última página.La cuota de inspección de URLs es de unas 2 000 llamadas al día por propiedad y 600 por minuto: inspecciona de forma selectiva, no masiva.
La dimensión
hourrequieredata_state: "hourly_all"y solo cubre los últimos 10 días sbaya.**Tus datos de búsqueda llegan al LLM.**Todo lo que devuelve una herramienta se convierte en el contexto del modelo; no conectes propiedades cuyos datos no deban salir de tu entorno.
Desarrollo
npm install
npm run build # tsc -p tsconfig.build.json -> dist/
npm test # vitest run
npm run lint # eslint src
npm run typecheck # tsc --noEmit
npm run format # prettier --write .Haz una prueba de humo del servidor construido contra una propiedad real:
GOOGLE_SERVICE_ACCOUNT_KEY_PATH=/path/to/service-account.json \
GOOGLE_SEARCH_CONSOLE_SITE_URL=https://example.com/ \
npx @modelcontextprotocol/inspector node dist/index.jsCI / Publicación
El CI ejecuta format:check, lint, typecheck, test y build en Node.js 20 y 22. La publicación se realiza
mediante el lanzamiento de GitHub con npm trusted publishing (OIDC, sin testigos):
npm version patch
git push --follow-tags
gh release create "v$(node -p "require('./package.json').version")" --generate-notesLicencia
MIT © Orell Bühler
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 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.
Open-source SEO manager for coding agents: keyword research, content PRs, rank + Search Console.
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/OrellBuehler/search-console-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server