GSC Wizard MCP

Tu asistente de IA puede consultar análisis de Search Console

Documentación

Este servidor implementa el Model Context Protocol. Una vez conectado, tu asistente de IA puede consultar análisis de Search Console, inspeccionar URLs, gestionar clústeres de temas y grupos de contenido, usar la API de Inspección de Google, enviar URLs a IndexNow, leer datos de Bing Webmaster Tools y más, todo limitado a tu propia cuenta.

Todo lo que necesitas para conectarte: una clave API de MCP, gratuita para cada cuenta de GSC Wizard. Créala en tool.gscwizard.com/account/api-keys. Las claves tienen este formato gscw_live_... y solo se muestran una vez al crearlas.

Por qué el análisis se ejecuta en el servidor

La mayoría de los servidores MCP de SEO y análisis entregan las filas crudas al modelo: miles de registros de consultas/páginas transmitidos a la ventana de contexto para que el LLM los procese. Los modelos de lenguaje no están diseñados para hacer aritmética sobre tablas grandes. Son lentos, consumen tokens al hacerlo y cometen errores (filas omitidas, sumas mal contadas, totales alucinados) que son difíciles de detectar.

GSC Wizard hace lo contrario. Cada análisis (curvas de CTR, detección de decaimiento, canibalización, puntuación de oportunidades, desgloses de rutas, cambios de posicionamiento, informes SEO completos) se calcula en Python y SQL del lado del servidor, contra el almacén de datos, antes de que cualquier cosa llegue al modelo. La herramienta devuelve el resultado final, no la entrada cruda.

Lo que obtienes con esto

  • Muchos menos tokens. Una sola llamada a la herramienta devuelve una respuesta compacta y finalizada en lugar de decenas de miles de filas que el modelo tiene que leer, mantener en contexto y pagar.
  • Mucho más rápido. Las agregaciones se ejecutan en el almacén en milisegundos. El modelo dedica su tiempo a razonar sobre el resultado, no a procesar una hoja de cálculo token por token.
  • No propenso a errores. Las matemáticas son deterministas. Los números provienen de consultas reales, por lo que no hay riesgo de que el modelo cuente mal o invente totales.
  • Conjuntos de datos más grandes en alcance. Debido a que el trabajo pesado nunca entra en la ventana de contexto, el servidor puede analizar meses de datos y millones de filas que nunca cabrían en un prompt.

El modelo sigue haciendo lo que se le da bien: interpretar los hallazgos, detectar la historia y recomendar qué hacer a continuación. El procesamiento pesado ocurre donde corresponde.

Endpoint

HTTP transmisible

https://mcp.gscwizard.com/mcp

Dos formas de autenticarse, ambas vinculadas a tu cuenta de GSC Wizard:

  • Clave API (cabecera): envía Authorization: Bearer gscw_live_.... Ideal para clientes con archivo de configuración (Claude Code, Cursor, VS Code, Windsurf).
  • OAuth 2.1 (inicio de sesión): los clientes que admiten OAuth remoto (ChatGPT, la interfaz de Conectores web/aplicación de Claude, el conector nativo de Claude Desktop) lo descubren automáticamente y te guían a través de un inicio de sesión de Google y una pantalla de consentimiento. No hay clave que copiar ni almacenar.

En clientes que muestran resultados de herramientas enriquecidos (como ChatGPT), las herramientas de resumen como get_site_summary, query_top_queries, query_top_pages, get_ranking_changes, list_sites y generate_seo_report muestran una vista interactiva de tarjeta/tabla adaptada al tema. Otros clientes reciben los mismos datos como JSON.

Conectar un cliente

El servidor habla HTTP transmisible, por lo que cualquier cliente que admita servidores MCP remotos puede conectarse. Los clientes con archivo de configuración a continuación (Claude Code, Cursor, VS Code, Windsurf) se autentican con una cabecera de clave API: reemplaza gscw_live_... con tu clave. Los clientes que admiten OAuth remoto (ChatGPT, la interfaz de Conectores web/aplicación de Claude, el conector nativo de Claude Desktop) solo necesitan la URL y te harán iniciar sesión: consulta la nota de OAuth en cada sección.

Claude Code

claude mcp add --transport http gsc-wizard \
  https://mcp.gscwizard.com/mcp \
  --header "Authorization: Bearer gscw_live_..."

Claude Desktop

Más fácil (OAuth, sin Node): Configuración → Conectores → Añadir conector personalizado, introduce https://mcp.gscwizard.com/mcp como URL y deja los campos de OAuth en blanco. Claude se registra automáticamente, abre un inicio de sesión de Google y una pantalla de consentimiento, y se conecta. Nada que copiar ni almacenar.

Claude Desktop Add custom connector dialog with the GSC Wizard MCP URL filled in and the OAuth Client ID and Secret fields left blank

Añadir conector personalizado: pega la URL, deja los campos de OAuth en blanco.

Alternativa (clave API estática): El archivo de configuración de Claude Desktop solo lanza servidores locales (stdio), por lo que pegar una entrada "type": "http" se rechaza como inválida. Para usar una clave API en lugar de OAuth, puentea el servidor remoto a través de mcp-remote (requiere Node.js). Configuración → Desarrollador → Editar configuración, y luego añade:

{
  "mcpServers": {
    "gsc-wizard": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://mcp.gscwizard.com/mcp",
        "--header", "Authorization:${AUTH_HEADER}"
      ],
      "env": { "AUTH_HEADER": "Bearer gscw_live_..." }
    }
  }
}

La clave va en env en lugar de en línea porque mcp-remote divide cada valor de --header por espacios, por lo que Authorization:${AUTH_HEADER} se escribe sin espacio. En Windows, si npx falla al iniciarse, establece "command": "cmd" y antepone "/c", "npx" a args. Cierra y vuelve a abrir Claude Desktop por completo después de guardar.

Cursor

Añade a ~/.cursor/mcp.json (global) o .cursor/mcp.json en un proyecto:

{
  "mcpServers": {
    "gsc-wizard": {
      "url": "https://mcp.gscwizard.com/mcp",
      "headers": {
        "Authorization": "Bearer gscw_live_..."
      }
    }
  }
}

VS Code (modo agente de GitHub Copilot)

Añade a .vscode/mcp.json en tu espacio de trabajo (o ejecuta el comando MCP: Añadir servidor). VS Code usa servers, no mcpServers, y puede solicitar la clave para que no quede en el control de versiones:

{
  "inputs": [
    { "id": "gscw-key", "type": "promptString", "description": "GSC Wizard MCP key", "password": true }
  ],
  "servers": {
    "gsc-wizard": {
      "type": "http",
      "url": "https://mcp.gscwizard.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:gscw-key}"
      }
    }
  }
}

Windsurf

Añade a ~/.codeium/windsurf/mcp_config.json. Windsurf usa serverUrl para servidores remotos:

{
  "mcpServers": {
    "gsc-wizard": {
      "serverUrl": "https://mcp.gscwizard.com/mcp",
      "headers": {
        "Authorization": "Bearer gscw_live_..."
      }
    }
  }
}

ChatGPT

Los conectores personalizados necesitan ChatGPT Plus, Pro, Business, Enterprise o Edu; no están disponibles en Free o Go. (La aplicación de ChatGPT de GSC Wizard es la vía para esos planes: no necesita modo desarrollador. Una suscripción o prueba de GSC Wizard aplica en cualquier caso.) Los servidores MCP personalizados están en Configuración → Aplicaciones (modo desarrollador, antes "Conectores"). Habilita el modo desarrollador, añade una aplicación e introduce https://mcp.gscwizard.com/mcp como URL del servidor. ChatGPT usa OAuth 2.1: se registra automáticamente y luego abre la pantalla de inicio de sesión y consentimiento de GSC Wizard. Deja los campos de ID de cliente/secreto de OAuth en blanco (el servidor admite registro dinámico de clientes). No hay campo de clave API, lo cual es esperado: ChatGPT no puede presentar tokens portadores estáticos, por lo que usa OAuth.

ChatGPT New App dialog in developer mode with the GSC Wizard MCP URL as the Server URL and Authentication set to OAuth

Nueva aplicación (modo desarrollador): URL del servidor + Autenticación "OAuth"; ID de cliente/secreto en blanco.

El acceso programático también funciona a través de la API de Respuestas de OpenAI, que acepta una herramienta MCP remota con un objeto headers, por lo que allí puedes pasar Authorization: Bearer gscw_live_... directamente. Ten en cuenta que los conectores de Deep Research integrados de ChatGPT solo llaman a las herramientas search y fetch; el acceso completo a las herramientas es mediante aplicaciones en modo desarrollador y la API de Respuestas.

Cualquier otro cliente MCP

Apunta al endpoint de HTTP transmisible y envía tu clave como token portador:

URL:    https://mcp.gscwizard.com/mcp
Header: Authorization: Bearer gscw_live_...

Los nombres de las claves varían entre clientes (por ejemplo, transport frente a type, url frente a serverUrl), pero la URL y la cabecera de portador siguen siendo las mismas. Consulta la documentación MCP de tu cliente si las claves anteriores no se reconocen.

Autenticación y ámbitos

Cada clave API lleva un ámbito, elegido al crearla:

  • Solo lectura: consultar datos y ejecutar informes. No puede añadir, editar ni eliminar nada.
  • Lectura y escritura: todo lo que pueden hacer las claves de lectura, más mutaciones (añadir sitios, enviar a IndexNow, gestionar clústeres, etc.). Cada mutación queda registrada en el registro de auditoría.

Las herramientas MCP requieren una suscripción activa o una prueba gratuita en curso. Crear nuevas claves API requiere lo mismo; las claves existentes siempre se pueden revocar desde la página de claves API, donde la revocación tiene efecto inmediato.

Límites de velocidad

Las llamadas a herramientas tienen límite de velocidad por cuenta para proteger tu cuota de Search Console y mantener el servicio receptivo. Se aplican dos ventanas a la vez, y una llamada debe caber en ambas. Los transportes MCP (asistentes como Claude y ChatGPT) y la API REST tienen cada uno su propio presupuesto, por lo que un panel que se actualiza por REST no puede bloquearte la sesión del asistente:

VentanaMCP (asistentes)API REST (/v1)
Por minuto60 llamadas a herramientas180 llamadas a herramientas
Por hora1.000 llamadas a herramientas2.000 llamadas a herramientas

La ventana de minutos de REST es la más amplia de las dos porque el tráfico REST es ráfaga por construcción: un panel de Data Studio actualiza cada gráfico de forma independiente y concurrente, por lo que una página llega como un pico y luego se queda en silencio. La ventana horaria es la que sigue limitando la carga sostenida.

Dentro de una superficie, el límite se comparte entre todas las claves y sesiones de tu cuenta, por lo que abrir más sesiones no lo aumenta. Solo cuentan las invocaciones de herramientas (tools/call): los protocolos de handshake como initialize y tools/list son gratuitos, y una solicitud por lotes que invoca varias herramientas cuenta como una llamada por herramienta. Algunas herramientas costosas cuentan como más de una llamada cada una.

Cuando superas una ventana por REST, el servidor devuelve HTTP 429 con una cabecera Retry-After que indica los segundos hasta que se restablezca la ventana, y un cuerpo JSON: { "error": { "code": "rate_limited", "message": "Rate limit exceeded (minute window). Retry after 42s." } }. Pausa durante Retry-After segundos y reintenta. Por MCP, la misma condición vuelve como un error de herramienta con ese mensaje, que la mayoría de los clientes muestran como un error transitorio que simplemente puedes volver a ejecutar.

Estos límites son independientes de las cuotas propias de Google. Las herramientas de Inspección de URL (inspect_url, bulk_inspect_urls, check_tracked_url_now) también consumen la cuota diaria de ~2.000 inspecciones por propiedad que compartes con la interfaz de GSC Wizard.

Herramientas

El servidor expone 126 herramientas. Normalmente solo pides a tu asistente en lenguaje natural ("muestra mis consultas principales del mes pasado para example.com") y él elige la herramienta adecuada y rellena los argumentos. El JSON bajo cada herramienta a continuación muestra la forma de los argumentos, para que veas qué acepta cada una. Las fechas usan YYYY-MM-DD y son opcionales en todas las herramientas que aceptan un rango de fechas: omite startDate / endDate y el servidor usa automáticamente la ventana cerrada más reciente (nunca pases null ni la cadena "null"). siteUrl es un valor devuelto por list_sites (un prefijo de URL como https://example.com/ o una propiedad de dominio como sc-domain:example.com).

Los rangos de fechas son opcionales. Cada herramienta que acepta un rango de fechas trata startDate y endDate como opcionales: omítelos y el servidor analiza los últimos 28 días que Search Console ha cerrado (sus datos tienen un desfase de ~2-3 días). Pasa un extremo o ambos para acotar la ventana; las herramientas de comparación (get_ranking_changes, find_decaying_content) establecen por defecto la línea base al período de la misma longitud inmediatamente anterior al actual. Nunca necesitas saber la fecha de hoy, y nunca debes enviar null ni la cadena "null" para una fecha.

De dónde vienen los números. Las herramientas de análisis de búsqueda (query_search_analytics, query_top_queries, query_top_pages, query_countries, query_devices, get_site_summary, get_query_performance, get_page_performance) y las herramientas de informes de análisis (get_ranking_changes, find_decaying_content, get_decay_overview, analyze_cannibalization, analyze_ctr_curve, find_page_poaching_opportunities, score_opportunities, breakdown_by_path, analyze_sampling_impact, get_sitemap_performance, get_cross_site_summary, get_tag_group_view) leen del almacén de datos de GSC Wizard cuando tienen tu propiedad: eso te da un historial más largo y sin muestreo de Search Console. De lo contrario, recurren automáticamente a la API en vivo de Search Console. Cada respuesta incluye un campo dataSource establecido en clickhouse o api para que siempre sepas cuál respondió. Las respuestas del almacén también incluyen una fecha settledThrough y una nota de frescura: los datos del almacén se cierran ~2 días detrás del tiempo real, por lo que para el día o dos más recientes la API en vivo es la mejor fuente. Las solicitudes que necesitan la dimensión searchAppearance, el tipo googleNews, tres o más dimensiones distintas, o paginación siempre usan la API en vivo. Madurez de la fuente. Las ocho herramientas de datos analíticos de búsqueda (query_search_analytics, query_top_queries, query_top_pages, query_countries, query_devices, get_site_summary, get_query_performance, get_page_performance) devuelven un bloque dataMaturity tanto en el almacén de datos como en la ruta de la API en vivo, y cada respuesta lleva un settledThrough de nivel superior. Search Console no tiene un campo nativo de fecha de liquidación, por lo que el servidor ejecuta una pequeña sonda agrupada por fecha con dataState: "all" durante los últimos diez días, conserva el metadata.firstIncompleteDate crudo de la API y deriva settledThrough como el día calendario inmediatamente anterior. Ambas fechas están en la propia base de Search Console, hora del Pacífico (dateBasis: "America/Los_Angeles"); probe registra la solicitud exacta para que el límite pueda reproducirse. La búsqueda falla de forma segura: cuando la API no devuelve un firstIncompleteDate utilizable, ambas fechas son null y source es "unavailable" con un note. Nunca infiera una fecha de liquidación a partir de la última fila devuelta, ya que los días sin actividad se omiten de los datos de fila. En las respuestas del almacén de datos, settledThrough es el más temprano entre el corte de ingesta (dataMaturity.warehouseCutoff) y el límite de la API. Las herramientas de informes de GA4 (get_ga4_overview, query_ga4_report, get_ga4_ecommerce, get_ga4_key_events, get_ga4_llm_traffic, get_ga4_error_pages, query_ga4_custom_dimensions) devuelven la zona de informes IANA de la propiedad como timeZone, tomada de los metadatos de respuesta de la API de datos (con respaldo al registro de propiedad de la API de administración), que es la base de cada fecha GA4 que devuelven. Todo esto utiliza los ámbitos de solo lectura existentes webmasters.readonly y analytics.readonly.

Unidades de métricas. Cada campo ctr devuelto por cualquier herramienta es un porcentaje de 0 a 100 (una tasa de clics del 2.34% es 2.34, no 0.0234) — lo mismo en la ruta del almacén de datos, la ruta en vivo de Search Console y las herramientas de Bing. Las diferencias entre dos CTR (ctrPoints, ctrDelta, el mapa deltas en analyze_ctr_curve) están en puntos porcentuales. position es un promedio ponderado por impresiones donde un valor más bajo es mejor. Las métricas de tasa de GA4 son la excepción y mantienen las unidades propias de la API de datos: bounceRate y engagementRate son fracciones de 0-1.

Bing Webmaster Tools. Las herramientas list_bing_sites y get_bing_* leen el lado de Bing de la búsqueda orgánica (Bing, Yahoo, DuckDuckGo) en vivo desde la API de Bing Webmaster. Utilizan la clave de API de Bing Webmaster almacenada en la cuenta de Google conectada a la propiedad en GSC Wizard, por lo que no necesitan una conexión separada aquí: si no hay ninguna clave configurada, la herramienta devuelve notConfigured: true con una sugerencia en lugar de un error. Bing expone aproximadamente los últimos 6 meses por endpoint, por lo que omitir el rango de fechas devuelve todo lo que Bing tiene (no un valor predeterminado de ventana liquidada como las herramientas de Search Console).

Yandex Webmaster. Las herramientas list_yandex_sites y get_yandex_* leen el lado de Yandex de la búsqueda orgánica en vivo desde la API de Yandex Webmaster, lo que importa principalmente para el tráfico ruso, turco, kazajo, bielorruso y uzbeko. Utilizan la conexión de Yandex en la cuenta de GSC Wizard del propietario de la propiedad, por lo que no necesitan una conexión separada aquí: sin nada conectado, la herramienta devuelve notConfigured: true con una sugerencia en lugar de un error. Vale la pena conocer dos límites antes de citar un número. Yandex publica solo sus 3,000 consultas principales de la última semana y sirve como máximo 500 por solicitud, por lo que cualquier total que derive de las filas de consultas es un mínimo en lugar de una cifra completa; y Yandex no tiene un informe de consulta por página, ni dimensión de país ni métrica de CTR, por lo que el CTR se calcula a partir de impresiones y clics. Las posiciones de Yandex se miden de manera diferente a las de Google y no deben promediarse junto con ellas.

Lecturas 94

list_sites lectura

Lista las propiedades de Search Console conectadas a la cuenta.

{}

Sin argumentos. Comience aquí para obtener los valores de siteUrl que esperan las otras herramientas. Cada propiedad lleva un indicador <code>permissionLevel</code> y un indicador <code>readable</code>; <code>readable: false</code> significa que la propiedad está listada en Search Console pero no verificada, por lo que Google rechaza todos los datos para ella hasta que el usuario la verifique.

get_account_info lectura

Perfil, cuentas de Google conectadas y estado de suscripción.

{}

Sin argumentos.

generate_seo_report lectura

Ejecuta todo el conjunto de análisis para una propiedad en una sola llamada y devuelve un informe HTML completo y autónomo (resumen, consultas/páginas principales, países y dispositivos, curva de CTR, oportunidades, cambios de ranking, decaimiento, canibalización, secciones, cobertura, sitemaps). Mucho más rápido que llamar a cada herramienta por separado.

{
  "siteUrl": "sc-domain:example.com",
  "days": 28,
  "format": "html"
}

days tiene como valor predeterminado 28 (7-180). format: "html" (predeterminado, informe listo para abrir) o "json" (paquete de datos sin procesar). includeSitemap tiene como valor predeterminado true.

query_search_analytics lectura

Consulta ad-hoc searchAnalytics.query contra una propiedad. La herramienta de lectura más flexible.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "dimensions": [
    "query",
    "page"
  ],
  "rowLimit": 1000,
  "filters": [
    {
      "dimension": "country",
      "operator": "equals",
      "expression": "usa"
    }
  ]
}

startDate/endDate, dimensions, rowLimit (predeterminado 1000, sin límite; la ruta de la API en vivo pagina automáticamente más allá de 25000), searchType, startRow y filters son todos opcionales. Omita las fechas para los últimos 28 días liquidados.

get_site_summary lectura

Totales para una ventana más una comparación con el período anterior.

{
  "siteUrl": "sc-domain:example.com",
  "days": 28
}

days tiene como valor predeterminado 28 (máx. 180) y cuenta hacia atrás desde la fecha liquidada más reciente. Pase startDate y/o endDate para una ventana explícita en su lugar: una fecha que usted proporcione siempre gana, y days solo dimensiona un borde que usted deje fuera. La comparación es siempre la ventana de la misma longitud inmediatamente anterior a la que solicitó.

inspect_url lectura

Ejecuta la API de inspección de URL para una URL y persiste el resultado en el historial.

{
  "siteUrl": "sc-domain:example.com",
  "inspectionUrl": "https://example.com/blog/post"
}

get_inspection_quota lectura

Inspecciones de URL restantes disponibles hoy para una propiedad.

{
  "siteUrl": "sc-domain:example.com"
}

list_saved_filters lectura

Presets de filtros guardados, opcionalmente restringidos a una propiedad.

{
  "siteUrl": "sc-domain:example.com"
}

siteUrl es opcional; omítalo para listar cada filtro guardado en la cuenta.

list_topic_clusters lectura

Clústeres de temas definidos para una propiedad.

{
  "siteUrl": "sc-domain:example.com"
}

list_content_groups lectura

Grupos de contenido y sus reglas de coincidencia de URL para una propiedad.

{
  "siteUrl": "sc-domain:example.com"
}

get_filter_options lectura

Qué filtros de marca, grupo de contenido y clúster de temas aceptan las herramientas de informes en una propiedad.

{
  "siteUrl": "sc-domain:example.com"
}

Pase los resultados a get_site_summary, query_top_queries, query_top_pages, query_countries o query_devices como brand, contentGroupId o topicClusterId.

list_sitemaps lectura

Sitemaps enviados a Search Console para una propiedad.

{
  "siteUrl": "sc-domain:example.com"
}

list_url_inspections lectura

Historial de inspección de URL persistido (paginado).

{
  "siteUrl": "sc-domain:example.com",
  "urlContains": "/blog/",
  "limit": 100,
  "offset": 0
}

urlContains es opcional; limit tiene como valor predeterminado 100 (máx. 500). El historial no está limitado: siga pagination.nextOffset para recuperar cada inspección almacenada, por ejemplo, una ejecución masiva de varios cientos de URL. Establezca latestPerUrl: true para mantener solo el resultado más reciente por URL.

query_top_queries lectura

Principales consultas de búsqueda por clics para un rango de fechas.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "limit": 100
}

limit tiene como valor predeterminado 100, sin límite (extraiga toda la propiedad si lo desea); searchType tiene como valor predeterminado "web". startDate/endDate son opcionales: omítalos para los últimos 28 días liquidados.

query_top_pages lectura

Principales páginas de destino por clics para un rango de fechas.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "limit": 100
}

limit tiene como valor predeterminado 100, sin límite (extraiga toda la propiedad si lo desea); searchType tiene como valor predeterminado "web". startDate/endDate son opcionales: omítalos para los últimos 28 días liquidados.

query_countries lectura

Desglose de clics/impresiones por país.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "limit": 100
}

limit tiene como valor predeterminado 100, sin límite. startDate/endDate son opcionales: omítalos para los últimos 28 días liquidados.

query_devices lectura

División DESKTOP / MOBILE / TABLET para un rango de fechas.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28"
}

startDate/endDate son opcionales: omítalos para los últimos 28 días liquidados.

list_annotations lectura

Anotaciones de gráficos (alcance de plataforma, cuenta o propiedad).

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-01-01",
  "endDate": "2026-05-28"
}

Todos los campos son opcionales; omita siteUrl para anotaciones de toda la cuenta.

list_algo_updates lectura

Actualizaciones confirmadas de ranking de Google desde el feed de estado.

{
  "startDate": "2026-01-01",
  "endDate": "2026-05-28"
}

Ambas fechas son opcionales; omítalas para el historial completo.

list_indexnow_submissions lectura

Historial de envíos de IndexNow para una propiedad.

{
  "siteUrl": "sc-domain:example.com",
  "limit": 100
}

limit tiene como valor predeterminado 100 (máx. 500). Los lotes que fueron rechazados antes del envío (un archivo de clave faltante) están deliberadamente ausentes: nunca fueron enviados.

get_page_performance lectura

Clics/impresiones/CTR/posición diarios para una sola URL.

{
  "siteUrl": "sc-domain:example.com",
  "pageUrl": "https://example.com/blog/post",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28"
}

get_query_performance lectura

Métricas diarias para una sola consulta, opcionalmente en una URL.

{
  "siteUrl": "sc-domain:example.com",
  "query": "seo tools",
  "pageUrl": "https://example.com/blog/post",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28"
}

pageUrl es opcional; omítalo para medir la consulta en todo el sitio.

get_ranking_changes lectura

Consultas nuevas, perdidas, mejoradas y disminuidas (o páginas) entre dos períodos.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "comparisonStartDate": "2026-04-01",
  "comparisonEndDate": "2026-04-28",
  "dimension": "query",
  "limit": 50
}

dimension es "query" o "page" (query predeterminado); limit es por grupo, predeterminado 50, máx. 10000. counts da el tamaño completo de cada grupo antes del límite, medido dentro de las filas scanLimit principales por clics por período.

find_decaying_content lectura

Consultas o páginas que pierden clics frente a un período de referencia, agrupadas en severo / moderado / leve.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "comparisonStartDate": "2026-02-01",
  "comparisonEndDate": "2026-02-28",
  "dimension": "page",
  "minImpressions": 100
}

start/end es el período reciente; comparison* es la referencia anterior. dimension tiene como valor predeterminado "page".

get_decay_overview lectura

Matriz por consulta o por página de clics/impresiones/posición desglosada por mes o semana (el mapa de calor de Decaimiento de Consultas / Decaimiento de Contenido de la aplicación).

{
  "siteUrl": "sc-domain:example.com",
  "dimension": "query",
  "granularity": "month",
  "metric": "clicks",
  "months": 16,
  "limit": 50
}

Tiene como valor predeterminado los últimos 16 meses completos. granularity "month" o "week"; metric clicks/impressions/position/ctr. Cada fila tiene una matriz values\ alineada con periods\. Pase startDate/endDate para anular la ventana.

analyze_cannibalization lectura

Consultas donde dos o más páginas compiten, puntuadas por entropía de división de impresiones.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "minImpressions": 10
}

minImpressions tiene como valor predeterminado 10; limit tiene como valor predeterminado 100, sin límite.

analyze_ctr_curve lectura

CTR real por grupo de posición (1-20) frente a puntos de referencia de la industria (AWR, estudio AWR 2026 con y sin AI Overviews, First Page Sage, Sistrix, Backlinko).

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "minImpressions": 10,
  "benchmarkSource": "all"
}

benchmarkSource: awr | awr2026 | awrAio | firstPageSage | sistrix | backlinko | all (all predeterminado). awr2026 y awrAio son el estudio de 2026 de Advanced Web Ranking, orgánico frente a SERPs que llevan un AI Overview; la brecha entre ellos es el impuesto de clics de AI Overview. Los valores de CTR son porcentajes (0-100) y los deltas son puntos porcentuales; un delta negativo significa que el grupo rinde por debajo de ese punto de referencia.

find_page_poaching_opportunities lectura

Consultas que se clasifican justo fuera del top, con upside de clics estimado si se empujan a una posición objetivo.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "minPosition": 4,
  "maxPosition": 20,
  "targetPosition": 3,
  "fallbackBenchmark": "awr"
}

El upside de clics utiliza la curva de CTR PROPIA de la propiedad en targetPosition; fallbackBenchmark (awr | awr2026 | awrAio | firstPageSage | sistrix | backlinko, awr predeterminado) se usa solo donde el sitio no tiene datos. La respuesta informa targetCtr y ctrSource ("own" o la clave del punto de referencia). La banda de posición y el objetivo son ajustables; limit tiene como valor predeterminado 100, sin límite.

score_opportunities lectura

Puntuación de oportunidad ponderada por impresiones que favorece consultas de alta impresión cerca de la parte superior de la página dos.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "minImpressions": 10
}

Considera posiciones 3-30; limit tiene como valor predeterminado 100, sin límite.

breakdown_by_path lectura

Agrega el rendimiento de la página por host + primer(os) segmento(s) de ruta.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "depth": 1
}

depth (1-4) controla cuántos segmentos de ruta forman cada grupo; limit tiene como valor predeterminado 100, sin límite.

analyze_sampling_impact lectura

Estima la proporción de clics/impresiones que GSC oculta mediante anonimización (dimensiones de consulta y página).

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28"
}

Solo la ruta de la API en vivo revela el muestreo real; el almacén de datos no está muestreado (consulte la nota de respuesta).

get_sitemap_performance lectura

Obtiene un sitemap, extrae sus URL y une cada una con clics/impresiones/posición de GSC.

{
  "siteUrl": "sc-domain:example.com",
  "sitemapUrl": "https://example.com/sitemap.xml",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "maxUrls": 500
}

El host del sitemap debe pertenecer a la propiedad. Un nivel de expansión de índice de sitemap; maxUrls limita la unión (predeterminado 500, sin límite).

get_cross_site_summary lectura

Clics/impresiones de los últimos N días en todas sus propiedades (opcionalmente una etiqueta), con totales por sitio.

{
  "days": 28,
  "tag": "client-a"
}

tag es opcional; days tiene un valor predeterminado de 28 (máximo 180); maxSites es opcional sin límite máximo: omítelo para incluir TODAS las propiedades coincidentes, o pasa un número para limitar cuántas se procesan.

list_tags read

Cada etiqueta en la cuenta (etiquetas globales + de propiedad) con el número de propiedades que llevan cada una.

{
  "includeSites": false
}

includeSites tiene un valor predeterminado de false; establécelo en true para también listar las URLs de propiedad bajo cada etiqueta.

get_tag_group_view read

Informe agregado entre sitios para todas las propiedades que llevan una etiqueta (el panel /group/tag): totales + comparación, tendencia diaria, totales por sitio y consultas/páginas/países/dispositivos principales combinados.

{
  "tag": "client-a",
  "days": 28,
  "dimensions": [
    "query",
    "page",
    "country",
    "device"
  ],
  "limit": 100
}

days tiene un valor predeterminado de 28 (máximo 180); searchType tiene un valor predeterminado de "web"; dimensions tiene un valor predeterminado de las cuatro; limit tiene un valor predeterminado de 100 (máximo 1000); maxSites es opcional sin límite máximo: omítelo para incluir TODAS las propiedades etiquetadas, o pasa un número para limitar.

get_indexing_tracker read

Configuración del Indexing Tracker y un resumen de estado (indexado / no indexado / pendiente / errores / advertencias).

{
  "siteUrl": "sc-domain:example.com"
}

Devuelve tracker: null cuando no hay un tracker configurado para la propiedad.

list_tracked_urls read

Lista paginada de URLs rastreadas con su último estado de indexación, filtrable y buscable.

{
  "siteUrl": "sc-domain:example.com",
  "filter": "warnings",
  "search": "/blog/",
  "page": 1,
  "pageSize": 50
}

filter: all | indexed | not_indexed | pending | errors | warnings. pageSize máximo 1000 (predeterminado 50); page es de base uno.

get_indexing_tracker_report read

Informe de salud de indexación: puntuación, desglose de cobertura, frescura de rastreo, páginas perdidas y recién indexadas.

{
  "siteUrl": "sc-domain:example.com",
  "days": 30
}

days tiene un valor predeterminado de 30 (máximo 90).

list_ga4_properties read

Cada propiedad de Google Analytics 4 que tus cuentas de Google conectadas pueden leer, y a qué sitios de GSC Wizard está vinculada cada una.

{}

Sin argumentos. connected: false significa que el consentimiento de Google Analytics aún no se ha otorgado en la aplicación GSC Wizard. linkedSiteUrls cubre solo los sitios de la cuenta de GSC Wizard con la que la conexión está autenticada (devuelta como account), por lo que una propiedad vinculada desde otra cuenta tuya muestra una lista vacía.

get_ga4_overview read

Resumen de tráfico de GA4 (sesiones, usuarios, tasa de participación, eventos clave y más) para la propiedad de GA4 vinculada a un sitio, siempre con una comparación con el período anterior.

{
  "siteUrl": "sc-domain:example.com",
  "includeTimeseries": false
}

GA4 debe estar vinculado al sitio en la aplicación GSC Wizard; de lo contrario, se devuelve una explicación notConfigured, indicando en account contra qué cuenta de GSC Wizard se resolvió (los enlaces son por cuenta). Las fechas y la ventana de comparación son opcionales; includeTimeseries añade puntos diarios.

query_ga4_report read

Un desglose de dimensión de GA4 por llamada: channel, sourceMedium, page, landingPage, country, device o event, cada uno con su propio conjunto de métricas.

{
  "siteUrl": "sc-domain:example.com",
  "dimension": "landingPage",
  "limit": 25
}

GA4 debe estar vinculado al sitio en la aplicación GSC Wizard. filters y un rango de comparación son opcionales; limit tiene un valor predeterminado de 50 (máximo 1000).

get_ga4_ecommerce read

Rendimiento de comercio electrónico de GA4: resumen de ingresos/transacciones más desgloses por canal, fuente, página, página de destino y producto.

{
  "siteUrl": "sc-domain:example.com",
  "limit": 25
}

GA4 debe estar vinculado al sitio en la aplicación GSC Wizard. hasEcommerce es false cuando la propiedad no muestra actividad de comercio electrónico; revenue está en la moneda de la propiedad (currencyCode).

get_ga4_llm_traffic read

Sesiones, participación, conversiones e ingresos referidos por ChatGPT, Perplexity, Copilot, Gemini, Claude y otros asistentes de IA, con su participación en el tráfico total.

{
  "siteUrl": "sc-domain:example.com",
  "includeDailySplit": false,
  "limit": 25
}

GA4 debe estar vinculado al sitio en la aplicación GSC Wizard. El tráfico de Google AI Overviews no lleva un referente distinto y NO está incluido. includeDailySplit añade una serie de sesiones diarias por asistente.

get_ga4_key_events read

Segmenta GA4 en UN evento clave (conversión): totales, tasas de conversión y desgloses por canal/fuente/página de destino/página/país/dispositivo.

{
  "siteUrl": "sc-domain:example.com",
  "keyEvent": "form_submit",
  "limit": 25
}

GA4 debe estar vinculado al sitio en la aplicación GSC Wizard. Omite keyEvent para seleccionar automáticamente el más activo; la respuesta lista cada nombre de evento clave disponible.

list_ga4_custom_dimensions read

Las dimensiones personalizadas y métricas personalizadas registradas en la propiedad de GA4 del sitio: los parámetros de evento y propiedades de usuario que recopila además de los campos estándar de GA4.

{
  "siteUrl": "sc-domain:example.com"
}

GA4 debe estar vinculado al sitio en la aplicación GSC Wizard. Cada entrada lleva el apiName (por ejemplo, customEvent:source_format) que toma query_ga4_custom_dimensions. Un parámetro de evento que no está registrado en GA4 Admin > Custom definitions no se puede informar en absoluto, así que llama a esto antes de adivinar un nombre. Las definiciones a nivel de elemento se listan con queryable: false.

query_ga4_custom_dimensions read

Desglosa el tráfico de GA4 por una de tus propias dimensiones personalizadas registradas, opcionalmente cruzada con una segunda: qué valor de parámetro condujo a qué.

{
  "siteUrl": "sc-domain:example.com",
  "dimension": "customEvent:source_path",
  "secondaryDimension": "customEvent:target_path",
  "filters": {
    "event": [
      "internal_link_click"
    ]
  },
  "limit": 50
}

GA4 debe estar vinculado al sitio en la aplicación GSC Wizard. Los nombres provienen de list_ga4_custom_dimensions; uno no registrado se rechaza en lugar de responderse con un informe vacío. Las filas llevan key (valor primario), secondary (el valor cruzado) y eventCount / sessions / activeUsers / keyEvents. valueFilters profundizan en un valor; customMetrics añade métricas personalizadas registradas como columnas.

get_blended_landing_pages read

Une Search Console (clics, impresiones, CTR, posición) con GA4 (sesiones, tasa de rebote, eventos clave, ingresos) por página de destino.

{
  "siteUrl": "sc-domain:example.com",
  "organicOnly": true,
  "limit": 50,
  "dateGranularity": "none"
}

GA4 debe estar vinculado al sitio en la aplicación GSC Wizard. organicOnly (predeterminado true) limita las métricas de GA4 a sesiones de google / organic para que ambos lados describan el mismo tráfico. dateGranularity ("day" / "week" / "month") devuelve una serie temporal en lugar de un agregado: cada fila lleva el inicio del período como date, limit se aplica por período, y los campos prev* comparan cada período con el anterior (por lo que no se puede combinar con un rango de comparación explícito).

get_query_value_attribution read

Estima sesiones de GA4, eventos clave e ingresos por consulta de Search Console mediante la participación proporcional de clics sobre la unión consulta→página→página de destino.

{
  "siteUrl": "sc-domain:example.com",
  "organicOnly": true,
  "limit": 1000,
  "dateGranularity": "none"
}

GA4 debe estar vinculado al sitio en la aplicación GSC Wizard. Estimaciones, no ingresos medidos: atribución por participación de clics a nivel de página; matchedClickShare informa la cobertura; estRevenue solo cuando la propiedad de GA4 registra ingresos. dateGranularity ("day" / "week" / "month") devuelve una serie temporal en lugar de un agregado — la forma de graficar ingresos estimados de consultas sin marca mes a mes — con cada fila llevando el inicio del período como date y limit aplicándose por período.

list_bing_sites read

Lista los sitios verificados en tu cuenta vinculada de Bing Webmaster Tools.

{}

Sin argumentos. Devuelve notConfigured: true cuando no hay una clave de API de Bing Webmaster configurada en la aplicación GSC Wizard.

get_bing_traffic_stats read

Clics e impresiones diarios de Bing para una propiedad (aproximadamente los últimos 6 meses).

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28"
}

startDate/endDate opcionales; omite ambos para todo lo que Bing tiene (~6 meses).

get_bing_query_stats read

Principales consultas de búsqueda de Bing para una propiedad (clics, impresiones, CTR, posición).

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "limit": 100
}

Fechas opcionales (omite para ~6 meses); limit tiene un valor predeterminado de 100, sin límite máximo.

get_bing_page_stats read

Principales páginas de destino de Bing para una propiedad (clics, impresiones, CTR, posición).

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "limit": 100
}

Fechas opcionales (omite para ~6 meses); limit tiene un valor predeterminado de 100, sin límite máximo.

get_bing_query_page_stats read

Pares de consulta + página de destino de Bing para una propiedad (qué consulta impulsa cada página).

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "limit": 100,
  "seedLimit": 25
}

Fechas opcionales (omite para ~6 meses); limit tiene un valor predeterminado de 100, sin límite máximo. Bing no tiene un endpoint que devuelva combinaciones de consulta+página, por lo que los pares se ensamblan con una solicitud por página principal — seedLimit (predeterminado 25, máximo 100) establece cuántas páginas se expanden, y truncated: true significa que Bing tenía más. Pasa query para emparejar desde un solo término de búsqueda en su lugar (las páginas que clasificaron para él).

get_bing_page_queries read

Las consultas de búsqueda de Bing que llevaron a UNA página de destino — la vista de palabras clave por página, y el desglose después de get_bing_page_stats.

{
  "siteUrl": "sc-domain:example.com",
  "page": "https://example.com/blog/post/",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28",
  "limit": 100
}

page es obligatorio y debe coincidir exactamente con Bing (URL completa, incluyendo esquema, www y barra final) — tómala de get_bing_page_stats. Fechas opcionales; limit tiene un valor predeterminado de 100.

get_bing_query_page_trend read

Clics, impresiones, CTR y posición promedio diarios para UN par exacto de consulta + página de destino en Bing.

{
  "siteUrl": "sc-domain:example.com",
  "query": "example query",
  "page": "https://example.com/blog/post/",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28"
}

query y page son ambos obligatorios y deben coincidir exactamente con Bing — toma el par textualmente de get_bing_query_page_stats o get_bing_page_queries. El único endpoint de Bing con una posición verdadera a nivel de par. Fechas opcionales (omite para ~6 meses).

get_bing_crawl_stats read

Estadísticas diarias de rastreo de Bing: páginas rastreadas/indexadas, enlaces entrantes y desglose de códigos de respuesta.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28"
}

startDate/endDate opcionales; omite ambos para todo lo que Bing tiene (~6 meses).

get_bing_crawl_issues read

URLs donde Bing encontró problemas de rastreo (4xx/5xx, redirecciones, bloqueos de robots, malware), con etiquetas decodificadas.

{
  "siteUrl": "sc-domain:example.com",
  "limit": 200
}

limit tiene un valor predeterminado de 200, sin límite máximo; los resultados se ordenan por recuento de enlaces entrantes.

get_bing_link_counts read

Recuentos de enlaces entrantes (backlinks) por URL registrados por Bing, paginados (~100 filas por página).

{
  "siteUrl": "sc-domain:example.com",
  "page": 0
}

page tiene un valor predeterminado de 0; la respuesta incluye totalPages para que puedas paginar.

get_bing_keyword_stats read

Volumen histórico de impresiones de Bing para una sola palabra clave (semanal), más impresiones de coincidencia amplia.

{
  "keyword": "seo tools",
  "country": "us",
  "language": "en-US"
}

Datos de demanda de mercado, no vinculados a una propiedad (sin siteUrl). country tiene un valor predeterminado de "us", language de "en-US".

get_bing_feeds read

Sitemaps/feeds enviados a Bing para una propiedad, con estado decodificado, tipo, fechas y recuentos de URLs.

{
  "siteUrl": "sc-domain:example.com"
}

get_bing_url_submission_quota read

Cuota restante de envío de URLs de Bing (diaria y mensual) para una propiedad.

{
  "siteUrl": "sc-domain:example.com"
}

list_yandex_sites read

Lista los sitios en tu cuenta vinculada de Yandex Webmaster, con estado de verificación y espejo canónico.

{}

Sin argumentos. Devuelve notConfigured: true cuando no hay una cuenta de Yandex conectada en la aplicación GSC Wizard.

get_yandex_site_summary read

Índice de calidad del sitio de Yandex (SQI), páginas en búsqueda, páginas excluidas y problemas abiertos del sitio para una propiedad.

{
  "siteUrl": "sc-domain:example.com"
}

get_yandex_query_stats read

Consultas de búsqueda de Yandex para una propiedad (impresiones, clics, CTR derivado, posición promedio de impresión y de clic).

{
  "siteUrl": "sc-domain:example.com",
  "orderBy": "TOTAL_SHOWS",
  "deviceType": "ALL",
  "limit": 500
}

Yandex expone solo sus 3,000 consultas principales de la última semana (500 por solicitud), por lo que los totales son un mínimo, no una cifra completa. Yandex no publica una métrica de CTR, por lo que el CTR se deriva. No hay un informe de consulta por página en la API de Yandex. MOBILE_AND_TABLET se superpone con MOBILE y TABLET — nunca los sumes.

get_yandex_indexing_history read

Códigos de respuesta de rastreo de Yandex por día, páginas en la búsqueda de Yandex y las páginas que aparecieron o se eliminaron de la búsqueda.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-05-01",
  "endDate": "2026-05-28"
}

Fechas opcionales. La serie de aparecidas/eliminadas no tiene equivalente en Google Search Console.

detect_anomalies read

Marca días estadísticamente anómalos (picos/caídas) para una métrica, puntuados por severidad.

{
  "siteUrl": "sc-domain:example.com",
  "metric": "clicks",
  "days": 90,
  "sensitivity": 3.5
}

metric: clicks | impressions | ctr | position (predeterminado clicks). days >= 21 (predeterminado 90). Menor sensibilidad = más anomalías.

detect_change_points read

Encuentra fechas donde los clics o impresiones cambiaron a un nuevo nivel sostenido (cambios de paso).

{
  "siteUrl": "sc-domain:example.com",
  "metric": "clicks",
  "days": 180,
  "sensitivity": 2
}

metric: clicks | impressions. days >= 14 (predeterminado 180). Informa medias antes/después y cambio porcentual.

forecast_traffic read

Proyecta futuros clics/impresiones mediante descomposición estacional + una línea de tendencia seleccionada automáticamente.

{
  "siteUrl": "sc-domain:example.com",
  "metric": "clicks",
  "granularity": "weekly",
  "forecastPeriods": 26
}

Semanal necesita >= 13 semanas, mensual >= 6 meses. growthRate, cvr + aov (para ingresos), trendlineType opcionales.

get_longtail_clusters read

Segmenta páginas en niveles Head / Chunky Middle / Long Tail mediante detección de codo en clics acumulados.

{
  "siteUrl": "sc-domain:example.com",
  "preset": "default",
  "pagesPerCluster": 10
}

preset: default | content | ecommerce | small_site | enterprise. sensitivity e includeZeroClicks opcionales.

get_core_web_vitals read

Datos de campo del Chrome UX Report: Core Web Vitals semanales (LCP, INP, CLS) + FCP/TTFB con calificaciones y regresiones, más las métricas experimentales de anuncios de Chrome donde el sitio lleva anuncios.

{
  "siteUrl": "sc-domain:example.com",
  "formFactor": "ALL"
}

Necesita una clave de API de CrUX configurada en la aplicación. Pasa un url\ para medir una sola página; formFactor: ALL | PHONE | DESKTOP | TABLET. adMetrics\ (recuento de anuncios/densidad/CPU/peso de red) es solo p75 y sin calificación — CrUX no publica objetivos para ello — y está ausente cuando Chrome no detectó anuncios.

list_experiments lectura

Enumera los experimentos de SEO (pruebas divididas) definidos para una propiedad, con sus grupos de URL.

{
  "siteUrl": "sc-domain:example.com",
  "includeArchived": false
}

get_experiment_results lectura

Puntúa un experimento: control vs variante en crecimiento de clics con una prueba de significancia, intervalo de confianza de mejora y ganador.

{
  "siteUrl": "sc-domain:example.com",
  "experimentId": "00000000-0000-0000-0000-000000000000",
  "confidenceLevel": 0.95
}

El grupo 0 es el control. La ventana de comparación se establece por defecto en el período anterior de la misma duración.

compare_migration lectura

Comparación A-vs-B antes/después para una migración: tendencia diaria, totales por lado, ganadores y perdedores de consultas/páginas.

{
  "mode": "cross-property",
  "siteUrl": "sc-domain:old.com",
  "siteUrlB": "sc-domain:new.com",
  "limit": 50
}

modo: cross-property (siteUrl + siteUrlB) | two-urls (urlPrefixA + urlPrefixB) | regex (regexA + regexB). Ambos lados comparten una única ventana de fechas.

audit_onpage_seo lectura

Rastrea páginas y ejecuta una auditoría técnica on-page por URL (indexabilidad, títulos, canónicos, enlaces, datos estructurados, problemas).

{
  "siteUrl": "sc-domain:example.com",
  "maxUrls": 10
}

Pasa un urls\ explícito (debe pertenecer a la propiedad) u omítelo para auditar las páginas principales por impresiones. Obtiene cada página en vivo; mantén el recuento moderado.

get_content_group_performance lectura

Mide tus grupos de contenido guardados: clics, impresiones, CTR, posición promedio, recuento de páginas y proporción de clics por grupo, además de un grupo "sin categorizar". Pasa groupId para profundizar en las páginas principales de un grupo.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-01-01",
  "endDate": "2026-01-31"
}

Los grupos se crean en la aplicación o con create_content_group. En la ruta del almacén de datos, los totales cubren TODAS las páginas de la propiedad, no solo las primeras N. La coincidencia es de primera coincidencia en el orden guardado de los grupos.

get_topic_cluster_performance lectura

Mide tus clústeres de temas guardados sobre consultas: clics, impresiones, CTR, posición promedio, recuento de consultas coincidentes y proporción de clics por clúster, además de un grupo "sin agrupar". Pasa clusterId para profundizar en las consultas principales de un clúster.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-01-01",
  "endDate": "2026-01-31"
}

Los clústeres pueden SUPERPOSICIONARSE: una consulta que coincide con dos clústeres cuenta completamente en ambos, por lo que los totales de clúster no suman el total de la propiedad (overlappingQueries informa cuántas se cuentan dos veces).

get_branded_performance lectura

Divide una propiedad en búsqueda de marca y no marca: totales, proporción de clics de marca, una tendencia diaria para ambos lados y las consultas principales en cada lado.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-01-01",
  "endDate": "2026-01-31",
  "limit": 25
}

Impulsado por las palabras clave de marca guardadas en la propiedad (configúralas con update_site). Una palabra clave envuelta en barras, como /acme?corp/, es una expresión regular; de lo contrario, es una subcadena que no distingue entre mayúsculas y minúsculas. Devuelve notConfigured cuando no hay ninguna configurada.

get_position_distribution lectura

Segmenta una propiedad por dónde se posiciona, en bandas 1-3 / 4-10 / 11-20 / 21+: impresiones y clics por banda en el rango, o el recuento de consultas distintas que se posicionan en cada banda día a día.

{
  "siteUrl": "sc-domain:example.com",
  "granularity": "period",
  "dimension": "query"
}

granularidad: "period" (por defecto, totales de banda) o "daily" (consultas distintas por banda por día, siempre clave en consulta). Las posiciones son promedios ponderados por impresiones, por lo que una fila se ubica en exactamente una banda.

get_ga4_error_pages lectura

Páginas de error de GA4 para la propiedad vinculada a un sitio, desglosadas por título de página Y URL: sesiones, vistas de página, usuarios activos y tasa de rebote.

{
  "siteUrl": "sc-domain:example.com",
  "startDate": "2026-01-01",
  "endDate": "2026-01-31"
}

GA4 no tiene una señal nativa de 404, por lo que las páginas de error se comparan con los patrones de título de página guardados para el sitio en la aplicación. Pasa titleFilters (por ejemplo, [{ operator: "contains", value: "404" }]) para anularlos en una sola llamada.

list_shared_reports lectura

Enumera los informes compartibles guardados en tu cuenta, cada uno con su URL de vista y los clientes a los que se les ha concedido acceso actualmente.

{
  "limit": 50
}

Úsalo para encontrar un reportId para manage_report_access o delete_shared_report, o para auditar quién puede ver qué informe.

list_report_clients lectura

Enumera los contactos de clientes en tu cuenta: las personas a las que se les puede conceder acceso a un informe compartible.

{
  "limit": 100
}

Un cliente es una dirección de correo electrónico más un nombre opcional; inician sesión con ella para ver los informes compartidos con ellos.

list_migration_redirects lectura

Enumera las asignaciones de redirección guardadas (URL antigua a URL nueva) detrás del flujo de trabajo de Comparación de Migración, agrupadas por el par de propiedades A/B y la etiqueta a la que pertenecen.

{
  "summaryOnly": true
}

Filtra con label / siteUrlA / siteUrlB. summaryOnly devuelve solo los recuentos por migración, que es la opción correcta en una asignación grande.

get_indexnow_settings lectura

Informa si IndexNow está configurado para una propiedad: si hay una clave configurada y si el archivo de clave es realmente accesible en el sitio.

{
  "siteUrl": "sc-domain:example.com"
}

Ambas partes deben ser verdaderas antes de que los motores acepten cualquier cosa. keyFileVerified es la verificación en vivo: false significa que el archivo realmente falta o contiene la clave incorrecta, y keyFileUrl entonces nombra el archivo exacto a publicar; null significa que la sonda no fue concluyente (un tiempo de espera o una regla de bot), lo cual no es un fallo. La clave completa nunca se devuelve como campo, y keyFileUrl se omite cuando todo ya está verificado. Verifica aquí primero cuando falla un envío.

analyze_query_shapes lectura

Clasifica las consultas por forma para revelar huellas de AI Overviews / AI Mode: respuestas simples, seguimientos pivotantes, preguntas conversacionales, sondas de rastreadores, arneses de agentes.

{
  "siteUrl": "sc-domain:example.com",
  "examplesPerBucket": 10
}

Coincidencia heurística de patrones en 27 idiomas; juzga cómo se ve una consulta, no lo que el buscador quiso decir. Pasa buckets: ["reply_artefact","pivot_follow_up","conversational_question"] para solo las formas de conversación de IA.

get_query_shape_trend lectura

Clics + impresiones mensuales (o semanales) divididos en consultas con forma de IA vs convencionales, con la proporción de forma de IA de cada métrica.

{
  "siteUrl": "sc-domain:example.com",
  "months": 12,
  "granularity": "month"
}

Responde "¿están creciendo las consultas de AI Mode / AI Overviews en este sitio?". Se establece por defecto en los últimos 12 meses completos (máximo 16, retención de GSC).

get_merchant_listings_performance lectura

Rendimiento de Search Console para una apariencia de búsqueda (por defecto MERCHANT_LISTINGS): el inventario de apariencias, una línea de tiempo diaria y las páginas de producto principales detrás de ella.

{
  "siteUrl": "sc-domain:example.com",
  "appearance": "MERCHANT_LISTINGS",
  "limit": 25
}

Siempre API de Search Console en vivo: la apariencia de búsqueda nunca se almacena y no se puede agrupar con otra dimensión, solo filtrar. Cuenta resultados de productos enriquecidos solo en Búsqueda web, por lo que no se concilia con los números de listados gratuitos de Merchant Center, que también cubren la pestaña Shopping, Imágenes, Lens, YouTube y Maps. Shopping está en lanzamiento limitado: la herramienta está habilitada solo para cuentas en lista de permitidos mientras la función está en fase de implementación, y no aparece en tools/list para otras cuentas.

list_gmc_accounts lectura

Cada cuenta de Google Merchant Center que tus cuentas de Google conectadas pueden leer, y a qué sitios de GSC Wizard está vinculada cada una.

{
  "siteUrl": "sc-domain:example.com"
}

siteUrl es opcional y solo agrega el linkedAccountId para esa propiedad. connected: false significa que el consentimiento de Merchant Center no se ha otorgado en la aplicación GSC Wizard todavía. isAdvanced: true marca un padre multi-cliente, que no se puede informar directamente: vincula una de sus subcuentas. Shopping está en lanzamiento limitado: la herramienta está habilitada solo para cuentas en lista de permitidos mientras la función está en fase de implementación, y no aparece en tools/list para otras cuentas.

get_organic_shopping_performance lectura

Rendimiento de productos orgánicos (listados gratuitos) desde la cuenta de Merchant Center vinculada: clics / impresiones / conversiones diarias más las mejores ofertas, agrupables por marca, categoría o tipo de producto.

{
  "siteUrl": "sc-domain:example.com",
  "groupBy": "offer",
  "limit": 25
}

Cubre todas las superficies gratuitas (pestaña Shopping, Búsqueda, Imágenes, Lens, YouTube, Maps), por lo que no se concilia con los números de listados de comerciantes solo de Búsqueda web de get_merchant_listings_performance. Las conversiones necesitan una fuente de conversión de Merchant Center. Orgánico excluye el tráfico de afiliados de YouTube a partir del 1 de julio de 2026. Shopping está en lanzamiento limitado: la herramienta está habilitada solo para cuentas en lista de permitidos mientras la función está en fase de implementación, y no aparece en tools/list para otras cuentas.

get_product_listing_status lectura

Elegibilidad de listados gratuitos y problemas de artículos por producto, ordenados por potencial de clics: qué productos son invisibles en los listados gratuitos y por qué.

{
  "siteUrl": "sc-domain:example.com",
  "onlyProblems": true,
  "limit": 25
}

clickPotentialRank 1 es el producto del que Google espera más clics, por lo que un producto rechazado con un rango bajo en número es el problema más costoso. topIssueResolution MERCHANT_ACTION necesita una corrección de feed o sitio; PENDING_PROCESSING se resuelve solo. Shopping está en lanzamiento limitado: la herramienta está habilitada solo para cuentas en lista de permitidos mientras la función está en fase de implementación, y no aparece en tools/list para otras cuentas.

get_gmc_competitors lectura

Visibilidad competitiva de Merchant Center para una celda de país / categoría / fuente de tráfico: filas diarias de competidores con un resumen por dominio, un agregado de ventana por dominio (top_merchant), o tu tendencia de visibilidad contra el punto de referencia de la categoría.

{
  "siteUrl": "sc-domain:example.com",
  "view": "competitor",
  "countryCode": "US",
  "categoryId": "166",
  "trafficSource": "ORGANIC",
  "limit": 50
}

countryCode y categoryId son ambos obligatorios: la API de Merchant responde una celda por solicitud. relativeVisibility, adsOrganicRatio, pageOverlapRate, higherPositionRate y ambas tendencias son fracciones 0-1 (0.12 = 12%), no el porcentaje de CTR 0-100; las tendencias son relativas al inicio de la ventana. Shopping está en lanzamiento limitado: la herramienta está habilitada solo para cuentas en lista de permitidos mientras la función está en fase de implementación, y no aparece en tools/list para otras cuentas.

get_gmc_pricing_insights lectura

Competitividad de precios de Merchant Center y sugerencias de precio de venta unidas por producto: tu precio contra el punto de referencia del mercado (priceGapFraction) y el precio sugerido de Google con el cambio predicho de impresiones / clics / conversiones.

{
  "siteUrl": "sc-domain:example.com",
  "sort": "opportunity",
  "limit": 100
}

Ambas vistas son instantáneas sin fecha del catálogo actual; snapshotDate es el día UTC de la llamada. predicted*ChangeFraction, priceGapFraction y suggestedChangeFraction son fracciones 0-1 (0.12 = +12%), no el porcentaje de CTR 0-100. Los puntos de referencia necesitan GTINs válidos y las sugerencias necesitan informes de conversión, por lo que un resultado vacío generalmente significa "no elegible". Shopping está en lanzamiento limitado: la herramienta está habilitada solo para cuentas en lista de permitidos mientras la función está en fase de implementación, y no aparece en tools/list para otras cuentas.

get_gmc_best_sellers lectura

El ranking de los más vendidos de Google para un país desde Merchant Center: los mejores clústeres de productos o marcas por categoría con rango, rango anterior, demanda relativa y, para clústeres, una bandera demandGap cuando no tienes en stock un clúster clasificado.

{
  "siteUrl": "sc-domain:example.com",
  "view": "product_cluster",
  "granularity": "WEEKLY",
  "countryCode": "US",
  "limit": 100
}

Omite reportDate para el informe publicado más reciente (los informes se retrasan hasta dos semanas) y lee reportDate de vuelta; una fecha WEEKLY debe ser un lunes, una MONTHLY el día 1. inventoryStatus ignora el país del informe, por lo que demandGap es una señal a nivel de cuenta. Shopping está en lanzamiento limitado: la herramienta está habilitada solo para cuentas en lista de permitidos mientras la función está en fase de implementación, y no aparece en tools/list para otras cuentas.

get_feed_audit_results lectura

Resultados de la auditoría de feed de Merchant Center: la ejecución más reciente (o un runDate) con su estado, Puntuación de Feed (0-100, dividida en planos de feed y página), recuentos de fallos por severidad, recuentos aplicables / fallidos / aprobados por verificación con tasas de aprobación, cobertura de rastreo y el historial de puntuación de ejecuciones anteriores.

{
  "siteUrl": "sc-domain:example.com",
  "limit": 100
}

coverage, passRate y failRate son fracciones 0-1 (0.12 = 12%), no el porcentaje de CTR 0-100. checkKey reduce la lista de verificaciones; las filas de problemas por oferta detrás de checkKey o severidad viven en el almacén de datos ClickHouse que este servidor no puede leer, por lo que esas llamadas responden issuesAvailable: false y apuntan al informe de Auditoría de Feed en la aplicación. run: null significa que ninguna auditoría se ha ejecutado todavía. Shopping está en lanzamiento limitado: la herramienta está habilitada solo para cuentas en lista de permitidos mientras la función está en fase de implementación, y no aparece en tools/list para otras cuentas.

get_gmc_title_hygiene lectura

Higiene de título y descripción del catálogo de Merchant Center vinculado: histogramas de longitud de título y descripción, descripciones faltantes, longitud media y mediana de título, grupos de títulos duplicados, ofertas que repiten una palabra y las palabras de título más frecuentes con tokens de marca marcados.

{
  "siteUrl": "sc-domain:example.com",
  "limit": 2000,
  "topWords": 50
}

Una instantánea del catálogo sin rango de fechas, calculada sobre los primeros limit\ productos de la lista de productos en vivo (por defecto 2000, máximo 5000); truncado: true significa que el catálogo tenía más y el resumen describe una muestra. topWords[].share es una fracción de 0-1 de las ofertas muestreadas, no el porcentaje ctr de 0-100; las longitudes están en caracteres, incluidos los títulos CJK (cjkNote). La diferencia de título entre feed y página vive solo en el informe de la aplicación. Shopping está en lanzamiento limitado: la herramienta está habilitada solo para cuentas en lista de permitidos mientras la función está en fase de implementación, y no aparece en tools/list para otras cuentas.

Mutaciones 32

Requieren una clave de lectura y escritura. Todas las mutaciones se registran en un registro de auditoría de solo añadir.

add_site escritura

Registrar una propiedad GSC en GSC Wizard. La propiedad ya debe existir en tu cuenta de Search Console.

{
  "siteUrl": "sc-domain:example.com",
  "tags": [
    "client-a"
  ]
}

Las etiquetas son opcionales.

create_gsc_property escritura

Crear nuevas propiedades de prefijo de URL en Google Search Console (por ejemplo, propiedades a nivel de carpeta) y registrarlas en GSC Wizard. Verificación automática si el dominio principal es propiedad. Usa add_site en su lugar para propiedades que ya existen en GSC.

{
  "parentSiteUrl": "sc-domain:example.com",
  "propertyUrls": [
    "https://example.com/blog/",
    "https://example.com/docs/"
  ]
}

parentSiteUrl debe ser una propiedad registrada existente cuya cuenta de Google sea propietaria del dominio. register por defecto es true; hasta 50 URLs.

update_site escritura

Editar etiquetas, palabras clave de marca, URLs de sitemap o la tasa de rastreo en una propiedad registrada.

{
  "siteUrl": "sc-domain:example.com",
  "tags": [
    "client-a",
    "priority"
  ],
  "brandedKeywords": [
    "example",
    "example brand"
  ],
  "sitemapUrls": [
    "https://example.com/sitemap.xml"
  ],
  "crawlMaxConcurrency": 2,
  "crawlMinDelayMs": 1000
}

Pasa solo los campos que quieras cambiar. crawlMaxConcurrency (1-10) y crawlMinDelayMs (0-60000) limitan la velocidad con la que GSC Wizard rastrea este sitio en la auditoría en página, el rastreador de enlaces y la auditoría de feed; redúcelos si el sitio responde 429. Pasa null para cualquiera de ellos para volver al valor predeterminado de la aplicación. El retraso mínimo se combina con Crawl-delay de robots.txt, el que sea mayor.

manage_tags escritura

Crear, asignar, desasignar, renombrar o eliminar etiquetas de propiedad en toda la cuenta (el lado de etiquetas del panel /group/tag).

{
  "action": "assign",
  "tag": "client-a",
  "siteUrls": [
    "sc-domain:example.com",
    "https://example.org/"
  ]
}

acción: create | assign | unassign | rename | delete. siteUrls es obligatorio para assign/unassign; newName es obligatorio para rename. rename y delete se aplican a todas las propiedades y a la lista global de etiquetas.

delete_site escritura

Dar de baja una propiedad. Se propaga a sus clústeres, grupos, filtros, inspecciones y anotaciones.

{
  "siteUrl": "sc-domain:example.com",
  "confirm": true
}

confirm debe ser true; esto es irreversible.

create_topic_cluster escritura

Crear un clúster de temas de palabras clave en una propiedad.

{
  "siteUrl": "sc-domain:example.com",
  "name": "Pricing",
  "keywords": [
    "pricing",
    "cost",
    "plans"
  ]
}

Idempotente: un nombre existente devuelve ese clúster con alreadyExisted: true, no un error.

delete_topic_cluster escritura

Eliminar un clúster de temas por id.

{
  "clusterId": "00000000-0000-0000-0000-000000000000"
}

create_content_group escritura

Crear una partición de grupo de contenido. Las reglas coinciden con URLs por prefijo / contiene / regex / igual.

{
  "siteUrl": "sc-domain:example.com",
  "name": "Blog",
  "rules": [
    {
      "type": "prefix",
      "value": "https://example.com/blog/"
    }
  ]
}

color y description son opcionales; hasta 50 reglas.

delete_content_group escritura

Eliminar un grupo de contenido por id.

{
  "groupId": "00000000-0000-0000-0000-000000000000"
}

create_saved_filter escritura

Guardar un preset de filtro reutilizable para una propiedad.

{
  "siteUrl": "sc-domain:example.com",
  "name": "Non-branded, mobile",
  "filters": [
    {
      "dimension": "device",
      "operator": "equals",
      "value": "MOBILE"
    },
    {
      "dimension": "branded",
      "operator": "equals",
      "value": "non_branded"
    }
  ]
}

filters es la lista de filas de filtro que almacena el panel, en la forma que devuelve list_saved_filters. filterLogic es "and" (por defecto) u "or".

delete_saved_filter escritura

Eliminar un filtro guardado por id.

{
  "filterId": "00000000-0000-0000-0000-000000000000"
}

create_annotation escritura

Añadir una anotación de gráfico en una fecha (por ejemplo, un marcador de lanzamiento o campaña).

{
  "siteUrl": "sc-domain:example.com",
  "eventDate": "2026-05-15",
  "label": "Site redesign launched",
  "description": "New template rolled out across the blog.",
  "color": "#2563eb"
}

Omite siteUrl para una anotación a nivel de cuenta; description, category, color opcionales.

delete_annotation escritura

Eliminar una anotación de gráfico por id.

{
  "annotationId": "00000000-0000-0000-0000-000000000000"
}

submit_indexnow_urls escritura

Enviar hasta 100 URLs a IndexNow para la propiedad, después de verificar que el archivo de clave está en su lugar.

{
  "siteUrl": "sc-domain:example.com",
  "urls": [
    "https://example.com/new-page",
    "https://example.com/updated-page"
  ]
}

El archivo de clave se verifica por host ANTES de enviar cualquier cosa. Cuando definitivamente falta o es incorrecto, el lote no se envía en absoluto, el resultado es setup_incomplete y el mensaje nombra el archivo a publicar; no se escribe nada en el historial, porque un lote que nunca se envió no es un envío. Una verificación no concluyente (tiempo de espera, regla de bot) nunca bloquea. outcome es uno de submitted, pending_key_validation, rejected (IndexNow rechazó todo lo enviado) o setup_incomplete, y un lote mixto informa ambas partes en el mensaje. De lo contrario, el habitual 202 significa "aceptado, validación de clave pendiente", no entregado: los motores obtienen tu {key}.txt después y descartan el lote sin más aviso si no es accesible. Cada envío lleva un estado y un indicador accepted, y submitted cuenta solo lo que IndexNow aceptó.

submit_sitemap escritura

Enviar (o reenviar) una URL de sitemap ya publicada a Search Console para la propiedad.

{
  "siteUrl": "sc-domain:example.com",
  "sitemapUrls": [
    "https://example.com/sitemap_index.xml"
  ]
}

Registra un sitemap existente con Google — nunca genera ni aloja uno, por lo que el archivo ya debe estar publicado en esa URL (WordPress/Yoast, tu CMS, tu compilación). Cada URL debe estar en el host de la propiedad o en un subdominio. Hasta 20 por llamada, idempotente, y pone en cola una descarga en lugar de indexar cualquier cosa. Necesita acceso completo a Search Console (webmasters, no webmasters.readonly). Cada envío aceptado se lee de nuevo con list_sitemaps para que el resultado muestre lo que Google realmente registró; las advertencias, errores y recuentos indexados solo aparecen una vez que Google ha descargado el archivo.

bulk_inspect_urls escritura

Inspeccionar una lista de URLs secuencialmente y persistir cada resultado.

{
  "siteUrl": "sc-domain:example.com",
  "urls": [
    "https://example.com/a",
    "https://example.com/b"
  ]
}

Cuenta contra la cuota diaria de 2,000 inspecciones/propiedad (compartida con la interfaz); se detiene e informa URLs omitidas una vez que se alcanza el límite. Pasa hasta 25 URLs por llamada; conjuntos más grandes pertenecen a add_tracked_urls, que el Indexing Tracker inspecciona en segundo plano.

add_tracked_urls escritura

Añadir URLs al Indexing Tracker (crea el rastreador si es necesario). Hasta 1,800 URLs por propiedad.

{
  "siteUrl": "sc-domain:example.com",
  "urls": [
    "https://example.com/page-1",
    "https://example.com/page-2"
  ]
}

Las URLs deben pertenecer a la propiedad. Las nuevas URLs comienzan como "pending"; el cron por hora o check_tracked_url_now las inspecciona.

remove_tracked_urls escritura

Eliminar URLs del Indexing Tracker.

{
  "siteUrl": "sc-domain:example.com",
  "urls": [
    "https://example.com/page-1"
  ]
}

check_tracked_url_now escritura

Ejecutar una inspección de URL inmediata para hasta 10 URLs rastreadas y actualizar su estado e historial.

{
  "siteUrl": "sc-domain:example.com",
  "urls": [
    "https://example.com/page-1"
  ]
}

Cuenta contra la cuota diaria de 2,000 inspecciones/propiedad; devuelve un mensaje de cuota cuando se agota.

update_content_group escritura

Editar un grupo de contenido existente: su nombre, descripción, color o reglas de coincidencia.

{
  "groupId": "00000000-0000-0000-0000-000000000000",
  "name": "Blog"
}

Solo cambian los campos que pasas. Pasar rules REEMPLAZA toda la lista de reglas, así que lee las reglas actuales con list_content_groups primero si pretendes añadir una.

update_topic_cluster escritura

Editar el nombre o la lista de palabras clave de un clúster de temas.

{
  "clusterId": "00000000-0000-0000-0000-000000000000",
  "keywords": [
    "seo audit"
  ],
  "mode": "add"
}

modo: "replace" (por defecto, intercambia la lista), "add" (fusiona, deduplicado sin distinción de mayúsculas) o "remove" (elimina las palabras clave listadas).

update_saved_filter escritura

Renombrar un preset de filtro guardado y/o reemplazar su carga útil de filtro.

{
  "filterId": "00000000-0000-0000-0000-000000000000",
  "name": "Blog, non-branded"
}

Las filas de filtro se reemplazan por completo, no se fusionan; lee las filas actuales con list_saved_filters primero. Pasa filterLogic junto con ellas, o el preset se restablece a "and".

update_annotation escritura

Editar una anotación de gráfico que posees: su fecha, etiqueta, descripción, categoría o color.

{
  "annotationId": "00000000-0000-0000-0000-000000000000",
  "label": "Redesign launched"
}

El ámbito no se puede cambiar (una anotación a nivel de cuenta no se puede mover a una propiedad); elimínala y crea una nueva en su lugar.

create_shared_report escritura

Guardar una tabla de filas como un informe compartible y obtener su URL. Pasa las filas de otra herramienta más las columnas que describen qué campos mostrar.

{
  "title": "Top queries - January",
  "rows": [
    {
      "query": "seo tools",
      "clicks": 120,
      "impressions": 3400
    }
  ],
  "columns": [
    {
      "key": "query",
      "label": "Query",
      "type": "text"
    },
    {
      "key": "clicks",
      "label": "Clicks",
      "type": "number"
    }
  ]
}

PASO 1 DE 3: la URL no se abre para nadie (ni siquiera para ti) hasta que se concede el acceso. Luego create_report_client, luego manage_report_access. Hasta 50 informes por cuenta.

delete_shared_report escritura

Eliminar permanentemente un informe compartible guardado y cada concesión de cliente en él.

{
  "reportId": "00000000-0000-0000-0000-000000000000"
}

Rompe el enlace compartido para cualquiera que aún lo tenga. Encuentra el id con list_shared_reports.

create_report_client escritura

Añadir un contacto de cliente (una dirección de correo electrónico más un nombre opcional) al que luego se pueden conceder informes compartibles.

{
  "email": "client@example.com",
  "name": "Example Ltd"
}

No envía correo electrónico ni concede acceso por sí solo. Añadir una dirección que ya existe devuelve el cliente existente en lugar de fallar.

manage_report_access escritura

Conceder o revocar el acceso de cliente a un informe compartible guardado. Esto es lo que hace que un informe se pueda abrir en absoluto.

{
  "reportId": "00000000-0000-0000-0000-000000000000",
  "action": "grant",
  "clientIds": [
    "00000000-0000-0000-0000-000000000000"
  ]
}

NO envía un correo electrónico de notificación. Pasa al cliente la URL del informe (inician sesión con su correo electrónico y la aplicación les envía un enlace de inicio de sesión), o envíalo desde Cuenta > Informes compartidos en la aplicación, que tiene un botón Reenviar por cliente.

set_dashboard_visibility escritura

Mostrar u ocultar propiedades registradas en tu panel de GSC Wizard. La visibilidad también es lo que hace que una propiedad sea utilizable por las otras herramientas MCP.

{
  "siteUrls": [
    "sc-domain:example.com"
  ],
  "visible": true
}

Mostrar una propiedad consume una ranura del panel de tu plan y se rechaza cuando se alcanza el límite. Ocultar una no elimina datos. Las propiedades sincronizadas con ClickHouse siempre se muestran y no consumen ranura.

add_migration_redirects escritura

Guardar asignaciones de redirección (URL antigua a URL nueva) para una migración de sitio, vinculadas a la propiedad de origen A y la propiedad de destino B.

{
  "siteUrlA": "sc-domain:old.com",
  "siteUrlB": "sc-domain:new.com",
  "redirects": [
    {
      "fromUrl": "https://old.com/a",
      "toUrl": "https://new.com/a"
    }
  ],
  "label": "2026-replatform"
}

Las filas se AÑADEN, nunca se deduplican contra lo que ya está almacenado, por lo que reenviar la misma lista la almacena dos veces. Hasta 10,000 filas por llamada.

delete_migration_redirects escritura

Eliminar asignaciones de redirección guardadas, limitadas por etiqueta y/o el par de propiedades A/B.

{
  "label": "2026-replatform"
}

Eliminar TODAS las asignaciones en la cuenta requiere confirmDeleteAll: true. Previsualiza lo que se eliminaría con list_migration_redirects usando los mismos filtros primero.

update_indexnow_settings escritura

Establecer, rotar o borrar la clave API de IndexNow para una propiedad.

{
  "siteUrl": "sc-domain:example.com",
  "indexnowApiKey": "a1b2c3d4e5f6a7b8c9d0"
}

La clave debe tener 8-128 caracteres de letras, dígitos y guiones, Y publicarse en https://your-domain/<key>.txt, o los envíos se rechazan. Pasa clear: true para eliminarla.

run_feed_audit escritura

Poner en cola una auditoría de feed de Merchant Center para una propiedad: 21 comprobaciones deterministas sobre el catálogo sincronizado más un rastreo de las páginas de producto en los hosts aprobados por el propietario, puntuado 0-100. Devuelve un identificador de trabajo (runDate), nunca los resultados.

{
  "siteUrl": "sc-domain:example.com",
  "force": false
}

Solo pone en cola; la auditoría se ejecuta en el trabajador de la aplicación GSC Wizard y un catálogo grande puede tardar horas en rastrearse. enqueued: false con un skipReason significa que ya existe una ejecución para hoy o una completada dentro de la cadencia de 28 días (force: true anula la cadencia, nunca la regla de una por día). Continúa con get_feed_audit_results. Shopping está en lanzamiento limitado: la herramienta está habilitada solo para cuentas en lista de permitidos mientras la función está en fase de implementación, y no aparece en tools/list para otras cuentas.

Llamar a una herramienta directamente (curl)

La mayoría de los usuarios nunca necesitan esto; los clientes manejan el JSON-RPC por ti. Pero para probar una herramienta manualmente, envía una solicitud tools/call al endpoint (después de que el SDK haya abierto una sesión):

curl -X POST https://mcp.gscwizard.com/mcp \
  -H "Authorization: Bearer gscw_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "query_top_queries",
      "arguments": {
        "siteUrl": "sc-domain:example.com",
        "startDate": "2026-05-01",
        "endDate": "2026-05-28",
        "limit": 10
      }
    }
  }'

Solución de problemas

  • 401 no autorizado: el encabezado Authorization: Bearer falta, está mal formado, o la clave ha sido revocada o ha expirado.
  • Una herramienta de mutación falta o es rechazada: tu clave es de solo lectura. Crea una nueva clave de lectura y escritura.
  • 429 límite de velocidad excedido: las llamadas a herramientas están limitadas por cuenta a 60/minuto y 1,000/hora a través de MCP, y 180/minuto y 2,000/hora a través de la API REST, medidas por separado. La respuesta REST incluye un encabezado Retry-After (segundos); pausa y reintenta después de que transcurra. Los protocolos de enlace no cuentan para el límite.
  • Verificación de salud: GET https://mcp.gscwizard.com/health devuelve { "ok": true } cuando el servidor está activo.