Skip to main content
Glama
A1-x-Tech

Google Search Console MCP

MCP de Google Search Console

Español | Русский

npm CI Glama License: MIT

MCP de Google Search Console para A1 conecta una app de IA con Google Search Console. Investiga el rendimiento de búsqueda, comprueba si una URL está indexada, inspecciona sitemaps y envía o elimina un sitemap cuando sea necesario.

Funciona con las propiedades a las que tu cuenta de Google pueda acceder. El detalle importante: usa el valor exacto de la propiedad de Search Console — una propiedad de dominio y una propiedad de prefijo de URL son objetos distintos.

  • 12 herramientas. Siete leen propiedades, datos de búsqueda, sitemaps y estado del índice; dos añaden una propiedad o envían un sitemap; tres pueden eliminar datos o llamar a un método arbitrario de la API.

  • IDs de propiedad exactos. https://example.com/, https://www.example.com/ y sc-domain:example.com son distintos. list_sites te muestra el valor a usar.

  • Datos de búsqueda con contexto. Consulta clics, impresiones, CTR y posición por fecha, página, consulta, país, dispositivo o apariencia de búsqueda.

  • Indexing, no publicación. La inspección de URL explica el estado actual de Google; no fuerza una página al índice.

Empieza con una pregunta de solo lectura:

Muéstrame las 20 consultas principales de mi propiedad en los últimos 28 días, con clics e impresiones.

Conecta el servidor · Explora casos de uso · Abre documentación técnica


Míralo funcionar en un minuto

Tú: ¿Está indexada https://example.com/precios? Si no, ¿por qué?

Asistente: Inspecciona la URL y muestra el veredicto de indexación, información de cobertura, rastreo y URLs canónicas. Nada se puede cambiar.

Tú: Revisa mis sitemaps enviados y prepara la presentación para el que tenga errores.

Asistente: Muestra el sitemap, sus advertencias y errores, y pide confirmación antes de enviarlo de nuevo.

Tú: Confirmado.

Asistente: Reenvía el sitemap seleccionado. No altera el contenido de la página ni garantiza el indexado.

Related MCP server: mcp-gsc

Contenido

Inicio rápido

Necesitas Node.js 20+, una cuenta de Google con acceso a una propiedad de Search Console y credenciales OAuth de Google Cloud.

  1. Prepara el acceso OAuth.

  2. Añade el servidor a tu app de IA.

  3. Empieza con la pregunta de solo lectura anterior.

En la app: abre Configuración → Plugins → Servidores MCP, elige Añadir servidor y añade npx -y mcp-google-search-console@latest con GOOGLE_SEARCH_CONSOLE_CLIENT_ID, GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET y GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN.

codex mcp add google-search-console \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_ID=your_client_id \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET=your_client_secret \
  --env GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN=your_refresh_token \
  -- npx -y mcp-google-search-console@latest
codex mcp list

Documentación de Codex MCP

claude mcp add \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_ID=your_client_id \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET=your_client_secret \
  --env GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN=your_refresh_token \
  --transport stdio --scope user google-search-console \
  -- npx -y mcp-google-search-console@latest
claude mcp list

Documentación de Claude Code MCP

Abre Configuración → Desarrollador → Editar configuración y añade:

{"mcpServers":{"google-search-console":{"command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"your_client_id","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"your_client_secret","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"your_refresh_token"}}}}

Si Editar configuración no está disponible, edita ~/Library/Application Support/Claude/claude_desktop_config.json en macOS o %APPDATA%\Claude\claude_desktop_config.json en Windows.

Documentación MCP de Claude Desktop

Añade a ~/.cursor/mcp.json en macOS/Linux o %USERPROFILE%\.cursor\mcp.json en Windows:

{"mcpServers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"your_client_id","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"your_client_secret","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"your_refresh_token"}}}}

Documentación MCP de Cursor

Ejecuta MCP: Abrir configuración de usuario y añade:

{"servers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"${input:gsc_client_id}","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"${input:gsc_client_secret}","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"${input:gsc_refresh_token}"}}},"inputs":[{"type":"promptString","id":"gsc_client_id","description":"Google OAuth client ID"},{"type":"promptString","id":"gsc_client_secret","description":"Google OAuth client secret","password":true},{"type":"promptString","id":"gsc_refresh_token","description":"Google OAuth refresh token","password":true}]}

Compruébalo con MCP: Listar servidores. Documentación MCP de VS Code

Qué puedes pedirle que haga

Encuentra oportunidades de búsqueda

  • ¿Qué páginas y consultas generaron más impresiones este mes?

  • ¿Qué páginas perdieron clics comparado con el período anterior?

  • Muestra consultas que contengan palabraClave donde la frecuencia media esté por debajo de 7.

Comprueba el estado del índice y los sitemaps

  • ¿Esta URL está indexada? Muestra información de cobertura, rastreo y canónica.

  • ¿Qué sitemaps enviados tienen errores o advertencias? Suma (this) y medidas de seguridad antes de volver a enviarlo.

Gestiona las propiedades cuidadosamente

  • Enumera las propiedades de Search Console a las que puedo acceder.

  • Añade el valor exacto de la propiedad; lo comprobaré por separado.

  • Elimina esta propiedad de mi cuenta después de la confirmación.

Cómo funcionan las propiedades de Search Console

Una propiedad de prefijo de URL debe incluir el protocolo y la barra inclinada final, ej. https://example.com/. Una propiedad de dominio se escribe como sc-domain:example.com. Un valor casi igual provoca error 403 o 404, por lo que se debe usar el valor exacto devuelto por list_sites.

add_site solo registra una propiedad. La verificación queda en la interfaz de Search Console o en la API de verificación de sitios. Los datos de búsqueda usan Hora del Pacífico Estándar; end_date es inclusivo y los datos analíticos finales suelen tardar entre dos y tres días. data_state: "all" puede incluir filas más recientes que cambian.

Qué refiere.

The English "What can change" table with headers. Need translate Spanish.

Qué puede cambiar

Operación

Qué sucede

Límite de confirmación

Lista de propiedades, análisis, sitemaps y estado de URL

Lee datos de Search Console

Sin cambio

Añadir una propiedad

Añade un registro de propiedad; no la verifica

Cambia el acceso a la cuenta

Enviar o reenviar un sitemap

Solicita el procesamiento de un sitemap

Cambia el estado de Search Console

Eliminar una propiedad

Desvincula la propiedad de la cuenta; los datos de Google no se eliminan

Destructivo

Cuando (error, could not)

If you output a table: "the AI client controls yes/whatever: " | The server marks reads, writes and destructive calls...

Actually careful with table: "Añade una propiedad" text says "Property" but the table says "Add a property". Keep.

Let's translate the table rows:

| Operación | Qué sucede | Límite de confirmación | | Listar propiedades, análisis, sitemaps y estado de URL | Lee datos de Search Console | Sin cambio | | Añadir una propiedad | Añade una entrada de propiedad; no la verifica | Cambia el acceso a la cuenta | | Enviar o reenviar un sitemap | Solicita el procesamiento de un sitemap | Cambia el estado de Search Console | | Eliminar una propiedad | Desvincula la propiedad de la cuenta; los datos de Google no se eliminan | Destructivo | | Eliminar un sitemap | Elimina un sitemap enviado | Destructivo | | Llamada sin procesar a la API | Puede llamar a un endpoint de escritura o eliminación | Potencialmente destructivo |

El cliente IA controla los avisos. Marcar claro el server los reads, writes...

Actually the Spanish sentence "El servidor marca las lecturas, escrituras y llamadas destructivas..." Need translate.

Continuing with the section after table: "The client controls confirmation prompts. The server marks reads, writes, and destructive calls so the client can distinguish an inspection from a real change." Actually there's bullet "El cliente de IA controla los avisos de confirmación. El servidor marca lecturas, escrituras y llamadas destructivas para que..." Let's translate.

Then "## Obtaining through access."

Need maintain headings.

"## Obtención de acceso."

El acceso a los datos de Search Console requiere Google OAuth 2.0; no basta con una clave de API.

  1. Crea o selecciona un proyecto de Google Cloud y habilita la API de Google Search Console.

  2. Configura la pantalla de consentimiento de OAuth y crea un cliente OAuth de tipo Aplicación de escritorio.

  3. Usa el Jardín de juegos de OAuth 2.0 con Tus propias credenciales OAuth para autorizar la cuenta de Google que puede acceder a las propiedades y obtener un token de actualización.

  4. Usa https://www.googleapis.com/auth/webmasters.readonly para incluir sitemaps y cambios de propiedades. Usa https://www.googleapis.com/auth/webmasters.readonly solo si quieres acceso de solo lectura.

Los tokens de actualización en modo de prueba pueden expirar a los siete días. Publica la aplicación OAuth, o usa una aplicación de Workspace interno, para acceso a largo plazo. Trata el secreto de cliente y el token de actualización como contraseñas.

Configuración

Variable

¿Obligatoria?

Descripción

GOOGLE_SEARCH_CONSOLE_CLIENT_ID

Sí*

Identificación del Cliente OAuth.

GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET

Sí*

Secreto del Cliente OAuth.

GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN

Sí*

Token de actualización OAuth.

GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN

Sí*

Alternativa de corta duración al trío OAuth.

GOOGLE_SEARCH_CONSOLE_API_BASE

No

Anulación de la URL base de la API.

GOOGLE_SEARCH_CONSOLE_TIMEOUT_MS

No

Espera por solicitud; valor por defecto 60000ms.

GOOGLE_SEARCH_CONSOLE_MAX_RETRIES

No

Número de reintentos espera; 3 por defecto.

* Proporciona o trío de identificadores OAuth bien un token de acceso.

Datos, límites y trabajo en segundo plano de fondo*

Wait, there is a bullet "This ongoing part" Actually last bullet "## Datos" With * * ** private telemetry? Let's translate:

Datos, límites y trabajo en segundo plano

  • Privacidad. El servidor local llama a Google y envía telemetría anónima... etc.

Let's reconstruct the entire final section:

Datos, límites y trabajo en segundo plano

  • Privacidad. El servidor local llama a Google y envía telemetría anónima con ID de instalación, versiones y nombres de herramientas, nunca tokens OAuth, datos de propiedades, argumentos o prompts. Establece ASKADS_TELEMETRY=0 para desactivarlo.

  • Límites de la API. La inspección de URL permite 2.000 inspecciones por propiedad y día, y 600 por minuto. Analytics devuelve como máximo 25.000 filas por solicitud; las colas de consultas anónimas de cola larga nunca se devuelven. Usa paginación y no inspecciones sitios enteros URL a URL.

  • Sin visibilidad en segundo plano. El servidor solo funciona mientras se le llama. Si tu app de IA permite tareas programadas, puede comprobar periódicamente un sitemap o de la página importante.

Documentación técnica

Soporte

¿Encontraste un bug o necesitas un escenario? Abre un problema o escribe en Telegram.

Need to ensure original URLs preserved exactly, but link text translated. In the original, links are like English, but I changed? The second bullet "Quick start" should translate to "Inicio rápido". The URL to README.ru.md remains. Correct.

Need to preserve exact link targets, only text changes.

We need to provide the final Spanish output only, no wrapper.

Let's refine the output. We'll produce a full Spanish translation with markdown preserved, and the tricky parts. Need to be accurate and not omit content.

We need ensure the table rows are correctly translated. The paragraph "If you want...". Let's parse.

Important: The target link for "English" original is English Wait, original: [English](./README.ru.md) maybe. Actually original: **English** | [Русский](./README.ru) We need to translate the language name for Spanish: **Español** | [Русский](./README.ru)? But the target is Spanish, so we alter "English" to "Español" and keep "Русский". Useful.

However "README.ru" is English? It's a filename. So it stays.

Also table with "Configuración" fields.

Need to translate "## What can change" table.

Need to treat GXP1-GXP5 tokens verbatim.

Need to translate "See what it can do" etc.

Let's formulate final:

"# MCP de Google Search Console

Español | Русский

npm CI Glama License: MIT

El MCP de Google Search Console para A1 conecta una app de IA con Google Search Console. Investiga el rendimiento de búsqueda, comprueba si una URL está indexada, inspecciona sitemaps y envía o elimina uno cuando lo necesites.

Funciona con las propiedades a las que tu cuenta de Google puede acceder. El hecho clave: usa el valor exacto de la propiedad de Search Console importante, ya que una propiedad de dominio y una propiedad de prefijo de URL son objetos distintos.

  • 12 herramientas: Siete leen propiedades, datos de búsqueda, sitemaps y estado del índice; dos añaden una propiedad o envían un sitemap; tres pueden eliminar datos o llamar a un método arbitrario de la API.

  • IDs exactos de propiedades. https://example.com/, https://www.example.com/ y sc-domain:example.com son distinctas. list_sites muestra el valor a usar.

  • Datos de búsqueda con contexto. Consulta clics, impresiones, CTR y posición por fecha, página, consulta, país, dispositivo o apariencia de búsqueda.

  • Indexación; no publicación. El análisis de URL explica el estado actual de Google bytecode estable; no fuerza una página al índice.

Empieza con una pregunta de solo lectura:

Muéstrame las 20 publicaciones principales de mi propiedad en los últimos 28 días, con clics e impresiones.

Conectar el servidor a una ventaja · Explora casos de uso · Abre la documentación técnica


Míralo funcionar en un minuto

Tú: ¿Está indexada la URL https://example.com/precios? ¿Y por qué?

Asistente: Inspecciona la URL y muestra el veredicto de indexación, cobertura, rastreo y URLs canónicas. No se puede cambiar nada.

Tú: Compruena mis sitemaps enviados y produce un reenvío para el que tiene errores.

Asistente: Muestra el sitemap, sus avisos y errores, luego pide confirmación antes de reenviarlo.

Tú: Confirmo.

Asistente: He enviado el sitemap editado. No cambia el contenido de la página ni aporta cobertura.

Contenidos

Inicio rápido

Necesitas el runtime y, además, una cuenta de Google con acceso a una propiedad de la Search Console y credenciales OAuth de Google Cloud.

  1. Prepara a tus clientes (Credenciales).

  2. Ejecuta tu proyecto con los servidores MCP de tu aplicación.

  3. Empieza con una pregunta segura o de solo lectura.

En la aplicación: abre Configuración → Extensions → MCP servers, pulsa Añadir servidor y añade npx -y mcp-google-search-console@latest con GOOGLE_SEARCH_CONSOLE_CLIENT_ID, GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET y GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN.

codex mcp add google-search-console \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_ID=your_client_id \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET=your_client_secret \
  --env GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN=your_refresh_token \
  -- npx -y mcp-google-search-console@latest
codex mcp list

Documentación de MCP para Codex

claude mcp add \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_ID=your_client_id \
  --env GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET=your_client_secret \
  --env GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN=your_refresh_token \
  --transport stdio --scope user google-search-console \
  -- npx -y mcp-google-search-console@latest
claude mcp list

Documentación de MCP para Claude Code

Abre Configuración → Desarrollador → Editar config y añade:

{"mcpServers":{"google-search-console":{"command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"your_client_id","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"your_client_secret","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"your_refresh_token"}}}}

Si Editar config no está disponible, edita ~/Library/Application Support/Claude/claude_desktop_config.json en macOS, y %APPDATA%\Claude\claude_desktop_config.json en Windows.

Documentación de MCP para Claude Desktop

Añade a ~/.cursor/mcp.json en macOS/Linux, o %USERPROFILE%\.cursor\mcp.json en Windows:

{"mcpServers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"your_client_id","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"your_client_secret","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"your_refresh_token"}}}}

Documentación de MCP para Cursor

Ejecuta MCP: Abrir configuración de usuario y añade:

{"servers":{"google-search-console":{"type":"stdio","command":"npx","args":["-y","mcp-google-search-console@latest"],"env":{"GOOGLE_SEARCH_CONSOLE_CLIENT_ID":"${input:gsc_client_id}","GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET":"${input:gsc_client_secret}","GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN":"${input:gsc_refresh_token}"}}},"inputs":[{"type":"promptString","id":"gsc_client_id","description":"Google OAuth client ID"},{"type":"promptString","id":"gsc_client_secret","description":"Google OAuth client secret","password":true},{"type":"promptString","id":"gsc_refresh_token","description":"Google OAuth refresh token","password":true}]}

Compruébalo con MCP: Listar servidores. Documentación de MCP en VS Code

Qué puedes pedirle que haga

Encontrar oportunidades de búsqueda

  • ¿Qué páginas y consultas generaron más impresiones este mes?

  • ¿Qué páginas perdieron clics en comparación con el período periodístico anterior?

  • Muestra consultas que contengan palabra clave en las que la posición promedio sea menor a 7.

Comprobar el estado del índice y sitemaps

  • ¿Está esta URL indexada? Muestra la cobertura, el rastreo y la información canónica.

  • ¿Qué sitemaps enviados tienen errores o advertencias?

  • Vuelve a enviar este sitemap después de mostrar su estado actual.

Gestiona las propiedades cuidadosamente

  • Enumera las propiedades de Search Console a las que puedo acceder.

  • Añade este valor de propiedad exacto; Lo verificaré por separado.

  • Elimina esta propiedad de mi cuenta después de confirmar.

Cómo funcionan las propiedades de Search Console

Una propiedad de prefijo de URL incluye el protocolo y la barra inclinada final, por ejemplo https://example.com/. Una propiedad de dominio se escribe como sc-domain:example.com. Una circunstancia casi coincidente por 403 o 404, usa el valor exacto devuelto por list_sites.

add_site solo registra una propiedad. La verificación permanece en la interfaz de Search Console o en la API de verificación de sitios. Los datos de búsqueda usan Hora del Pacífico; end_date es inclusivo y los datos analíticos final suelen tardar entre dos y tres días. data_state: "all" puede incluir filas con cambios aún más recientes.

Qué puede cambiar

Operación

Qué sucede

Límite de confirmación

Listar propiedades, análisis, sitemaps y estado de URLs

Los datos se aparecen de

Sin cambios

Añadir una propiedad

Añade una entrada de propiedad; no verifica la propiedad

Cambia el acceso a la cuenta

Enviar o reenviar un sitemap

Solicita el tratamiento de un sitemap

Cambia el ámbito de la búsqueda

Eliminar una propiedad

Desvincula la propiedad de la cuenta; los datos de Google no se eliminan

Destructivo

Eliminar un sitemap

Elimina un sitemap enviado

Destructivo

Solicitud de API forma libre

Puede llamar a un endpoint de escritura o de borrado

Potencialmente destructivo

El cliente de IA controla los avisos de confirmación. El servidor marca lecturas, escrituras y llamadas destructivas para que el cliente pueda distinguir una inspección de un cambio real.

Cómo obtener acceso

Para acceder a los datos de Search Console se requiere OAuth 2.0 de Google; no basta con una clave de API.

  1. Crea o elige un proyecto de Google Cloud y habilita la API de Google Search Console.

  2. Configura la pantalla de consentimiento de OAuth y crea un cliente OAuth de tipo Aplicación de escritorio.

  3. Utiliza el Parque infantil de OAuth 2.0 con tus propias credenciales de OAuth para autorizar la cuenta de Google que puede acceder a las propiedades y obtener un token de actualización.

  4. Usa https://www.googleapis.com/auth/webmasters para incluir sitemaps y cambios de propiedades. Usa https://www.googleapis.com/auth/webmasters.readonly solo si necesitas acceso de solo lectura.

Los tokens de actualización en modo de pruebas pueden caducar a los siete días. Publica la aplicación de OAuth, o usa una aplicación de Workspace interno, para acceso de larga duración. Trata el secreto de cliente y el token de actualización como contraseñas.

Configuración

Variable

Obligatoria

Descripción

GOOGLE_SEARCH_CONSOLE_CLIENT_ID

Sí*

ID del cliente OAuth.

GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET

Sí*

Secreto del cliente OAuth.

GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN

Sí*

Testigo de actualización de OAuth.

GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN

Sí*

Alternativa de corta duración al trío OAuth.

GOOGLE_SEARCH_CONSOLE_API_BASE

No

Anulación de la URL base de la API.

GOOGLE_SEARCH_CONSOLE_TIMEOUT_MS

No

Tiempo de espera por solicitud; por defecto 60000ms.

GOOGLE_SEARCH_CONSOLE_MAX_RETRIES

No

Aviso de errores temporales; por defecto 3.

* Proporciona el trío de OAuth o un token per se.

Privacidad. El servidor local llama a Google y h hdata de telemetría en los clientes con ID de instalación, números de versión y Nombres de herramientas — nunca envía tokens de OAuth, datos de contenido, argumentos de herramientas o contenidos del cliente. Usa ASKADS_TELEMETRY=0 para no participarlo.

Límites de API. URL Inspection permite 2,000 inspecciones por propiedad por día y la 600 por minuto. Analytics website projects across the entire space. A request devuelve como máximo 25,000 filas; las consultas largas; Devuelve. Usa paginación y no lo inspecciona.

**Sin trabajo de fondo... El servidor solo se ejecuta cuando se usa. Si tu aplicación app soporta tareas programadas, puede revisar un sitemap o una URL importante.

Documentación técnica

Soporte

¿Encontraste un error o necesitas un escenario? Crea un problema o escríbenos en Telegram.

Need preserve link href exactly? There are original GitHub URLs. Need not translate hrefs. OK.

Now "Search" table etc. Need check final line [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE) includes "./LICENSE" relative to repo? Keep.

The first heading # MCP de Google Search Console etc.

Need to check all headings.

Also the table row | GOOGLE_SEARCH_CONSOLE_CLIENT_ID` are backticks, okay.

The ## Acceso needs article.

Potential issue with "Owner data (false) is not deleted" etc.

Let's produce final translation.

Need to ensure the "Current" line: "Conecta un servidor MCP a tus propiedades" Good.

Also the "Read" row: "Lee los datos de Search Console". "Añade una propiedad" etc.

Everything must be translated. We must not translate code or URLs.

Let's deliver# MCP de Google Search Console

Español | Русский

npm CI Glama License: MIT

MCP de Google Search Console para A1 conecta una aplicación de IA con Google Search Console. Investiga el rendimiento de búsqueda, comprueba si una URL está indexada, inspecciona sitemaps y envía o elimina un sitemap cuando sea necesario.

Funciona con las propiedades a las que tu cuenta de Google puede acceder. El detalle importante: usa el valor exacto de la propiedad de Search Console — una propiedad de dominio y una propiedad de prefijo de URL son objetos distintos.

  • 12 herramientas. Siete leen propiedades, datos de búsqueda, sitemaps y estado del índice; dos añaden una propiedad o envían un sitemap; tres pueden eliminar datos o llamar a un método arbitrario de la API.

  • IDs de propiedad exactos. https://example.com/, https://www.example.com/ y sc-domain:example.png son distintos. list_sites muestra el valor a usar.

  • Datos de búsqueda con contexto. Consulte clics, impresiones, CTR y posición por fecha, página, consulta, país, dispositivo o apariencia de búsqueda.

  • Indexación, no publicación. La inspección de URL explica el estado actual de Google; no obliga a que una página esté en el índice.

Comienza con una pregunta de solo lectura:

Muéstrame las 20 consultas principales de mi propiedad en los últimos 28 días, con clics e impresiones.

Guía de inicio rápido · Explora los casos de uso · Abre la documentación técnica


Míralo Adivina en un minuto

Tú: ¿Está indexada la URL https://example.com/precios? Si no, ¿por qué?

Asistente: Inspecciona la URL y muestra el veredicto de indexación, información de cobertura, rastreo y URLs canónicas. No se puede cambiar nada.

Tú: Revisa mis sitemaps enviados y prepara un reenvío para el que tenga errores.

Asistente: Muestra el sitemap, sus advertencias y errores, y luego pide confirmación antes de reenviarlo.

Tú: Confirmo.

Asistente: Reenvía el sitemap seleccionado. No altera el contenido ni lo registra en el índice.

  1. ¿Qué puedes pedirle?

  2. Wave Inicio rápido

  3. WAVE Los casos de uso

  4. Wave Propiedades de Search Console

  5. Wave Qué puede cambiar

  6. Wave Obtención de acceso

  7. Wave Configuración

  8. Wave Data, límites, trabajo de fondo

  9. Wave Documentación técnica

Guía de inicio rápidos

Necesitas Node.js 20+, una cuenta de Google con acceso a una propiedad de Search Console y credenciales de OAuth de Google Cloud.

  1. Prepara el acceso a OAuth.

  2. Añade el servidor en tu app AI.

  3. Comienza con la pregunta de solo lectura anterior.

OAuth

Search Console requiere OAuth 2.0; una clave de API no es suficiente.

Obtención de acceso

Para obtener acceso a los datos del Search Console necesitarás OAuth 2.0 de Google; no será suficiente con una clave API normal.

  1. Crea o abre un proyecto de Google Cloud y habilita Google Search Console API.

  2. Configura la pantalla de consentimiento de OAuth y un cliente OAuth Desktop app.

  3. Usa el OAuth 2.0 Playground con tus propias credenciales OAuth para autorizar e cuenta de Google que puede acceder a las propiedades y conseguir un refresh token.

  4. https://www.googleapis.com/auth/webmasters incluye sitemaps y cambios de propiedad. Usa https://www.googleapis.com/auth/webmasters.readonly si realmente quieres solo lectura.

Los tokens de actualización pueden expirar a los siete días. Publica la app OAuth para accesos duraderos, o usa un proyecto interno Workspace. Cambia el secreto del cliente como contraseña.

Configuración ️

Variable

¿Requerida?

Descripción

GOOGLE_SEARCH_CONSOLE_CLIENT_ID

Sí*

ID de cliente OAuth.

GOOGLE_SEARCH_CONSOLE_CLIENT_SECRET

Sí*

Client secreto OAuth.

GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN

Sí*

Token de actualización de OAuth.

GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN

Sí*

Alternativa de corta duración a trio OAuth.

GOOGLE_SEARCH_CONSOLE_API_BASE

No

Parámetro de anulación sencillo (base API).

GOOGLE_SEARCH_CONSOLE_TIMEOUT_MS

No

Número de espera por solicitud; 60000s.

GOOGLE_SEARCH_CONSOLE_MAX_RETRIES

No

Reintentos errores temporales; 3 por defecto.

* O proporciona o bien la trío de tokens OAuth para tokens de usuario y acceso / refresh.

Los tokens de actualización en modo pruebas pueden caducar en siete días. Publica la aplicación OAuth, o usa una aplicación de Workspace interna, para acceso prolongado.

Variables y límites de fondo

  • Privacidad. El servidor local llama a Google y envía telemetría anónima — con ID de instalación, número de versión y nombre de las herramientas— nunca tokens, tokens, ni argumentos de herramientas. ASK_TELEMETRY=0 para no enviarla.

  • Límites API. Inspección de URL 2000 por propiedad y por día, 600 por minuto. Los informes devuelven como máximo 25 000 filas; las colas de consultas largas nunca devuelven. Usa paginación y no inspecciones la URL completa.

  • **Nada de trabajo en segundo plano...**El servidor solo corre cuando lo llamas. Si tu app admite tareas programadas, puede revisar un sitemap o una URL importante.

Documentación técnica

Soporte

¿Encontraste un problema o necesitas un escenario? Abre con un incidencia o escribe en Telegram.

Available Tools

18 tools
add_siteAdd a propertyA
Idempotent

Adds a property to the account's Search Console set. The property starts UNVERIFIED (permissionLevel siteUnverifiedUser) and most data calls will return 403 until it is verified — verification happens through the Search Console UI or the separate Site Verification API, not through this API. Success is an empty API response (surfaced as { ok: true, added }). Requires the full webmasters OAuth scope (the readonly scope cannot mutate).

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even with annotations available (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description adds substantial behavioral context: the property starts UNVERIFIED with a specific permission level, data calls will 403 until verification, success returns an empty API response, and the required OAuth scope is stated. This goes well beyond annotation signals.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tightly packed paragraph that front-loads the action and then efficiently delivers critical caveats (verification, response shape, scope requirement). Every sentence earns its place without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully explains the expected success response and the unverified-state behavior. It covers the mutation, prerequisites, failure modes, and permissions, making it complete for a one-parameter tool with good annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage for the single parameter (site_url) is 100%, including format examples and error notes. The tool description itself does not repeat or add parameter-level detail, so it does not elevate above the schema's already-complete documentation. A baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Adds a property to the account's Search Console set,' which uses a specific verb and resource, clearly distinguishing it from sibling tools like list_sites, get_site, and delete_site. It also immediately conveys the key scope of the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides robust usage guidance: it states that adding a property is not sufficient for data access, explicitly notes that verification happens through the UI or a separate API, warns that most data calls will return 403 until verified, and clarifies that the readonly OAuth scope cannot mutate. These are clear when-to-use and when-not-to-use directives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth_statusGoogle connection statusA
Read-onlyIdempotent

Shows whether this server is connected to Google: token presence and source (env variables or a stored in-chat login), expiry, the Google account email, granted vs missing OAuth scopes, where the credentials file lives and where the OAuth client comes from. Makes no network calls and never returns the token itself. Call it first when other tools report the server is not connected.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds meaningful behavioral assurances beyond the readOnly/idempotent/non-destructive annotations: 'Makes no network calls and never returns the token itself.' This is important safety context for an auth-status tool and goes well beyond what annotations already state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but each clause earns its place: the first sentence lists the diagnostic fields, the second adds safety behavior, and the third gives a usage directive. It is front-loaded with the core purpose and contains no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only status tool with no output schema, the description is complete: it lists every relevant status dimension and the specific trigger for calling it. An agent has enough to decide when and why to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. The description compensates by enumerating exactly what information the status output will contain, which is more useful than a bare schema with no properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific diagnostic purpose: reporting Google connection status, token presence/source, expiry, account email, OAuth scopes, and credential locations. This clearly distinguishes it from sibling auth-flow tools like start_login, finish_login, and logout.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit trigger: 'Call it first when other tools report the server is not connected.' It does not explicitly list when not to use it or name an alternative, but the diagnostic role relative to the login/logout siblings is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_siteRemove a propertyA
DestructiveIdempotent

Removes (unlinks) a property from the account's Search Console set. No data is deleted and other owners keep their access — this only removes the property from THIS account's list; it can be re-added later. Success is an empty API response (surfaced as { ok: true, removed }). Requires the full webmasters OAuth scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by clarifying that no data is deleted, other owners keep access, the action is reversible (can be re-added later), and the success response format. It also specifies the required OAuth scope. This provides substantial behavioral context that annotations alone don't convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: three sentences, each adding value. It leads with the core purpose, then clarifies non-destructive behavior and success/scope details. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, full schema coverage, no output schema), the description is complete. It explains behavior, side effects, reversibility, auth requirements, and response shape, leaving no significant gaps for an agent to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already has 100% coverage with a detailed description of site_url, including format examples and error conditions. The tool description doesn't add anything parameter-specific beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action: 'Removes (unlinks) a property from the account's Search Console set.' It uses a specific verb and resource, and the parenthetical '(unlinks)' distinguishes this from data deletion, differentiating it from sibling tools like add_site or delete_sitemap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it explains this only removes the property from THIS account's list, that no data is deleted, and that it can be re-added later. It also notes the required OAuth scope. It doesn't explicitly name alternatives, but it does indicate when not to use it (not for data deletion), which is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_sitemapDelete a sitemapA
DestructiveIdempotent

Removes a sitemap from Search Console. This does not delete the file from the site, and Google may still discover it via robots.txt — it only removes the submission. Success is an empty API response (surfaced as { ok: true, deleted }). Requires the full webmasters OAuth scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedpathYesThe full sitemap URL, e.g. "https://example.com/sitemap.xml".
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds significant behavioral context beyond the annotations: the file is not deleted, discovery may still happen, success returns an empty response, and full OAuth scope is required. It could mention idempotency given the idempotentHint, but the disclosure is already strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main action and then the important caveats. Every sentence provides necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple destructive tool with two well-documented parameters, it covers the key aspects: purpose, side effects, authentication, and response format. It does not describe error scenarios or edge cases, but these are less critical given the idempotentHint and lack of output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes both parameters, including detailed formats and error conditions for site_url. The description itself adds no parameter information, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Removes a sitemap from Search Console', using a specific verb and resource that clearly identifies the action. It also distinguishes itself from deleting the actual file, differentiating it from similar sitemap tools like submit_sitemap or list_sitemaps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context that this only removes the submission, not the file, and warns that Google may still discover it via robots.txt. It does not explicitly name alternative tools or state when not to use it, but the usage scope is evident from the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

finish_loginFinish the Google loginA
Idempotent

Second step: confirms the browser consent finished, saves the tokens to an owner-only file and verifies the login with a read-only identity call, returning the account email and the granted scopes. After success every tool works immediately — no client restart. If the user granted only part of the requested permissions, the login is still saved and missingScopes lists what will not work. Logging in under a different Google account replaces the previous login (its refresh token is revoked best-effort) and the response carries previousAccountEmail so the change never goes unnoticed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description richly discloses behavior beyond the annotations: it saves tokens to an owner-only file, verifies via a read-only identity call, handles partial permission grants by still saving the login and reporting missingScopes, replaces previous logins with best-effort refresh token revocation, and returns previousAccountEmail. This goes well beyond the basic annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient: four sentences cover purpose, postcondition, partial-permission handling, and account-replacement behavior. Every sentence adds meaningful information, and the key purpose is front-loaded in the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description is complete: it explains what happens, what is returned, what happens on partial permission, and what happens when switching accounts. No important invocation or result information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema already covers everything. The description adds value by explaining what the response contains and the side effects of invoking the tool, which is useful context even though no parameter documentation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finishes the second step of Google login, saves tokens to an owner-only file, verifies the login via a read-only identity call, and returns account email and granted scopes. This distinguishes it from the sibling start_login by explicitly labeling it as the second step and describing its specific outcome.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: this is the second step after browser consent, and after success every tool works immediately without restart. It also clarifies behavior under partial permission grants and account replacement, but it does not explicitly name alternatives or state when not to use it, so it falls short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_siteGet one propertyA
Read-onlyIdempotent

Returns one property's entry: { siteUrl, permissionLevel }. A 404 means the value does not match any registered property — check the exact format (trailing slash, scheme, sc-domain: prefix) against list_sites output.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context: it returns a specific format, and a 404 indicates the input doesn't match any registered property, with guidance on checking the format. This goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose and return format, and uses no wasteful words. Every sentence earns its place: one states the result and the other explains the 404 error and recovery action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter lookup with no output schema, the description sufficiently covers the return shape and error condition. It also points to list_sites for verifying exact formats, which completes the context. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a highly detailed description of site_url, including exact format expectations and example values. The tool description itself does not add much parameter semantics beyond what the schema provides, but the schema is thorough, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns one property's entry with a specific structure ({ siteUrl, permissionLevel }), using the verb 'Returns' and identifying the resource as 'property's entry'. It distinguishes itself from siblings like list_sites by focusing on a single property rather than listing all, and from add_site/delete_site by being a getter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives context for when to use this tool: when you need a specific property's details and need to verify the exact format. It implicitly advises using list_sites to check registered values when a 404 occurs. However, it does not explicitly state 'use this instead of list_sites when you need a single property' or mention any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sitemapGet one sitemapA
Read-onlyIdempotent

Returns one submitted sitemap's details (the same WmxSitemap shape as list_sitemaps): errors/warnings counts, isPending, lastSubmitted/lastDownloaded, and per-content-type submitted counts. Useful to check processing status after submit_sitemap.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedpathYesThe full sitemap URL, e.g. "https://example.com/sitemap.xml".
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds value by enumerating the return fields (errors/warnings, isPending, timestamps) and indicating the sitemap must be submitted, which provides useful context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action and return information, and every clause contributes. The structure is efficient and free of repetition, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with strong annotations and fully documented parameters, the description provides sufficient context. It names the return shape and fields, specifies the use case, and requirements like 'submitted sitemap,' making it complete for invocation decisions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema descriptions for site_url and feedpath are detailed with examples and constraints. The description does not add additional parameter semantics; it only restates 'submitted sitemap' without altering the schema's already thorough documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns one submitted sitemap's details, explicitly listing the fields returned and the WmxSitemap shape. It distinguishes from list_sitemaps by focusing on a single sitemap and also from submit_sitemap by its read-only retrieval purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Useful to check processing status after submit_sitemap,' giving a clear when-to-use scenario. It references list_sitemaps for shape comparison, implying the alternative for listing all sitemaps, but does not explicitly state exclusions or other alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_top_queriesTop search queriesA
Read-onlyIdempotent

Convenience wrapper over search_analytics for the most common ask: the top search queries for a property, sorted by clicks descending (the API's default order). Each row has keys[0] = the query string plus clicks, impressions, ctr (a FRACTION 0..1) and position. Dates are calendar dates in Pacific Time, end_date inclusive; final data lags ~2-3 days. Anonymized long-tail queries are never returned. Same endpoint and quota as search_analytics — use search_analytics directly for other dimensions, pagination, fresh data or regex filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many top queries to return (1..25000; default 100).
deviceNoOnly count traffic from this device class.
countryNoOnly count traffic from this country — ISO 3166-1 alpha-3 code, e.g. "usa".
end_dateYesLast date of the range, YYYY-MM-DD, Pacific Time, inclusive.
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.
start_dateYesFirst date of the range, YYYY-MM-DD, Pacific Time.
page_filterNoOnly count traffic to pages whose URL CONTAINS this substring, e.g. "/blog/".

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavioral context beyond the read-only/idempotent annotations: data lag of 2-3 days, Pacific Time calendar dates, ctr reported as a fraction, anonymized long-tail queries not returned, and same quota as search_analytics. No contradiction with annotations; the description enriches the operational expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: purpose, output row format, timezone and lag, anonymization caveat, and alternative usage are packed into a tight paragraph. Well front-loaded and no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description covers the return row structure (keys[0] as query string, metrics), date handling, data lag, quota behavior, and exclusions. For a tool with 7 parameters and no output schema, this is unusually complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions on all parameters, so the description need not repeat them. It does not add meaning beyond the schema for parameters; the row structure note refers to output, not parameter semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a convenience wrapper for retrieving top search queries, sorted by clicks descending. It explicitly differentiates itself from the sibling search_analytics tool by naming it and scoping the purpose to 'the most common ask.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use and when-not-to-use guidance: 'use search_analytics directly for other dimensions, pagination, fresh data or regex filters.' This directly addresses alternatives and exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_urlInspect a URL's index statusA
Read-onlyIdempotent

Inspects a URL's status in the Google index (URL Inspection API). Returns { inspectionResult } with: inspectionResultLink (the Search Console UI page for this inspection); indexStatusResult — verdict (PASS/PARTIAL/FAIL/NEUTRAL), human-readable coverageState (e.g. "Submitted and indexed"), robotsTxtState (ALLOWED/DISALLOWED), indexingState, lastCrawlTime, pageFetchState (SUCCESSFUL/SOFT_404/NOT_FOUND/SERVER_ERROR/...), googleCanonical vs userCanonical, sitemap[], referringUrls[], crawledAs (DESKTOP/MOBILE); plus ampResult and richResultsResult (with per-item issues and severities) when applicable. Only the status of the version already in the Google index is returned — this is NOT a live test. mobileUsabilityResult may still appear in responses but the product is retired — ignore it. QUOTA WARNING: only 2,000 inspections per property per DAY (and 600/minute) — throttle any batch inspection and expect 429/403 rateLimitExceeded beyond that.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.
language_codeNoIETF BCP-47 language for the human-readable issue messages, e.g. "en-US" (the default).
inspection_urlYesThe fully-qualified URL to inspect. It must belong to the property given in site_url.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly=true, idempotent=true, destructiveHint=false), the description adds significant behavioral details: quota limits (2,000/day and 600/min), the retired mobileUsabilityResult field, the distinction between indexed and live status, and the potential for 429/403 errors. This rich context goes far beyond what annotations provide and helps the agent anticipate real-world behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence earns its place. It begins with a clear purpose, then details the return structure (essential since there is no output schema), and ends with practical usage warnings. The information is well-organized and front-loaded, making it easy for an agent to quickly grasp the tool's function and constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the return object and the absence of an output schema, the description is remarkably complete. It enumerates all major response fields, explains the non-live nature, flags deprecated fields, and provides quota guidance. This fully equips an agent to invoke the tool correctly and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides complete descriptions for all three parameters, including formats and examples (e.g., site_url format, language_code default). The description does not add any parameter-specific semantics beyond what the schema covers, so a baseline score of 3 is appropriate given 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool inspects a URL's status in the Google index via the URL Inspection API. It specifies the resource ('URL'), the action ('inspects'), and the scope ('status in the Google index'), distinguishing it from sibling tools that manage sites or sitemaps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool, including a caveat that it returns only the currently indexed version and is NOT a live test. It also includes a quota warning, guiding agents to throttle batch inspections. However, it does not explicitly mention alternative tools or when NOT to use it beyond the live-test exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sitemapsList sitemapsA
Read-onlyIdempotent

Lists the sitemaps submitted for a property (or, with sitemap_index, the children of a sitemap index file). Returns { sitemap: [WmxSitemap] } with per-sitemap path, lastSubmitted, lastDownloaded, isPending, isSitemapsIndex, type (sitemap/rssFeed/atomFeed/patternSitemap/urlList/notSitemap), warnings and errors counts, and contents[] with per-content-type submitted counts. The contents[].indexed field is deprecated and returns nothing useful — never present it as indexed pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.
sitemap_indexNoURL of a sitemap index file — lists its child sitemaps instead of the property's own list.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint, etc.), the description discloses detailed behavioral traits: the exact return shape, the meaning of per-sitemap fields, and a critical deprecation warning about contents[].indexed. This adds significant transparency and does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence that conveys the core purpose, conditional behavior, return shape, field details, and a deprecation advisory. It is efficient but not as cleanly structured as a two-sentence example, hence a slight deduction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description fully explains the return values and important nuances. It also covers error behavior indirectly through the schema (site_url mismatch) and the deprecated field warning, making it complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already provides thorough parameter descriptions for site_url and sitemap_index. The description does not add new parameter semantics beyond what the schema captures, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb ('Lists') and resource ('sitemaps submitted for a property'), and further specifies the conditional behavior with sitemap_index. It distinguishes from sibling tools like submit_sitemap and delete_sitemap by focusing on reading/listing rather than mutation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly clarifies when to use the tool (to list submitted sitemaps) and adds a specific use case for sitemap_index (listing children). However, it does not explicitly mention alternatives or exclusions, so it lacks full when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sitesList Search Console propertiesA
Read-onlyIdempotent

Lists every Search Console property the authenticated account can access. Returns { siteEntry: [{ siteUrl, permissionLevel }] } where siteUrl is either a URL-prefix property ("https://example.com/") or a domain property ("sc-domain:example.com"), and permissionLevel is siteOwner, siteFullUser, siteRestrictedUser or siteUnverifiedUser. Call this FIRST: every other tool needs the siteUrl exactly as returned here — a near-match (missing trailing slash, wrong scheme, www vs non-www) is a different property and returns 403/404.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, but the description adds rich context: the return structure (siteEntry with siteUrl and permissionLevel), the two property types, and the critical exact-match requirement causing 403/404. This goes beyond what annotations provide and prepares the agent for real-world usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3 sentences) and well-structured: the main action first, then the return format, then the critical usage warning. Every sentence adds important information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema and no parameters, the description fully specifies the return structure, the possible permissionLevel values, and the important exact-match caveat. It even warns of 403/404 errors. For a zero-parameter list tool, this is complete and actionable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the schema is fully covered. The description instead explains the meaning of return values (siteUrl, permissionLevel) and their possible enumerated values, which is useful for downstream tools that need siteUrl. No parameter explanation is required, but the return semantics compensate well. Baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Lists every Search Console property the authenticated account can access.' This uses a specific verb+resource and directly distinguishes it from siblings like get_site by emphasizing 'every' property. The title and description align, and the return format is specified.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: 'Call this FIRST: every other tool needs the siteUrl exactly as returned here.' This tells the agent when to use this tool before others and warns about the consequences of near-matches. No alternative is mentioned, but the instruction is unambiguous and valuable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

logoutDisconnect from GoogleA
Destructive

Revokes the stored token at Google (oauth2.googleapis.com/revoke) and deletes the local credentials file. Tokens supplied via env variables are NOT touched — remove them from the MCP client config manually; envTokenStillSet in the response says whether any are still in effect.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by naming the revocation endpoint, specifying that the local credentials file is deleted, clarifying that env-var tokens are unaffected, and mentioning the envTokenStillSet response field. This is exactly the kind of behavioral detail an agent needs for a destructive action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the most critical action front-loaded. Every sentence adds important information, and there is no fluff or repetition of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the action, side effects, exception case for env-var tokens, and a relevant response field. For a zero-parameter tool with no output schema, this is fully sufficient for an agent to use it correctly and predict its impact.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter meaning to add. The description correctly focuses on the action and side effects rather than inventing parameter details. Baseline 4 is appropriate because the schema is trivially complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb and resource: it revokes the stored Google token and deletes the local credentials file. The title 'Disconnect from Google' aligns with the behavior, and the description clearly distinguishes this from other auth-related sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this to revoke and delete stored credentials. It also explicitly tells the user that env-var tokens are not touched and must be removed manually, which is a valuable usage caveat. It does not name alternatives, but no true alternative exists for this action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

raw_requestRaw Search Console API callA
Destructive

Escape hatch to call any Google Search Console API path directly, for requests the typed tools don't cover. Two surfaces share the host: "webmasters/v3/..." (sites, sitemaps, searchAnalytics) and "v1/..." (urlInspection). siteUrl and feedpath are PATH SEGMENTS and must be URL-encoded (encodeURIComponent), e.g. "webmasters/v3/sites/sc-domain%3Aexample.com/sitemaps". The path may carry a query string. The Bearer token is added automatically; the method defaults to GET. Note: sites.add and sitemaps.submit are PUT with no body and return an empty response on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body (POST only; PUT endpoints here take no body).
pathYesAPI path relative to https://searchconsole.googleapis.com, e.g. "webmasters/v3/sites" or "v1/urlInspection/index:inspect".
methodNoHTTP method (the Search Console API uses only these four). Defaults to GET.

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false, and openWorldHint=true, setting the safety baseline. The description adds useful non-obvious behaviors: the Bearer token is added automatically, the method defaults to GET, and specific endpoints (sites.add, sitemaps.submit) are PUT with no body and return an empty response on success. This enriches the agent's understanding beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact—roughly three sentences—and front-loaded with the core 'escape hatch' purpose. Every sentence adds value: path format, URL encoding, query strings, auth, default method, and PUT endpoint notes. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is an open-ended raw API tool, the description covers the essentials: usage scope, path encoding, auth, method defaults, and specific endpoint quirks. There is no output schema, but the tool's raw passthrough nature makes return format self-evident. The description is sufficient for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already has 100% coverage, but the description goes further by explaining that siteUrl and feedpath are path segments requiring encodeURIComponent, that paths may include query strings, and clarifies body usage (POST only, PUT endpoints take no body). This added semantics is critical for correctly constructing the path parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Escape hatch to call any Google Search Console API path directly', which states a specific verb ('call') and resource ('any Google Search Console API path'), clearly distinguishing it from the typed sibling tools. The title 'Raw Search Console API call' reinforces this purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'for requests the typed tools don't cover', which tells the agent when to use this tool versus the typed alternatives. It also explains that there are two API surfaces ('webmasters/v3/...' and 'v1/...') and provides an example path, giving clear contextual guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_analyticsSearch Analytics (performance) queryA
Read-onlyIdempotent

Runs a Search Analytics (performance) query for a property: clicks, impressions, CTR and average position from Google Search, grouped by the requested dimensions. Each returned row has keys[] (one value per requested dimension, in the same order) plus clicks, impressions, ctr (a FRACTION 0..1, not a percent) and position; rows are sorted by clicks descending. With no dimensions you get one totals row for the range. Dates are calendar dates in Pacific Time and end_date is INCLUSIVE; final data lags ~2-3 days behind (use data_state "all" for fresh, still-changing rows). Pagination: there is no page token — repeat with start_row increased by row_limit until a response comes back with no rows. When grouping by query/page some anonymized long-tail data is never returned, so summed rows will not match a dimensionless totals query. Quota: 1,200 queries/minute per site and per user.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoRow filters, ALL combined with AND — the API has no OR across filters (run separate queries instead).
end_dateYesLast date of the range, YYYY-MM-DD, Pacific Time, inclusive.
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.
row_limitNoMax rows to return (1..25000; API default 1000).
start_rowNo0-based row offset for pagination (default 0). A response with no rows means the end.
data_stateNo"final" (default) — only finalized data; "all" — include fresh data still subject to change; "hourly_all" — required when grouping by hour (recent data only).
dimensionsNoHow to group rows; keys[] in each row follows this order. "country" values are ISO 3166-1 alpha-3 codes, "device" is DESKTOP/MOBILE/TABLET, "hour" requires data_state "hourly_all". Omit for one totals row.
start_dateYesFirst date of the range, YYYY-MM-DD, Pacific Time.
search_typeNoWhich search surface to report: "web" (default), "image", "video", "news" (News tab of search), "discover" (Discover feed), "googleNews" (news.google.com and the app). discover/googleNews support a reduced dimension set — an unsupported combination returns the API's 400 verbatim.
aggregation_typeNoHow metrics are aggregated: "auto" (default) lets the API decide, "byPage"/"byProperty" force it, "byNewsShowcasePanel" is for News Showcase. Affects how clicks/impressions are counted, not which rows exist.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and open-world behavior. The description adds valuable behavioral context beyond annotations: 2-3 day data lag, inclusive Pacific Time dates, pagination behavior (no page token, loop until empty), long-tail data anonymization, and the 1,200 qpm quota. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence carries useful information. It opens with the core purpose, then progressively details output, date semantics, pagination, data caveats, and quota. No filler or repetition; the structure front-loads the most important information and then covers edge cases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a 10-parameter tool with no output schema, so the description must explain both request nuances and return shape. It covers row structure, sorting, pagination, dimension effects, data lag, and quota. Combined with the 100% schema coverage, the agent has everything needed to invoke and interpret results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though schema descriptions cover 100% of parameters, the description adds semantic depth: explains keys[] ordering, ctr fraction, inclusive end_date, pagination with start_row/row_limit, why data_state 'all' matters, and the grouping caveat that summed rows won't match totals. These clarifications go well beyond schema property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Runs a Search Analytics (performance) query for a property' with specific metrics (clicks, impressions, CTR, position) and grouping by dimensions. It distinguishes itself from siblings like list_sites or get_top_queries by focusing on the full analytics query capability, and even explains output row structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides rich usage context: how to get a totals row (no dimensions), pagination via start_row/row_limit, data_state selection for fresh data, and the caveat about anonymized data when grouping by query/page. However, it does not explicitly mention when to choose this tool over alternatives like get_top_queries, so it stops short of full 'when-not' guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_clientSave the OAuth clientA
Idempotent

Saves the OAuth client credentials from the JSON file downloaded from Google Cloud Console ('Download JSON' on a Desktop-app client). Pass the file PATH — the secret must never be pasted into the chat. The client is stored once in the shared ~/.config/mcp-google-auth/client.json (owner-only) and reused by every mcp-google-* server; tokens stay per-server. After this, call start_login.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the client_secret_*.json file downloaded from Google Cloud Console.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotentHint=true (safe to call again) and readOnlyHint=false (it's a write). The description adds valuable context: it stores the client once in a shared path, is reused by all mcp-google-* servers, and tokens stay per-server. It also warns against pasting secrets. This goes beyond annotation basics, though it does not mention any potential side effects like overwriting an old client.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each earning its place: the first explains what and source, the second details storage scope, the third directs to start_login. The critical warning is naturally integrated. It is not overly verbose and the essential info is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description covers key operational aspects: the source file, the storage path, the security precaution, and the follow-up step. The only minor gap is the absence of error conditions (e.g., if the file is invalid), but that is acceptable given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reinforces that the path is to the JSON file and adds the explicit 'must never be pasted into the chat' security guideline. It doesn't add much beyond the schema, but the security note is valuable enough to nudge to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a clear verb ('saves') and resource ('OAuth client credentials from the JSON file') and adds detail about the source and storage location. It does not explicitly distinguish from siblings, but the uniqueness of this tool among the listed siblings is implicit given its specific task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear guidance on when to use the tool: after downloading the JSON file and before starting login. It also mentions the prerequisite of calling start_login after. However, it does not explicitly state when not to use it or mention alternatives, though none are obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_instructionsSetup instructionsA
Read-onlyIdempotent

Step-by-step checklist for connecting this server to Google: creating a Google Cloud project and a Desktop-app OAuth client, publishing the consent screen (mandatory — Testing-mode refresh tokens die after 7 days), downloading the client JSON and handing its PATH to set_client. Works without any credentials; the checklist shortens to 'enable the API + log in' when an OAuth client is already configured (one client serves the whole mcp-google-* line). Never asks the user to paste secrets into the chat.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only, idempotent, and non-destructive; the description adds valuable context beyond that: it works without credentials, warns that Testing-mode refresh tokens expire in 7 days, mandates publishing the consent screen, and guarantees it never asks users to paste secrets into the chat. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences each carry unique, decision-relevant information: the checklist's contents, the shortened path when already configured, and the no-secrets guarantee. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter instructional tool, the description fully covers purpose, usage timing, workflow relationships, and key behavioral safeguards. The lack of an output schema is acceptable since the tool's job is to present instructions, and the annotations already cover the operational profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty and parameter coverage is 100%, so there is nothing for the description to add about parameter semantics. The zero-parameter case earns the baseline 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific deliverable: a step-by-step checklist for connecting the server to Google, including project creation, OAuth client, consent screen, and handing the client JSON path to set_client. This clearly distinguishes it from sibling tools like auth_status or set_client.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use it (before credentials exist) and how the checklist shortens when an OAuth client is already configured, referencing set_client as the downstream consumer. It provides clear workflow context, though it does not explicitly say 'use this instead of X' for every alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_loginStart the Google loginA
Idempotent

First step of connecting from the chat, without editing config files or restarting the client. Returns authorizeUrl — show it to the user as a clickable link and ask them to open it in the browser ON THIS MACHINE, pick the Google account and approve access. A one-shot listener on 127.0.0.1 catches Google's redirect; the code is exchanged locally and never passes through the chat. Does not open the browser itself. The attempt lives 10 minutes; when the browser shows the success page, call finish_login.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral context beyond the annotations: it does not open the browser itself, uses a one-shot listener on 127.0.0.1, exchanges the code locally, never passes it through chat, and has a 10-minute attempt lifetime. These details are not present in the annotations and provide meaningful operational guidance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: it covers user interaction, browser constraints, security, timeout, and next step without repetition or filler. The most important user-facing instruction is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description is fully complete. It explains the returned authorizeUrl, how to present it, what will happen afterward, and which sibling tool to call next.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema carries no burden and the description correctly avoids inventing parameter details. The baseline for a 0-parameter tool is 4; the description also reinforces that no configuration files or restart are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'First step of connecting from the chat' and names a specific resource and action: start the Google login and return an authorizeUrl. It is clearly distinguished from siblings like finish_login and auth_status by positioning itself as the initial step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use it: as the first step of connecting, without editing config files or restarting the client. It also gives direct instructions to show the authorizeUrl to the user, ask them to open it in the browser, and call finish_login after the success page appears.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_sitemapSubmit a sitemapA
Idempotent

Submits (or resubmits) a sitemap for the property. The feedpath must be the sitemap's full URL on the property. Success is an EMPTY API response (surfaced as { ok: true, submitted }); processing is asynchronous — check errors/warnings later with get_sitemap. Requires the full webmasters OAuth scope (readonly is not enough).

ParametersJSON Schema
NameRequiredDescriptionDefault
feedpathYesThe full sitemap URL, e.g. "https://example.com/sitemap.xml".
site_urlYesThe property EXACTLY as registered in Search Console. Two formats: URL-prefix — a full URL with scheme and trailing slash, e.g. "https://example.com/" (http/https and www/non-www are different properties), or domain property — "sc-domain:example.com" (no scheme, no slash). A mismatched value returns 403/404; list_sites shows the exact registered values.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable details beyond annotations: the empty API response shape, asynchronous processing, and the need for full OAuth scope. These are pragmatic behavioral insights that help the agent anticipate outcomes and requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with action and scope. Every sentence adds value: the action, the feedpath constraint, the response behavior, the asynchronous nature, the follow-up tool, and the auth requirement. No redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two parameters and no output schema, this description is complete. It covers purpose, response format, async processing, OAuth requirement, and the recommended follow-up. The rich schema examples further fill in any remaining context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides comprehensive descriptions for both parameters (feedpath format and site_url formats with examples). The description only restates the feedpath requirement ('full URL on the property') without adding new semantics, so it does not rise above the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Submits (or resubmits) a sitemap for the property') with a specific verb and resource. It distinguishes from sibling tools like list_sitemaps, get_sitemap, and delete_sitemap by focusing on the submission operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for when to use the tool and a follow-up action ('check errors/warnings later with get_sitemap'), plus an important prerequisite (full OAuth scope). It does not explicitly contrast with alternatives, but the purpose is distinct enough that the usage is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.2.0
    • Addedauth_status
    • Addedfinish_login
    • Addedlogout
    • Addedset_client
    • Addedsetup_instructions
    • Addedstart_login
  2. 12 tool updatesv0.1.0
    • First observedadd_site
    • First observeddelete_site
    • First observeddelete_sitemap
    • First observedget_site
    • First observedget_sitemap
    • First observedget_top_queries
    • First observedinspect_url
    • First observedlist_sitemaps
    • First observedlist_sites
    • First observedraw_request
    • First observedsearch_analytics
    • First observedsubmit_sitemap

TDQS

A4.5/5.0

Scored across 18 tools

Disambiguation5/5

Each tool targets a distinct resource/action: site management, sitemaps, analytics, inspection, auth, and a raw escape hatch. Even search_analytics vs get_top_queries are clearly separated—the latter is an explicit convenience wrapper. No two tools appear to do the same thing.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (list_sites, get_site, add_site, delete_site, start_login, submit_sitemap, etc.). Even auth_status and setup_instructions fit the pattern when read as verb+noun. No style mixing or vague verbs.

Tool Count4/5

18 tools is above the typical 3-15 range but justified by the server's broad scope: auth, site management, sitemaps, analytics, URL inspection, and a raw API fallback. Each tool serves a clear purpose with no redundancy; slightly heavy but well-scoped.

Completeness5/5

The tool surface covers all core Search Console API operations: sites (list/get/add/delete), sitemaps (list/get/submit/delete), search analytics (full query + convenience wrapper), URL inspection, and full OAuth lifecycle. The raw_request tool ensures no endpoint is unreachable, leaving no obvious gaps or dead ends.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP Server that provides access to Google's Search Console API, allowing users to interact with website search performance data and manage search presence through natural language.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for Google Search Console, enabling querying search analytics, URL inspection, sitemap management, and more via natural language.
    708 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    This MCP server provides LLMs with programmatic access to Google Search Console data and functionality, including search analytics, sitemap management, site management, and URL inspection.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that exposes the Google Search Console API, allowing LLMs to query SEO data, inspect URLs, manage sitemaps, and analyze search performance via natural language.
    80 npm
    MIT