GEO Tracker by DigestSEO
Realiza un seguimiento de las menciones de marca en siete superficies de búsqueda con IA. OSS gratuito; auditoría opcional lista para el cliente por 99 EUR.
Documentación
DigestSEO — Visibilidad IA MCP para SEO y GEO
Instalación rápida
Se ejecuta localmente sobre stdio con tus propias claves API — todos los datos permanecen en tu máquina (consulta la Política de privacidad). Configura al menos una clave de motor (OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, PERPLEXITY_API_KEY, XAI_API_KEY, SERPAPI_API_KEY); los motores sin clave se omiten de forma segura.
Runtime: Node.js 22.13+ (CI prueba Node 22 y 24).
Claude Desktop / cualquier cliente MCP (npx):
{
"mcpServers": {
"digestseo": {
"command": "npx",
"args": ["-y", "@digestseo/mcp-geo"],
"env": {
"OPENAI_API_KEY": "sk-...",
"GEMINI_API_KEY": "your_key_here"
}
}
}
}
ChatGPT (MCP remoto): ChatGPT no se conecta directamente a servidores MCP STDIO locales. Para ChatGPT, usa la configuración de MCP remoto autoalojado a continuación, o la configuración del túnel MCP seguro de OpenAI para un servidor que se ejecute en una máquina local/privada. El endpoint público geo-mcp.digestseo.com/mcp no es un servicio llave en mano sin clave para escaneos nuevos.
Perplexity Computer (MCP remoto): Perplexity Computer admite conectores MCP remotos personalizados en planes elegibles. Después de autoalojar mcp-geo, abre Configuración de cuenta > Conectores > + Conector personalizado, elige Remoto, nómbralo digestseo e ingresa la URL https://<worker-host>/mcp de tu propio despliegue. Usa la opción OAuth del conector para el flujo de Worker; si configuraste CONNECT_SECRET, completa esa verificación del navegador durante la conexión. No uses el endpoint público geo-mcp.digestseo.com/mcp como un servicio de escaneo llave en mano sin clave. Consulta la guía de conectores de Computer actual de Perplexity.
Claude Code:
claude mcp add --transport stdio digestseo -s user --env GEMINI_API_KEY=your_key_here -- npx -y @digestseo/mcp-geo
O instala la misma integración MCP local a través del marketplace de Claude Code controlado por el propietario de este repositorio:
/plugin marketplace add AKzar1el/mcp-geo
/plugin install digestseo-geo@digestseo-mcp
El plugin del marketplace usa el .mcp.json del repositorio para lanzar npx -y @digestseo/mcp-geo. Cero claves de proveedor son suficientes para el descubrimiento de herramientas; para escaneos respaldados por motores, haz disponibles solo las claves de proveedor que quieras al proceso de Claude Code. El comando directo claude mcp add anterior sigue siendo la opción más simple cuando quieres adjuntar claves de proveedor explícitamente a la configuración del servidor.
Codex CLI:
codex mcp add digestseo -- npx -y @digestseo/mcp-geo
El comando de cero claves es suficiente para el descubrimiento de herramientas. Agrega solo las claves de proveedor que quieras con opciones repetidas --env NAME=VALUE antes del -- cuando se necesiten escaneos respaldados por motores.
Amp CLI:
amp mcp add digestseo -- npx -y @digestseo/mcp-geo
Amp ejecuta esto como un servidor MCP STDIO local. El comando de cero claves es suficiente para el descubrimiento de herramientas; antes de escaneos respaldados por motores, haz disponibles solo las claves de proveedor que quieras al proceso de Amp o configúralas en la configuración local de MCP env de Amp en lugar de comprometer secretos. Consulta la guía de MCP actual de Amp.
OpenCode v2:
opencode mcp add digestseo --global -- npx -y @digestseo/mcp-geo
OpenCode v2 ejecuta esto como un servidor STDIO local. Omite --global para configuración solo de proyecto. Cero claves son suficientes para el descubrimiento de herramientas MCP. Para escaneos respaldados por motores, edita la configuración generada de OpenCode v2 y agrega solo las variables de proveedor que quieras bajo mcp.servers.digestseo.environment, mapeando cada una a una referencia de entorno como "OPENAI_API_KEY": "{env:OPENAI_API_KEY}"; mantén el valor secreto real en el entorno del proceso en lugar de en el archivo de configuración. Verifica la conexión con opencode mcp list. Consulta la guía de MCP de OpenCode v2 actual.
Mistral Vibe Code: agrega mcp-geo al ~/.vibe/config.toml a nivel de usuario o al ./.vibe/config.toml a nivel de proyecto:
[[mcp_servers]]
name = "digestseo"
transport = "stdio"
command = "npx"
args = ["-y", "@digestseo/mcp-geo"]
La entrada de cero claves es suficiente para el descubrimiento de herramientas. Para escaneos respaldados por motores, pasa solo las claves de proveedor que quieras a través de la configuración de entorno STDIO de Vibe o del entorno heredado por Vibe en lugar de comprometer secretos. Usa /mcp digestseo (o /mcp) en Vibe para verificar el servidor y las herramientas. Consulta la guía de servidores MCP actual de Mistral y la referencia de configuración de Vibe.
LibreChat: agrega mcp-geo a librechat.yaml como un servidor STDIO local:
mcpServers:
digestseo:
type: stdio
command: npx
args:
- -y
- '@digestseo/mcp-geo'
Reinicia LibreChat después de cambiar librechat.yaml. La entrada de cero claves es suficiente para el descubrimiento de herramientas MCP. Antes de escaneos respaldados por motores, expón solo las claves API de proveedor que pretendes usar al proceso de LibreChat en lugar de comprometer valores secretos en el archivo YAML. Consulta la guía de configuración de MCP actual de LibreChat y la guía de funciones de MCP.
Raycast AI: abre Instalar servidor MCP (o Administrar servidores MCP -> Instalar nuevo servidor), elige Entrada/Salida estándar, establece el Comando a npx y los Argumentos a -y y @digestseo/mcp-geo. La instalación de cero claves es suficiente para el descubrimiento de herramientas. Antes de escaneos respaldados por motores, agrega solo las claves de proveedor que quieras en los campos de Entorno de MCP de Raycast en lugar de codificarlas en archivos de proyecto compartidos. Reinicia Raycast si npx se agregó a PATH después de que Raycast se iniciara. Consulta el manual de MCP actual de Raycast.
Msty Studio: abre Toolbox -> Agregar nueva herramienta, elige STDIO / JSON y usa:
{
"command": "npx",
"args": ["-y", "@digestseo/mcp-geo"]
}
La herramienta de cero claves es suficiente para el descubrimiento de MCP. Para escaneos respaldados por motores, define solo las claves de proveedor que quieras en Entornos de Msty Studio y adjúntalas a la herramienta en lugar de almacenar secretos sin procesar en archivos compartidos. Msty Studio Desktop puede ejecutar la herramienta localmente; Studio Web necesita su conexión documentada de Desktop/Sidecar para herramientas MCP locales. Consulta la guía de Toolbox MCP actual de Msty Studio y la guía de entornos.
Zed: abre Configuración -> IA -> Servidores MCP, elige Agregar servidor -> Agregar servidor local y configura digestseo con el comando npx y los argumentos -y, @digestseo/mcp-geo. El servidor local de cero claves es suficiente para el descubrimiento de herramientas; para escaneos respaldados por motores, agrega solo las claves de proveedor que pretendes usar en el mapa env de MCP local de Zed en lugar de comprometer secretos en la configuración de proyecto compartida. Si ejecutas Ruta B en tu propio Worker, elige Agregar servidor remoto y usa https://<worker-host>/mcp; cuando no se configura un encabezado Authorization, Zed usa el flujo estándar de OAuth de MCP. No trates el endpoint público de DigestSEO como un servicio llave en mano de claves de proveedor. Consulta la guía de MCP actual de Zed.
TraeCode: abre Configuración -> MCP -> Agregar -> Agregar manualmente y pega esta configuración STDIO local, o guarda el mismo objeto mcpServers como .trae/mcp.json en un proyecto de confianza:
{
"mcpServers": {
"digestseo": {
"command": "npx",
"args": ["-y", "@digestseo/mcp-geo"]
}
}
}
TraeCode recomienda NPX/UVX para servidores MCP locales y admite valores env cuando los escaneos respaldados por motores necesitan claves de proveedor. La forma de cero claves es suficiente para el descubrimiento; mantén los secretos de proveedor sin procesar fuera del .trae/mcp.json a nivel de proyecto. TraeCode CLI también puede cargar ese archivo MCP a nivel de proyecto, o puedes agregar una entrada equivalente stdio a través de traecli config edit e inspeccionarla con /mcp. Consulta la configuración de MCP del IDE actual de TraeCode y la guía de MCP de CLI.
GitHub Copilot CLI:
copilot mcp add digestseo -- npx -y @digestseo/mcp-geo
La instalación base comienza con cero claves de proveedor para que el descubrimiento de herramientas funcione. Agrega solo las claves de motor que quieras con la opción --env NAME=VALUE de Copilot CLI antes de ejecutar escaneos.
Plugin de agente portátil (GitHub Copilot / VS Code / Kiro y otros clientes de Agent Plugins 1.0): este repositorio ahora incluye el par estándar de raíz plugin.json + mcp.json. GitHub Copilot CLI puede instalarlo directamente desde GitHub:
copilot plugin install AKzar1el/mcp-geo
En VS Code, ejecuta Chat: Instalar plugin desde fuente e ingresa https://github.com/AKzar1el/mcp-geo. En Kiro, usa Powers -> Agregar poder personalizado -> Importar poder desde GitHub con la misma URL del repositorio. El plugin portátil lanza npx -y @digestseo/mcp-geo; cero claves de proveedor son suficientes para el descubrimiento, mientras que los escaneos respaldados por motores heredan solo las claves de proveedor que intencionalmente haces disponibles al cliente anfitrión. Las rutas de instalación nativas existentes siguen siendo válidas.
Qoder CLI:
qoder mcp add digestseo -- npx -y @digestseo/mcp-geo
qoder mcp list
Qoder lanza esto como un servidor MCP STDIO local. El comando de cero claves es suficiente para el descubrimiento de herramientas; haz disponibles solo las claves de proveedor que quieras al proceso de Qoder antes de escaneos respaldados por motores. Si Qoder ya se está ejecutando, usa /mcp reload para redescubrir el servidor y las herramientas. Consulta la guía de servidores MCP actual de Qoder y la referencia de MCP.
Docker Agent: Docker Agent puede lanzar servidores MCP STDIO locales directamente desde el YAML del agente. Agrega este conjunto de herramientas al agente que debería usar mcp-geo:
toolsets:
- type: mcp
command: npx
args: ["-y", "@digestseo/mcp-geo"]
La forma de cero claves es suficiente para el descubrimiento de herramientas. Para escaneos respaldados por motores, agrega solo las claves de proveedor que necesites bajo el mapa env: del conjunto de herramientas (Docker Agent admite expansión ${env.NAME}) en lugar de comprometer valores secretos. Consulta la documentación de herramientas MCP locales actual de Docker.
goose: agrega mcp-geo como una extensión STDIO local en ~/.config/goose/config.yaml (macOS/Linux) o %APPDATA%\Block\goose\config\config.yaml (Windows):
extensions:
digestseo-geo:
type: stdio
name: digestseo-geo
enabled: true
cmd: npx
args: ["-y", "@digestseo/mcp-geo"]
timeout: 300
La extensión de cero claves es suficiente para el descubrimiento de herramientas. Antes de escaneos respaldados por motores, configura solo las variables de entorno de proveedor que quieras para esta extensión a través de la configuración de extensiones / almacenamiento de secretos de goose en lugar de poner claves API sin procesar en el archivo YAML. El mismo servidor también se puede agregar interactivamente con goose configure -> Agregar extensión -> Extensión de línea de comandos. Consulta la configuración de extensiones actual de goose y la referencia de configuración.
GitLab Duo CLI: las versiones actuales de GitLab Duo CLI pueden consumir marketplaces de plugins compatibles con Claude directamente. Registra este repositorio e instala el plugin digestseo-geo existente:
glab duo plugin marketplace add https://github.com/AKzar1el/mcp-geo.git
glab duo plugin install digestseo-geo@digestseo-mcp
El plugin instalado carga el mismo servidor MCP local npx -y @digestseo/mcp-geo desde .mcp.json. Cero claves de proveedor permiten el descubrimiento; haz disponibles solo las claves de proveedor que quieras al proceso de GitLab Duo CLI antes de escaneos respaldados por motores.
Factory Droid:
droid mcp add digestseo "npx -y @digestseo/mcp-geo"
droid mcp list
Droid ejecuta esto como un servidor MCP STDIO local. La instalación de cero claves es suficiente para el descubrimiento de herramientas; agrega solo las claves de proveedor que elijas en la configuración de MCP a nivel de usuario de Droid antes de escaneos respaldados por motores. Mantén los secretos de proveedor fuera de los archivos .factory/mcp.json a nivel de proyecto.
Amazon Q Developer (IDE): abre el panel de chat de Q Developer ? Herramientas ? +, elige STDIO, nombra el servidor digestseo, establece el Comando a npx y agrega Argumentos -y y @digestseo/mcp-geo. Agrega solo las variables de entorno de proveedor que quieras antes de ejecutar escaneos; cero claves aún permiten el descubrimiento de herramientas MCP.
JetBrains AI Assistant (IDE): abre Configuración > Herramientas > AI Assistant > Model Context Protocol (MCP) > Agregar, elige STDIO y usa:
{
"mcpServers": {
"digestseo": {
"command": "npx",
"args": ["-y", "@digestseo/mcp-geo"]
}
}
}
JetBrains AI Assistant admite servidores MCP STDIO y NPX locales. La forma de cero claves es suficiente para el descubrimiento de herramientas; antes de escaneos respaldados por motores, haz disponibles solo las claves de proveedor que quieras al proceso del IDE, o importa un servidor MCP de Claude ya configurado.
JetBrains Air: este repositorio ya incluye el .mcp.json estándar de raíz que lanza npx -y @digestseo/mcp-geo. En Air, abre Configuración > IA > Servidores MCP, habilita Soporte de MCP y Lanzar servidores MCP del espacio de trabajo, luego usa el alcance Espacio de trabajo para que Air reutilice ese archivo verificado. La configuración del repositorio no contiene secretos de proveedor y es suficiente para el descubrimiento de herramientas de cero claves. Los escaneos respaldados por motores aún requieren las claves de proveedor seleccionadas en el entorno del proceso del servidor local; mantenlas fuera de .mcp.json comprometido. Consulta la guía de servidores MCP de JetBrains Air.
Visual Studio 2022 17.14+ / Visual Studio 2026: Visual Studio usa su propia configuración de MCP con forma de servers. Crea %USERPROFILE%\.mcp.json para una instalación a nivel de usuario o <SOLUTIONDIR>\.mcp.json para una solución:
{
"servers": {
"digestseo": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@digestseo/mcp-geo"]
}
}
}
Abre GitHub Copilot Chat en modo Agente y usa el menú Herramientas para verificar que digestseo esté disponible. No se necesitan claves de proveedor para el descubrimiento de herramientas; antes de los escaneos basados en el motor, haz disponibles solo las claves de proveedor que quieras para el proceso de Visual Studio, en lugar de comprometer secretos en el archivo de solución. Consulta la configuración actual de MCP de Visual Studio de Microsoft.
Cursor:
Windsurf: abre Manage MCPs → View raw config y agrega el paquete stdio local:
{
"mcpServers": {
"digestseo": {
"command": "npx",
"args": ["-y", "@digestseo/mcp-geo"],
"env": {
"OPENAI_API_KEY": "sk-..."
}
}
}
}
Usa solo las claves de proveedor que quieras; cero claves aún permiten el descubrimiento de herramientas MCP.
Roo Code: abre MCP Servers > Edit Global MCP, o crea .roo/mcp.json para una instalación a nivel de proyecto, y agrega:
{
"mcpServers": {
"digestseo": {
"command": "npx",
"args": ["-y", "@digestseo/mcp-geo"]
}
}
}
Roo Code admite servidores MCP STDIO locales. La forma de cero claves es suficiente para el descubrimiento de herramientas; agrega solo las claves de proveedor que quieras antes de los escaneos. En Windows, si Roo no puede lanzar npx directamente, usa "command": "cmd" con "args": ["/c", "npx", "-y", "@digestseo/mcp-geo"], siguiendo el respaldo documentado de Roo para Windows.
VS Code: Instala el servidor stdio local en VS Code. La instalación base comienza sin claves de proveedor para que el descubrimiento de herramientas funcione; agrega solo las claves de API que quieras en tu configuración de usuario MCP de VS Code antes de ejecutar escaneos.
LM Studio: Agrega el servidor stdio local a LM Studio. La instalación base comienza sin claves de proveedor para que el descubrimiento de herramientas funcione; agrega solo las claves de API que quieras en mcp.json de LM Studio antes de ejecutar escaneos.
Kiro: para una instalación local de un clic, o abre la configuración MCP de usuario (
~/.kiro/settings/mcp.json) / configuración de espacio de trabajo (.kiro/settings/mcp.json) y agrega el paquete stdio local manualmente:
{
"mcpServers": {
"digestseo": {
"command": "npx",
"args": ["-y", "@digestseo/mcp-geo"]
}
}
}
Kiro admite servidores MCP STDIO locales en todas sus superficies actuales. La forma de cero claves es suficiente para el descubrimiento; agrega solo las variables de entorno de proveedor que quieras antes de los escaneos basados en el motor. Para uso remoto, auto-aloja el Worker a continuación y configura tu propia URL /mcp desplegada. El endpoint público geo-mcp.digestseo.com/mcp no es un servicio de escaneo nuevo sin claves listo para usar.
Extensión de Claude Desktop (un clic): descarga el paquete .mcpb desde la última versión y haz doble clic en él — Claude Desktop solicita las claves de API.
Primera ejecución: pide a tu cliente que "rastree acme.com como marca acme, luego actualícela" — track_brand crea la marca con prompts generados, refresh_brand ejecuta el primer escaneo, check_visibility muestra las puntuaciones.
Agentes de IA que instalan este servidor: sigue llms-install.md. ¿Prefieres un servidor remoto con auto-actualización por cron? Auto-aloja en Cloudflare Workers a continuación.
mcp-geo es un rastreador de visibilidad de IA de código abierto que mide con qué frecuencia tu marca es citada por ChatGPT, Claude, Perplexity, Gemini, Grok, Google AI Overviews y Google AI Mode. Es el equivalente de GEO (Optimización de Motores Generativos) y AEO (Optimización de Motores de Respuesta) de Google Search Console — construido como un servidor MCP para que puedas consultar tus datos de visibilidad de IA directamente dentro de ChatGPT a través de una aplicación MCP remota configurada, Claude.ai, Claude Desktop, Claude Code, GitHub Copilot CLI, Cursor, Codex CLI, o cualquier cliente compatible con MCP.
Página de producto canónica: DigestSEO mcp-geo — Servidor MCP de Visibilidad de IA
Caso de estudio de ingeniería: Suite MCP de DigestSEO — Visibilidad de IA, Search Console, validación web e inteligencia de tendencias
¿Necesitas una línea base lista para el cliente sin ejecutar el stack tú mismo? La Auditoría de Visibilidad de IA mcp-geo cuesta EUR 99 una sola vez: una marca, hasta tres competidores, 20 prompts de intención de compra, verificaciones en hasta cinco superficies de IA compatibles donde los proveedores configurados devuelven resultados utilizables, evidencia de citas y un memo de acciones priorizadas. El paquete de código abierto sigue siendo gratuito.
Ve la prueba primero: Abre el informe de muestra generado a través de mcp-geo para ver el estilo de salida y la profundidad de la evidencia antes de solicitar la auditoría.
¿Listo para solicitarla? Abre un correo prellenado con tu marca/dominio y hasta tres competidores. No se requiere suscripción ni llamada de ventas.
Entrega de pago: Después de confirmar el ajuste y el alcance, respondo con las instrucciones normales de factura/pago.
Metodología: Los mismos 20 prompts de intención de compra se ejecutan como un diagnóstico puntual y se informan por motor, con evidencia de citas/fuentes cuando esté disponible. La auditoría es una instantánea observada, no una promesa de ranking propietario ni un pronóstico garantizado.
¿Quieres el protocolo antes de comprar? Lee la metodología de la Auditoría de Visibilidad de IA, incluidos el alcance, la cobertura de motores, los límites de interpretación y lo que la auditoría no afirma.
¿Prefieres cero configuración? Prueba la versión alojada en digestseo.com — infraestructura gestionada de Cloudflare, sin claves de API que gestionar, multi-marca, actualización programada, interfaz web. La lista de espera está abierta. Únete a la lista de espera →
Qué produce
Conéctate vía MCP, pide a Claude "Ejecuta un análisis de visibilidad de IA en [mi marca]", y en 90 segundos obtienes un memo de calidad de estratega basado en datos reales por motor:
Ver el informe completo incluyendo brechas de contenido, recomendaciones de motores y síntesis →
¿Quieres reproducir la misma estructura de evidencia primero con tus propios datos? Usa el prompt de informe reutilizable de Auditoría de Visibilidad de IA.
El informe anterior fue generado por Claude a través del servidor MCP digestseo-mcp. La conversación encadenó cinco herramientas alojadas — visibility.check, visibility.compare, visibility.citations (Perplexity + Claude) y visibility.content_gaps — para producir un análisis de 4 motores con extractos de citas y un memo de estrategia de 3 recomendaciones.
Novedades
[0.3.21] - 22 de septiembre de 2026
- MCP alojado sin estado: el tráfico
/mcpprotegido por OAuth ahora usa la rutacreateMcpHandlerdel SDK-v2 de Cloudflare con compatibilidad heredada sin estado y validación explícita de Host/Origin, mientras que el antiguo enlace de Durable Object permanece solo como una retención de migración conservadora. - Contexto de herramientas más ligero: las doce herramientas MCP ahora exponen descripciones concisas basadas en ejemplos y orientación completa de parámetros de entrada, reduciendo la sobrecarga de contexto del cliente y haciendo más clara la selección de herramientas.
[0.3.20] - 22 de septiembre de 2026
- Solicitudes de proveedor limitadas: las llamadas externas a proveedores de IA y SerpAPI ahora expiran después de 90 segundos en lugar de permitir que una API ascendente estancada cuelgue un escaneo indefinidamente.
- Escaneos manuales de Worker duraderos: las solicitudes
/admin/run-liveautenticadas pueden establecerwait_for_completion: truepara que las actualizaciones manuales/de operador permanezcan adjuntas hasta que el trabajo del motor de servicio vinculado termine.
[0.3.19] - 22 de septiembre de 2026
- Google AI Mode: opta con
SERPAPI_AI_MODE_ENABLED=truepara medir Google AI Mode por separado a través de SerpAPI, incluida la evidencia de citas/fuentes cuando se devuelva. - Correcciones seguras de marcas rastreadas: los usuarios MCP locales pueden llamar a
update_brandpara cambiar identidad, competidores, alias, exclusiones o cadencia de actualización sin reemplazar prompts o ejecuciones históricas. - Programación manual: establece
refresh_frequencyamanualpara pausar los escaneos programados auto-alojados mientras mantienes disponiblerefresh_brandexplícito.
[0.3.18] - 21 de septiembre de 2026
- Cobertura de visibilidad de Grok: opta con XAI_API_KEY para medir respuestas fundamentadas de Grok a través de xAI Web Search junto con ChatGPT, Claude, Perplexity, Gemini y Google AI Overviews.
[0.3.17] - 21 de septiembre de 2026
- Conjuntos de medición definidos por el usuario exactos: los usuarios MCP locales ahora pueden llamar a
set_promptspara reemplazar los prompts activos de una marca con 1-50 preguntas de compra acordadas mientras preservan las ejecuciones históricas; conjuntos idénticos repetidos son una no-operación.
[0.3.16] - 21 de septiembre de 2026
- Compatibilidad de Gemini para proyectos nuevos: los escaneos de Gemini ahora usan por defecto
gemini-3.1-flash-lite, evitando la restricción de acceso de Gemini 2.5 que Google aplica a algunos proyectos nuevos mientras preserva la misma integración de GenerateContent.
[0.3.15] - 20 de septiembre de 2026
- Errores de configuración de proveedor más claros: una solicitud de actualización explícita para un motor no configurado ahora nombra el motor no disponible y explica cómo recuperarse en lugar de informar que no hay motores disponibles en absoluto.
- Incorporación más amplia de clientes locales: la configuración de copiar y pegar ahora cubre Roo Code, Codex CLI y OpenCode v2 además de los clientes MCP existentes.
- Enlaces README instalados confiables: los lectores de paquetes npm se dirigen a URLs duraderas de GitHub para documentación y activos de informes que se excluyen intencionalmente del tarball.
[0.3.14] - 20 de septiembre de 2026
- Entradas de medición inspeccionables: los usuarios MCP locales ahora pueden llamar a
list_promptspara revisar el conjunto exacto de prompts de intención de compra activos para una marca rastreada sin regenerarlo ni cambiarlo. - Incorporación correcta de ChatGPT: la guía de ChatGPT ahora usa un servidor MCP remoto configurado o OpenAI Secure MCP Tunnel para servidores locales/privados en lugar de anunciar el registro directo local STDIO no compatible.
[0.3.13] - 20 de septiembre de 2026
- Evidencia de citas más fiel: get_citations ahora preserva la URL exacta de la página citada nativa del motor, incluidos la ruta y la consulta, cuando el proveedor devuelve una.
- Metadatos actuales de la galería CLI de Gemini: el manifiesto de la extensión ahora permanece sincronizado en versión con el paquete, evitando etiquetas de versión de galería obsoletas después del lanzamiento.
[0.3.12] - 20 de septiembre de 2026
- Mejor guía de flujo de trabajo de agentes: las respuestas de inicialización MCP locales y alojadas ahora incluyen instrucciones concisas a nivel de servidor para el flujo correcto de marca → actualización → visibilidad, el comportamiento de actualización alojada asíncrona y la semántica de motores no disponibles.
[0.3.11] - 19 de septiembre de 2026
- Seguimiento programado más confiable: la frescura por motor y la expansión de motores vencidos mantienen a los proveedores obsoletos actualizándose sin volver a escanear innecesariamente los frescos, mientras que las marcas pueden elegir cadencia diaria o semanal.
- Manejo de solicitudes más seguro: las selecciones de motores duplicadas se deduplican en la actualización alojada y las lecturas de visibilidad, y la siembra de marcas alojadas rechaza valores de cadencia de actualización inválidos antes de la persistencia.
- Metadatos completos de Claude Desktop: el manifiesto MCPB ahora declara las nueve herramientas locales fijas, incluidas
track_brand,list_brandsygenerate_prompts, coincidiendo con el servidor stdio real expuesto después de la instalación.
[0.3.10] - 19 de septiembre de 2026
- Actualizaciones BYOK más seguras: los nombres de motores duplicados se deduplican antes del despacho del proveedor para que una solicitud no pueda activar accidentalmente escaneos duplicados o cargos de proveedor.
- Contratos MCP más sólidos: las salidas estructuradas de prompt ganador/perdedor y brecha de contenido ahora publican esquemas concretos en lugar de registros opacos, mejorando la validación del lado del cliente y la interoperabilidad de agentes.
- Mejores instalaciones de Registry: los metadatos del Official MCP Registry ahora anuncian las cinco claves de API de proveedor compatibles como configuración secreta opcional para el paquete stdio npm.
[0.3.9] - 19 de septiembre de 2026
- Frescura de instantánea transparente: las instantáneas de visibilidad ahora exponen la marca de tiempo de observación de cada motor para que los datos de motores más antiguos no puedan confundirse con resultados uniformemente frescos.
- Tendencias históricas auditables: el historial de visibilidad ahora incluye el denominador de prompts utilizables, el recuento de menciones de marca y el tiempo de observación detrás de cada puntuación por motor.
[0.3.8] - 19 de septiembre de 2026
- Evidencia de auditoría más confiable: las comparaciones de competidores ahora honran su ventana de varios días solicitada en todas las ejecuciones utilizables y devuelven recuentos exactos de menciones; los extractos de citas y los respaldos de brechas de contenido sin proveedor se basan en la misma evidencia subyacente.
- Mayor alcance de instalación local: se agregó la configuración del IDE Amazon Q Developer para el paquete stdio local existente.
[0.3.7] - 19 de septiembre de 2026
- Recuento exacto de prompts de auditoría: la generación de prompts ahora persiste exactamente el número solicitado de prompts únicos o deja intacto el conjunto de prompts existente, protegiendo el alcance fijo de 20 prompts de la auditoría de pago.
[0.3.6] - 18 de septiembre de 2026
- Escaneos de ChatGPT fundamentados: la visibilidad en vivo de ChatGPT utiliza búsqueda web, y se endureció la puntuación de menciones de dominios similares.
- Mayor alcance de instalación local: se agregaron metadatos de Gemini CLI además de rutas de instalación de VS Code y LM Studio con un clic.
[0.3.5] - 17 de septiembre de 2026
- Corrección de proveedor/entorno de ejecución: se migró Perplexity a la Agent API y se mantuvieron las instalaciones de plugins en el paquete stdio local en lugar del Worker público no configurado.
- Confianza/preparación: se agregó divulgación de privacidad propia, empaquetado MCPB solo para producción y fórmulas transparentes de puntuación de auditoría.
[0.3.4] - 15 de septiembre de 2026
- Portabilidad MCPB de Claude Desktop: el paquete ya no incluye binarios nativos de
better-sqlite3; el almacenamiento local utilizanode:sqliteintegrado en Node.js 22.13+. - Precisión del registro: los metadatos oficiales ahora anuncian solo el paquete npm stdio, mientras que el endpoint público alojado no es un servicio de escaneo nuevo configurado llave en mano.
[0.3.3] - 10 de septiembre de 2026
- Auditoría única opcional: el paquete de código abierto sigue siendo gratuito; los equipos que deseen una base lista para el cliente pueden solicitar la Auditoría de Visibilidad de IA mcp-geo por EUR 99 desde la CTA anterior.
- Ruta de solicitud con menor fricción: el README ahora abre un correo electrónico precargado y marcado con la fuente, mientras que los detalles de la auditoría permanecen disponibles en
https://geo-mcp.digestseo.com/audit.
[0.3.2] — 27 de julio de 2026
- Paquete con ámbito publicado:
@digestseo/mcp-geocon metadatos sincronizados de Worker, MCP Registry y MCPB. - Metadatos de herramientas alojadas: espacios de nombres de
visibility.*con esquemas de entrada/salida tipados; los nombres de herramientas stdio locales permanecen planos. - Distribución e implementación: configuración dedicada de D1 de
mcp-geo-db, metadatos de plugins de Cursor y Claude Code, y pines de dependencias de producción corregidos.
[0.3.0] — Julio de 2026
- CLI stdio local en npm (
npx -y @digestseo/mcp-geo): las mismas herramientas MCP respaldadas por una base de datos SQLite local (~/.digestseo/digestseo.sqlite) — no se necesita cuenta de Cloudflare. Los motores se ejecutan en línea con tus propias claves API. - Herramientas locales de gestión de marcas (solo CLI):
track_brand,list_brands,generate_prompts. Las implementaciones de Workers mantienen estas detrás de las rutas/admin/*protegidas porX-Seed-Secret. - Núcleo independiente del entorno de ejecución (
src/core/) compartido por el Worker y el CLI, con un contrato deDbimplementado por adaptadores D1 y better-sqlite3. Todas las correcciones de precisión y seguridad de 0.2.1 se trasladan a ambos entornos de ejecución. - Metadatos de distribución:
server.jsonoficial del MCP Registry, extensión de escritorio MCPB (paquete.mcpb), Dockerfile,llms-install.mdpara agentes de IA, flujo de trabajo de publicación de versiones.
[0.2.1] — Junio de 2026
- Puerta
CONNECT_SECRETopcional en el flujo OAuth. De forma predeterminada, la compilación OSS completa automáticamente/authorizepara cualquier cliente MCP que conozca la URL de tu worker — cualquiera que encuentre la URL puede conectarse y llamar avisibility.refresh, gastando los créditos de API de tu motor. EstableceCONNECT_SECRETy el paso del navegador en el flujo de conexión ahora lo solicita antes de emitir un token. Consulta SECURITY.md. - Coincidencia de citas precisa. Las menciones de marcas/competidores ahora requieren límites de palabra (
acmeya no coincide con "acmeshop"), y las verificaciones de citas vinculadas requieren el dominio exacto o un subdominio (notacme.comya no cuenta como un enlace aacme.com). aliasesyexclude_termspor marca. Los alias siempre cuentan como una mención; los términos de exclusión suprimen la coincidencia de palabra simple en el nombre de la marca y la raíz del dominio — así, la marca "Monday" deja de coincidir con "monday" el día de la semana, mientras quemonday.comsigue contando. Aplicamigrations/0005_brand_alias_exclude.sql; las marcas existentes se comportan exactamente como antes.- Consistencia de
visibility.history. Las ejecuciones parcialmente completadas ahora cuentan en el historial (coincidiendo con el comportamiento de 0.2.0 devisibility.check), y las ejecuciones completamente fallidas ya no aparecen como puntuaciones falsas de cero. - CI + pruebas unitarias. GitHub Actions ejecuta
tsc --noEmitmás un conjunto de pruebas unitarias de funciones puras (npm run test:unit) que cubren la coincidencia de menciones, la extracción de citas y la agregación de puntuaciones en cada push. - Los documentos ahora recomiendan OpenAI + Anthropic como el par de motores inicial — la capacidad de Gemini varía según el modelo, el proyecto y el nivel de uso, por lo que la variabilidad de cuotas específica del proveedor podría producir datos engañosos en la primera ejecución como la ruta documentada más económica.
- Comparación de tiempo constante para
SEED_SECRET/CONNECT_SECRET.
[0.2.0] — Mayo de 2026
- Fan-out HTTP por motor.
/admin/run-liveahora crea una fila de ejecuciones por motor y se auto-consulta/admin/run-engineuna vez por motor. Cada motor se ejecuta en su propia invocación de worker con su propio presupuesto de 50 sub-solicitudes del plan gratuito — un fan-out de invocación única solía superar el límite a mitad de ejecución y perder la mitad de las filas. - Enlace de servicio (
env.SELF) despacha el fan-out por motor a través de la infraestructura interna de Cloudflare en lugar de una consulta de URL pública, evitando la protección "Worker se llamó a sí mismo" (error 1042) que bloquea silenciosamente esta última. - Columna de estado en
prompt_responses(ok/failed/skipped) máserror_message. Las llamadas a motores fallidas solían escribir filasraw_response='ERROR: ...'que la puntuación posterior trataba como aciertos reales de cero menciones; ahora se excluyen explícitamente. - Inserciones resistentes a FK.
/admin/run-engineINSERT OR IGNOREsu fila de ejecuciones antes de persistir — D1 es eventualmente consistente entre regiones periféricas, y elINSERT INTO runsascendente de/admin/run-liveno siempre se replica antes de que llegue la llamada al motor descendente. El IGNORE hace que el FK sea feliz de cualquier manera. - Lote D1 masivo. Cada motor recopila sus 20 resultados de prompts en memoria y luego vacía inserciones + escrituras de caché + el
UPDATE runs SET status='completed'final en una sola llamadaD1.batch(). Reduce el recuento de sub-solicitudes por invocación de ~89 a ~26. - Consultas de visibilidad relajadas.
getLatestCompletedRunse ancla enEXISTS(ok rows)en lugar destatus='completed', por lo que las ejecuciones parcialmente completadas aún muestran sus datos en la salida de la herramienta MCP en lugar de desaparecer silenciosamente. - Nueva ruta de administración
POST /admin/cleanup-failed-runspara la eliminación única de filas heredadas contaminadas después de migrar a 0004.
[0.1.1] — Mayo de 2026
- La instalación manual ahora es la ruta canónica. Se eliminó el script de configuración bash poco confiable; SETUP.md es autónomo y se puede copiar y pegar, con cada indicación interactiva de wrangler documentada en línea.
[0.1.0] — Mayo de 2026
- Lanzamiento público inicial.
- Soporte de 5 motores: ChatGPT (
gpt-4o-mini), Claude (claude-haiku-4-5), Perplexity (sonar), Gemini (gemini-2.5-flash-lite) y Google AI Overviews (a través de SerpAPI). - 6 herramientas MCP alojadas:
visibility.check,visibility.history,visibility.compare,visibility.citations,visibility.content_gaps,visibility.refresh. - Los motores son opcionales según las claves API que proporciones — establece solo las credenciales que tengas, el resto se omite correctamente.
- Cloudflare Cron Trigger que actualiza automáticamente las marcas rastreadas cada 6 horas, respetando el
refresh_frequencypor marca (diario/semanal). - Almacenamiento respaldado por D1 para marcas, prompts, ejecuciones, citas y una caché de prompts compartida.
¿Qué Puede Hacer Esto?
- Ver qué herramientas de IA citan tu marca y cuáles no — obtén un desglose por motor de quién te cita para consultas de intención de compra.
- Rastrear la visibilidad de IA semanalmente, automáticamente — el Cron Trigger integrado vuelve a ejecutar escaneos en la cadencia que configures por marca.
- Comparar tu visibilidad de IA con la de los competidores — porcentajes de participación de voz, prompts que ganas, prompts que ellos ganan.
- Encontrar brechas de contenido — recomendaciones sintetizadas por Claude-Haiku basadas en tus prompts perdedores reales.
- Usarlo dentro de conversaciones de Claude.ai — agrega la URL del Worker implementado como conector MCP personalizado y pregunta en lenguaje natural.
- Autoalojado en tu propia cuenta de Cloudflare — tus claves API, tus datos, tu límite de costos. Los niveles gratuitos de Workers + D1 cubren una sola marca con actualizaciones diarias.
Consulta el informe de ejemplo anterior para ver cómo se ve esto en la práctica.
Herramientas Disponibles
Las seis capacidades de análisis se comparten entre ambos transportes, pero los nombres MCP expuestos son intencionalmente específicos del transporte: las conexiones alojadas/Worker usan el espacio de nombres visibility.*, mientras que el paquete stdio local usa nombres planos.
| Alojado / Worker | stdio local | Qué hace | Qué proporcionas |
|---|---|---|---|
visibility.check | check_visibility | Instantánea de visibilidad de IA más reciente en todos los motores configurados para una marca rastreada, con puntuaciones por motor, prompts ganadores y prompts perdedores. | brand_id, filtro opcional engines[] |
visibility.history | get_visibility_history | Historial de series temporales de visibilidad general y por motor, agrupado diaria o semanalmente. | brand_id, days opcional (predeterminado 30), granularity opcional (daily/weekly) |
visibility.compare | compare_competitors | Comparación de participación de voz contra dominios de competidores, con prompts que ganas y prompts que ellos ganan. | brand_id, competitor_domains[] opcional, days opcional |
visibility.citations | get_citations | Los eventos de citas reales — prompt, motor, extracto de respuesta, tipo de cita, URL de marca cuando está presente. | brand_id, days opcional, filtro engine opcional |
visibility.content_gaps | get_content_gaps | Recomendaciones de contenido priorizadas generadas por Claude-Haiku dirigidas a tus prompts perdedores. | brand_id, max_recommendations opcional (1-10) |
visibility.refresh | refresh_brand | Activar manualmente un escaneo nuevo en cada motor cuya clave API esté configurada. | brand_id, filtro engines[] opcional |
El CLI stdio local (npx, extensión de escritorio, Docker) además proporciona gestión de marcas — en una implementación de Workers, las mismas operaciones viven detrás de las rutas /admin/* protegidas por X-Seed-Secret:
| Herramienta (solo CLI local) | Qué hace | Qué proporcionas |
|---|---|---|
track_brand | Comenzar a rastrear una marca: la crea localmente y genera su conjunto de prompts de intención de compra (Claude Haiku cuando ANTHROPIC_API_KEY está configurado, tres prompts iniciales en caso contrario). | brand_id, name, domain, category opcional, competitors[], aliases[], exclude_terms[], prompt_count, refresh_frequency (daily/weekly/manual, predeterminado weekly) |
update_brand | Corregir el dominio, nombre, categoría, competidores, alias, exclusiones o cadencia de actualización de una marca existente sin reemplazar prompts activos o ejecuciones históricas. Establece la cadencia a manual para pausar los escaneos programados del Worker mientras mantienes disponible la actualización manual. | brand_id más cualquier campo a cambiar |
list_brands | Listar marcas rastreadas con dominios, competidores, alias, exclusiones y recuentos de prompts activos. | — |
list_prompts | Inspeccionar los prompts activos exactos de intención de compra para una marca rastreada sin cambiarlos. | brand_id |
set_prompts | Reemplazar el conjunto de prompts activos con preguntas de compra exactas proporcionadas por el usuario mientras se preservan las ejecuciones históricas. | brand_id, prompts[] (1-50 preguntas únicas) |
generate_prompts | Regenerar el conjunto de prompts de una marca a través de Claude Haiku (reemplaza prompts activos, mantiene el historial). | brand_id, count opcional (predeterminado 20) |
Primeros Pasos
Paso 1 — Obtén claves API
Los motores son opcionales. Elige los que quieras; el resto se omite silenciosamente.
- OpenAI — Motor ChatGPT (
gpt-5-search-api) con búsqueda web. OpenAI actualmente factura la búsqueda web a $10 por cada 1,000 llamadas más los cargos por tokens del modelo; consulta precios de API y claves de API. - Anthropic — Motor Claude, además de generación de prompts y análisis de brechas de contenido (ambos usan Claude Haiku). ~€0.0002 por prompt. Los créditos de prueba gratuitos suelen ser suficientes para evaluar. console.anthropic.com
- Google AI Studio (Gemini) — Motor Gemini (
gemini-3.1-flash-lite). Google actualmente ofrece uso de tokens de nivel gratuito para este modelo, mientras que el uso de pago se factura por tokens. Los límites de tasa varían según el modelo, el proyecto y el nivel de uso, y Google dice que la capacidad real puede variar; verifica los límites activos de tu proyecto en AI Studio en lugar de asumir un RPM/RPD fijo. Consulta precios de Gemini y límites de tasa. - Perplexity — Motor Perplexity Sonar. ~€0.005-0.008 por prompt. Solo de pago. perplexity.ai/settings/api
- xAI — Motor Grok (
grok-4.6) con fundamentación obligatoria de Web Search. xAI actualmente fija el precio de Web Search en $5 por cada 1,000 llamadas más tokens del modelo. console.x.ai · precios - SerpAPI — Google AI Overviews más el modo Google AI Mode opcional. Una sola clave de SerpAPI alimenta ambos, pero AI Mode está deliberadamente desactivado por defecto porque añade una búsqueda de pago separada por prompt; establece
SERPAPI_AI_MODE_ENABLED=truecuando quieras esa séptima superficie. API de Google AI Mode · serpapi.com/dashboard
Par inicial recomendado: OpenAI + Anthropic (Claude). OpenAI proporciona visibilidad de ChatGPT fundamentada mediante búsqueda web y factura las llamadas de búsqueda más los tokens del modelo; Anthropic también impulsa la generación de prompts y el análisis de brechas de contenido. Revisa los precios actuales del proveedor antes de estimar el costo recurrente del escaneo. Añade Gemini, Perplexity, Grok o SerpAPI deliberadamente cuando quieras más cobertura; la capacidad de Gemini varía según el modelo, el proyecto y el nivel de uso, y Google AI Overviews a menudo no devuelve ningún resultado (puntuado como cero). Google AI Mode es una llamada separada de SerpAPI y permanece deshabilitado hasta SERPAPI_AI_MODE_ENABLED=true, evitando que una configuración existente de SerpAPI duplique silenciosamente las llamadas de búsqueda de Google.
Paso 2 — Despliega en tu cuenta de Cloudflare
El despliegue son 6 comandos y toma unos 5 minutos. Consulta SETUP.md para la guía completa con explicaciones y solución de problemas, o sigue la versión rápida a continuación.
# 1. Install deps
npm install
# 2. Log in to Cloudflare
npx wrangler login
# 3. Copy the config template
cp wrangler.example.jsonc wrangler.jsonc
# 4. Create KV namespace + D1 database, paste each printed id into wrangler.jsonc
npx wrangler kv namespace create OAUTH_KV
npx wrangler d1 create mcp-geo-db
# 5. Set the required secret + at least one engine API key
# Recommended starting pair — OpenAI uses web search plus model tokens; check current pricing:
npx wrangler secret put SEED_SECRET
npx wrangler secret put CONNECT_SECRET # recommended — gates who can connect (see SECURITY.md)
npx wrangler secret put OPENAI_API_KEY # ChatGPT engine
npx wrangler secret put ANTHROPIC_API_KEY # Claude engine + prompt generation
# 6. Apply migrations and deploy
npx wrangler d1 migrations apply mcp-geo-db --remote
npx wrangler deploy
Después de desplegar tu propio Worker, usa la URL /mcp de ese despliegue como
endpoint remoto, por ejemplo:
https://YOUR-WORKER-NAME.YOUR-SUBDOMAIN.workers.dev/mcp
Usa la URL de tu Worker configurado para integraciones de directorio o cliente. El
endpoint público geo-mcp.digestseo.com/mcp no es un sustituto alojado sin clave
para un despliegue con credenciales de proveedor de motor.
Paso 3 — Conéctate a tu cliente MCP
Después de que wrangler deploy termine, obtienes una URL como
https://digestseo-mcp.YOUR-SUBDOMAIN.workers.dev.
Claude.ai (web)
Configuración → Conectores → Añadir conector personalizado. Pega:
https://YOUR-WORKER-NAME.YOUR-SUBDOMAIN.workers.dev/mcp
Completa el handshake OAuth. El conector se vuelve verde cuando está listo.
ChatGPT (MCP remoto)
Las aplicaciones MCP personalizadas de ChatGPT se conectan a servidores MCP remotos, así que usa la URL /mcp
del despliegue de tu Worker configurado anteriormente. En ChatGPT, habilita
el Modo Desarrollador/aplicaciones personalizadas para tu espacio de trabajo y añade esa URL MCP remota. La disponibilidad
depende de tu plan de ChatGPT y la política de administración del espacio de trabajo; el soporte MCP actual de OpenAI
no requiere nombres de herramientas especiales search o fetch.
https://YOUR-WORKER-NAME.YOUR-SUBDOMAIN.workers.dev/mcp
ChatGPT (local/privado mediante OpenAI Secure MCP Tunnel)
OpenAI Secure MCP Tunnel es el puente compatible cuando quieres que ChatGPT use
el paquete stdio local sin exponerlo como un servidor HTTPS público. Crea un
túnel en OpenAI Platform primero, luego mantén tunnel-client ejecutándose en la misma
máquina que lanza mcp-geo. Necesitas un ID de túnel, una clave de API de runtime del túnel,
y permisos de túnel/modo desarrollador de ChatGPT para el espacio de trabajo objetivo.
Haz disponibles las claves de proveedor que quieras usar para el proceso mcp-geo, luego inicializa un perfil de túnel con el comando del paquete local:
tunnel-client init --sample sample_mcp_stdio_local --profile digestseo --tunnel-id tunnel_0123456789abcdef0123456789abcdef --mcp-command "npx -y @digestseo/mcp-geo"
tunnel-client doctor --profile digestseo --explain
tunnel-client run --profile digestseo
Mientras tunnel-client run esté saludable, crea una aplicación en modo desarrollador en ChatGPT,
elige Tunnel como tipo de conexión y selecciona ese túnel. Esta ruta es
para uso privado/local; no publica mcp-geo como una aplicación pública de ChatGPT.
Sigue la guía actual de Secure MCP Tunnel de OpenAI para la creación de túneles, permisos, descargas y solución de problemas.
Claude Code
claude mcp add --transport http digestseo https://YOUR-WORKER-NAME.YOUR-SUBDOMAIN.workers.dev/mcp
Luego ejecuta /mcp dentro de Claude Code para completar el handshake OAuth en tu navegador.
Claude Desktop
Edita la configuración de tu Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"digestseo": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://YOUR-WORKER-NAME.YOUR-SUBDOMAIN.workers.dev/mcp"
]
}
}
}
Reinicia Claude Desktop después de editar.
Cursor
Edita ~/.cursor/mcp.json:
{
"mcpServers": {
"digestseo": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://YOUR-WORKER-NAME.YOUR-SUBDOMAIN.workers.dev/mcp"
]
}
}
}
Reinicia Cursor.
Codex CLI
Añade a ~/.codex/config.toml:
[mcp_servers.digestseo]
command = "npx"
args = [
"-y",
"mcp-remote",
"https://YOUR-WORKER-NAME.YOUR-SUBDOMAIN.workers.dev/mcp",
]
Referencia de Variables de Entorno
| Variable | Requerida | Predeterminado | Descripción |
|---|---|---|---|
OPENAI_API_KEY | opt-in | sin establecer | Habilita el motor ChatGPT. Sin ella, ChatGPT se omite. |
ANTHROPIC_API_KEY | opt-in | sin establecer | Habilita el motor Claude y el generador de prompts + analizador de brechas de contenido impulsados por Claude Haiku. |
GEMINI_API_KEY | opt-in | sin establecer | Habilita el motor Gemini. Los límites de tasa varían según el modelo, el proyecto y el nivel de uso; verifica los límites activos del proyecto en Google AI Studio (consulta Solución de Problemas). |
PERPLEXITY_API_KEY | opt-in | sin establecer | Habilita el motor Perplexity Sonar. Solo de pago. |
XAI_API_KEY | opt-in | sin establecer | Habilita el motor Grok (grok-4.6) con fundamentación obligatoria de Web Search. |
SERPAPI_API_KEY | opt-in | sin establecer | Habilita Google AI Overviews mediante SerpAPI. También proporciona la credencial para Google AI Mode cuando la bandera explícita a continuación está habilitada. |
SERPAPI_AI_MODE_ENABLED | no | false | Establece a true para añadir Google AI Mode como un motor de visibilidad separado. Permanece desactivado por defecto para evitar llamadas/costos adicionales inesperados de SerpAPI. |
SEED_SECRET | sí | sin establecer | Secreto compartido que protege cada ruta /admin/*. Elige una cadena de alta entropía. |
CONNECT_SECRET | recomendada | sin establecer | Cuando se establece, el flujo de conexión OAuth solicita este secreto en el navegador antes de emitir un token. Sin él, cualquiera que conozca la URL de tu worker puede conectar un cliente MCP. Consulta SECURITY.md. |
TURNSTILE_SITE_KEY | no | sin establecer | Reservada para forks que añaden un formulario público /check. No se usa en la compilación OSS. |
TURNSTILE_SECRET_KEY | no | sin establecer | Igual — reservada para forks. |
Las credenciales del proveedor se establecen mediante wrangler secret put VAR en producción o .dev.vars localmente. SERPAPI_AI_MODE_ENABLED es una bandera de runtime no secreta y puede almacenarse bajo Wrangler vars o establecerse en el entorno de proceso local.
Arquitectura
flowchart LR
C["MCP client<br/>(Claude.ai / Claude Code / Cursor / ...)"] -- "MCP over HTTP + OAuth" --> W["Cloudflare Worker<br/>digestseo-mcp"]
CRON["Cron Trigger<br/>every 6h"] --> W
W --> MCP["Stateless MCP handler<br/>(SDK v2, 6 hosted tools)"]
W -- "one self-fetch per engine<br/>via SELF service binding" --> RE["/admin/run-engine<br/>(own invocation per engine)"]
RE --> E1["OpenAI"]
RE --> E2["Anthropic"]
RE --> E3["Gemini"]
RE --> E4["Perplexity"]
RE --> E5["xAI<br/>(Grok)"]
RE --> E6["SerpAPI<br/>(AI Overviews / AI Mode)"]
RE --> DB[("D1<br/>brands / prompts / runs /<br/>responses / cache")]
MCP --> DB
El enlace heredado de Durable Object GeoMcpAgent / MCP_OBJECT se conserva temporalmente para compatibilidad de migración, pero el tráfico actual de /mcp lo sirve el manejador stateless del SDK v2 mostrado arriba.
Cada motor se ejecuta en su propia invocación de Worker con su propio presupuesto de 50 sub-solicitudes del plan gratuito; los resultados se vacían en un solo D1.batch() por motor. Todo el sistema cabe en el nivel gratuito de Cloudflare para una sola marca con una cadencia diaria.
Seguridad
/admin/*está protegido porSEED_SECRET(comparado en tiempo constante)./mcprequiere OAuth; estableceCONNECT_SECRETpara que solo las personas con el secreto puedan completar el flujo de conexión — muy recomendado siempre que la URL de tu worker se comparta en cualquier lugar, ya que los clientes conectados pueden llamar avisibility.refreshy gastar tus créditos de API del motor.- Todas las claves de motor viven en el almacén de secretos cifrado de Cloudflare; todos los datos permanecen en tu propia base de datos D1.
Detalles completos y reporte de vulnerabilidades: SECURITY.md.
Prompts de Ejemplo
El informe de ejemplo anterior fue generado por el primer prompt a continuación.
Una vez que el conector esté activo en Claude.ai (o cualquier cliente MCP), prueba:
| Herramienta | Prompt de ejemplo |
|---|---|
visibility.check | "¿Qué tan visible es brand_id acme en IA ahora mismo?" |
visibility.history | "Muéstrame la tendencia de visibilidad para acme en los últimos 60 días, diariamente." |
visibility.compare | "Compara acme contra asana.com y monday.com en los últimos 14 días." |
visibility.citations | "Muéstrame citas reales de Perplexity para acme de la última semana." |
visibility.content_gaps | "¿Qué contenido debería publicar acme para cerrar su brecha de visibilidad? Dame las 5 principales." |
visibility.refresh | "Actualiza acme en todos los motores disponibles ahora mismo." |
visibility.refresh | "Actualiza acme pero solo para Gemini y Claude." |
Versión Alojada
Si prefieres no administrar tu propia cuenta de Cloudflare, gestionar claves de API o pagar facturas individuales de motores, la versión alojada de DigestSEO ejecuta el mismo servidor MCP en infraestructura administrada con soporte multi-marca, actualización programada, interfaz web y facturación consolidada. Lista de espera abierta — únete en digestseo.com.
Solución de Problemas
- El Worker se despliega pero las herramientas devuelven datos vacíos — falta al menos una clave de API de motor. Revisa
wrangler secret listy agrega las claves que planeas usar. Los motores sin claves se omiten silenciosamente, lo que puede dejarvisibility.checksin datos. - Error
no engines availableen los registros — no hay claves de API de motor configuradas en absoluto. Configura al menos una deOPENAI_API_KEY,ANTHROPIC_API_KEY,GEMINI_API_KEY,PERPLEXITY_API_KEY,XAI_API_KEY,SERPAPI_API_KEY. - La migración de D1 falla — asegúrate de haber ejecutado
npx wrangler d1 migrations apply mcp-geo-db --remote(y también--localparawrangler dev). Para correcciones puntuales,npx wrangler d1 execute mcp-geo-db --remote --file=migrations/0001_initial.sql. - El conector MCP personalizado en Claude.ai no se conecta — la URL debe terminar en
/mcp. El handshake OAuth se completa automáticamente en la compilación OSS (usuario dev único); si configurasCONNECT_SECRET, el paso del navegador muestra un formulario de un campo: ingresa el secreto que configuraste durante el despliegue. Si se repite, elimina el conector y vuelve a agregarlo. Verifica que el Worker sea accesible públicamente (curl https://YOUR-WORKER-NAME.YOUR-SUBDOMAIN.workers.dev/healthzdebería devolverok). - El cron no se ejecuta — revisa el panel de Cloudflare en Workers & Pages → digestseo-mcp → Settings → Triggers. La sección "Cron Triggers" debería listar
0 */6 * * *. Si falta, ejecutanpx wrangler deploynuevamente: el trigger se registra en el despliegue. El handler también solo despacha motores para marcas cuyo cadencia derefresh_frequencyhaya transcurrido, por lo que una marca recién sembrada podría no ejecutarse en el siguiente límite de 6h. 401 unauthorizeddesde/admin/*— falta el encabezadoX-Seed-Secreto no coincide con elSEED_SECRETdesplegado. Vuelve a ejecutarnpx wrangler secret put SEED_SECRETy actualiza tu.env.test.- El Worker devuelve 404 en auto-fetch / código de error 1042 — falta el binding
servicesenwrangler.jsonco el nombre deserviceno coincide con el camponamedel worker./admin/run-livese auto-consulta/admin/run-enginevíaenv.SELF(un service binding de Cloudflare) precisamente porque un fetch a URL pública hacia tu propio hostname deworkers.devestá bloqueado por la protección "Worker called itself" de Cloudflare. Confirma que elwrangler.jsoncque desplegaste contiene"services": [{ "binding": "SELF", "service": "<your-worker-name>" }]con el mismo nombre que configuraste en el campo"name"de nivel superior. Después de corregirlo,npx wrangler deployy vuelve a ejecutar. - Límite de tasa de Gemini (HTTP 429) en prompts — los límites de la API de Gemini varían según el modelo, el proyecto y el nivel de uso, y Google señala que la capacidad real puede variar. Revisa los límites actuales del proyecto en Google AI Studio y la documentación de límites de tasa de Google. Cuando una solicitud es limitada por tasa, mcp-geo registra esa fila de motor como fallida y la excluye de la puntuación exitosa. Google recomienda esperar y reintentar después de un período corto o reducir la tasa de solicitudes; si el límite es consistentemente demasiado bajo para tu cadencia de escaneo, considera un nivel de pago adecuado en lugar de asumir una cuota universal de RPM/RPD de nivel gratuito.
FOREIGN KEY constraint faileden wrangler tail durante/admin/run-engine— el handler defensivamenteINSERT OR IGNOREla fila de runs antes de persistir las respuestas de prompts. Esto es una protección de idempotencia/FK para el trabajo de motores despachado de forma independiente, por lo que no deberías verlo en la compilación 0.2.0+; si lo ves, confirma que has desplegado el últimosrc/index.ts(grep -n "INSERT OR IGNORE INTO runs" src/index.tsdebería coincidir).
Contribuciones
Se aceptan issues y PRs. Consulta CONTRIBUTING.md para la versión corta.
Política de privacidad
Política completa para el paquete local y la extensión de Claude Desktop: https://geo-mcp.digestseo.com/privacy
Cuando ejecutas digestseo-mcp localmente (npx, la extensión de escritorio o Docker), todos tus datos — marcas, prompts, runs, respuestas y la caché de respuestas — permanecen en tu máquina en una base de datos SQLite local en ~/.digestseo/digestseo.sqlite (anulable con DIGESTSEO_DB_PATH). Los prompts de escaneo se envían solo a los proveedores de IA cuyas claves de API configures (OpenAI, Anthropic, Google, Perplexity, xAI y/o SerpAPI); su manejo de ese tráfico se rige por sus respectivas políticas de privacidad. Nada se envía nunca al autor de este proyecto: sin telemetría, sin análisis, sin cuenta.
Uso y almacenamiento de datos: La configuración local de marcas, prompts, runs de escaneo, respuestas y respuestas en caché se usan solo para proporcionar las funciones del servidor MCP que invocas. Permanecen en la base de datos SQLite local descrita anteriormente; este proyecto no opera un servicio de cuentas ni recopila telemetría.
Procesamiento de terceros: El tráfico de prompts y escaneos se envía solo a los proveedores de IA que configuras explícitamente. Esos proveedores procesan y retienen ese tráfico bajo sus propias políticas de privacidad; el autor del proyecto no recibe copias del mismo.
Retención y eliminación: Los datos locales permanecen en tu máquina hasta que elimines la base de datos SQLite (o el DIGESTSEO_DB_PATH personalizado que configuraste). Eliminar esa base de datos local elimina el historial y la caché locales almacenados por mcp-geo. La retención del lado del proveedor está controlada por cada proveedor configurado.
Contacto: Las preguntas de privacidad sobre mcp-geo pueden enviarse a info@tomiseregi.si.
Licencia
MIT.
Construido y mantenido por Tomi Šeregi.
Registro de cambios
Consulta CHANGELOG.md para el historial completo de versiones.
[0.3.2] — 27 de julio de 2026
- Publicado
@digestseo/mcp-geocon metadatos sincronizados de Worker, MCP Registry y MCPB. - Espacios de nombres de herramientas
visibility.*alojados con esquemas de entrada/salida tipados; los nombres stdio locales permanecen planos. - Configuración D1 dedicada de
mcp-geo-dby metadatos de plugins para Cursor/Claude Code. - Corregidos los pines de dependencias de producción.
[0.3.0] — julio de 2026
- CLI stdio local en npm (
npx -y @digestseo/mcp-geo) con almacenamiento SQLite y ejecuciones de motores en línea. - Herramientas locales de gestión de marcas:
track_brand,list_brands,generate_prompts. - Núcleo agnóstico de runtime compartido por Worker y CLI; adaptadores
Dbde D1 + better-sqlite3. - MCP Registry
server.json, extensión de escritorio MCPB, Dockerfile,llms-install.md.
[0.2.1] — junio de 2026
- Puerta opcional de
CONNECT_SECRETen el flujo de conexión OAuth. - Coincidencia de marcas/competidores por límite de palabra; verificaciones de citas vinculadas por dominio exacto o subdominio.
aliasesyexclude_termspor marca (migración 0005) para marcas homógrafas como Monday/Notion.visibility.historyincluye runs parciales y descarta runs completamente fallidos.- Flujo de trabajo de CI (typecheck + pruebas unitarias) y un conjunto de pruebas unitarias de funciones puras.
- La documentación recomienda OpenAI + Anthropic como par de motores inicial.
- Comparación de secretos en tiempo constante.
[0.2.0] — mayo de 2026
- Fan-out HTTP por motor vía service binding
env.SELF(una invocación de worker por motor, evita la protección de auto-llamada 1042 de Cloudflare). - Columnas
status+error_messageenprompt_responses— las llamadas de motor fallidas ahora son filas explícitas, sin más cadenasERROR:enraw_response. INSERT OR IGNOREen la fila de runs dentro de/admin/run-engine(maneja el retraso de replicación entre regiones de D1 sin descartar prompt_responses por violaciones de FK).- Lote D1 masivo en cada
runLivede motor (~26 subrequests/invocación en lugar de ~89; los runs completos de 20 prompts ahora caben bajo el límite del plan gratuito). getLatestCompletedRunanclado enEXISTS(ok rows); los runs parcialmente terminados aún muestran sus datos.- Nueva ruta de administración
POST /admin/cleanup-failed-runs.
[0.1.1] — mayo de 2026
- Eliminado el script de configuración bash poco confiable. La instalación manual vía SETUP.md es ahora la ruta canónica.
[0.1.0] — mayo de 2026
- Lanzamiento público inicial.
- Soporte de 5 motores: ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews.
- 6 herramientas MCP.
- Motores opt-in según las claves de API que proporciones.
- Cloudflare Cron Trigger para auto-refresco.
