SEO Performance MCP
MCP de rendimiento SEO post-publicación que puntúa cada URL en Google Search Console, GA4, Matomo, Clarity y citas de IA, y emite un veredicto de refrescar/expandir/fusionar/eliminar por publicación.
Documentación
seo-performance-mcp
Sepa qué entradas de blog actualizar, expandir, fusionar o eliminar, sin adivinar.
Un servidor MCP que convierte tus datos dispersos de SEO y analítica en un veredicto claro por URL. Conéctalo a Claude, Cursor o cualquier cliente compatible con MCP y pregunta: "¿Qué tres publicaciones debería actualizar esta semana?" — y obtén una respuesta respaldada por números concretos.
Qué hace
seo-performance-mcp unifica las señales posteriores a la publicación de todos los canales por los que ya pagas:
- Google Search Console — clics, impresiones, CTR, posición, consultas principales
- Matomo o GA4 — visitas, tiempo de permanencia, tasa de rebote
- Microsoft Clarity — profundidad de desplazamiento, clics de ira, clics muertos
- Seguimiento de citas de IA — qué LLMs citan tu URL hoy frente al mes pasado
- Sitemap / CMS — fechas de publicación, etiquetas, recuento de palabras (cualquier plataforma mediante sitemap XML; integración opcional con Ghost para metadatos más ricos)
Luego ejecuta un motor de reglas determinista sobre esas señales y emite un veredicto por URL:
refresh/expand/merge/kill/double_down/hold
con códigos de motivo, evidencia y una puntuación de confianza de 0 a 1. Solo informa: el servidor nunca modifica tus publicaciones.
Por qué importa
La mayoría de los equipos de contenido tienen la analítica en cinco pestañas y una corazonada. Así es como las buenas publicaciones se pudren en silencio, las mediocres reciben demasiada promoción y el obvio "reescribe esta" es invisible hasta que el tráfico ya se ha desplomado.
Este MCP cierra el ciclo:
- Una pregunta, una URL de entrada, un veredicto de salida.
- La misma lógica en toda la cohorte, para que la clasificación sea comparable.
- Todas las decisiones trazables hasta umbrales numéricos que puedes fijar en
src/verdict/rules.ts. - Los clientes de IA (Claude, Cursor, hosts MCP) pueden dirigir toda la auditoría de contenido en lenguaje natural.
Para quién es
- Especialistas en marketing de contenido que gestionan un blog de más de 50 publicaciones y están cansados de adivinar qué actualizar.
- Consultores SEO que realizan auditorías y quieren una capa de puntuación portátil y determinista en lugar de hojas de cálculo personalizadas.
- Equipos de contenido con enfoque en IA que conectan agentes de reescritura: este MCP es la capa de señales ascendentes.
- Editores independientes en Ghost, WordPress, Hugo, Astro, Next, Webflow o cualquier CMS que exponga un sitemap.
Qué obtienes
Después de una ejecución de cohorte tienes:
- Una tabla clasificada de cada publicación con veredicto y puntuación de confianza.
- Un informe en markdown por URL de "actualizar": números + consultas principales + acciones sugeridas que un editor (o un agente de escritura) puede ejecutar de inmediato.
- Una lista de "victorias rápidas": consultas en posiciones 5-15 con CTR inferior al esperado: las victorias más rápidas de reescritura de títulos en la propiedad.
- Un diff histórico de citas de IA: qué LLMs te citaban y dejaron de hacerlo.
Instalación
npx -y @automatelab/seo-performance-mcp
En una configuración MCP de Claude, Claude Code o Cursor:
{
"mcpServers": {
"seo-performance": {
"command": "npx",
"args": ["-y", "@automatelab/seo-performance-mcp"],
"env": {
"POSTS_SITEMAP_URL": "https://example.com/sitemap.xml",
"GSC_SERVICE_ACCOUNT_JSON": "<base64-encoded service-account JSON>",
"GSC_SITE_URL": "sc-domain:example.com",
"MATOMO_URL": "https://example.com/analytics",
"MATOMO_TOKEN": "...",
"MATOMO_SITE_ID": "1",
"GA4_PROPERTY_ID": "123456789",
"GA4_SERVICE_ACCOUNT_JSON": "<base64-encoded service-account JSON>",
"CLARITY_PROJECT_ID": "...",
"CLARITY_API_TOKEN": "...",
"CITATION_INTELLIGENCE_URL": "https://citation.example.com"
}
}
}
}
Cada variable de entorno es opcional. Los adaptadores que carecen de su configuración de entorno omiten su parte de la instantánea; el servidor sigue arrancando. El motor de veredictos funciona con las partes que estén presentes.
Integración de plataformas
Apunta a cualquier sitio, sin necesidad de plugin de CMS. La capa de descubrimiento de publicaciones se resuelve en orden de prioridad:
POSTS_LIST— array JSON de{url, title?, published_at?, tags?, word_count?}. Úsalo cuando ya tengas un índice de contenido y quieras un control exacto.- API de administración de Ghost — si tanto
GHOST_ADMIN_API_URLcomoGHOST_ADMIN_API_KEYestán configurados, Ghost se usa como fuente de metadatos más rica. Opcional. - Extracción HTML —
og:title,article:published_timey JSON-LDdatePublishedpor URL se leen en vivo desde la URL. - Sitemap XML — configura
POSTS_SITEMAP_URLcon tu sitemap (o índice de sitemap) y el servidor enumera las publicaciones desde<loc>+<lastmod>.
La mayoría de los usuarios solo necesitan POSTS_SITEMAP_URL. WordPress, Hugo, Astro, Next.js, Webflow, Framer, Wix, Squarespace, Notion-como-sitio y sitios espejo de Substack exponen un sitemap por defecto.
Para añadir una plataforma completamente nueva: no hay nada que construir — solo apunta POSTS_SITEMAP_URL a ella.
Herramientas expuestas
| Herramienta | Qué devuelve |
|---|---|
posts_list | Publicaciones con {url, title, age_days, tags} desde sitemap, Ghost o tu POSTS_LIST. |
posts_snapshot | Resumen unificado por URL para una ventana de 30/60/90 días: GSC + Matomo + GA4 + Clarity + citas + metadatos. |
posts_decay_curve | Cubos semanales de clics/impresiones/posición de GSC + una etiqueta de tendencia decay/plateau/growth. |
posts_verdict | Veredicto (refresh/expand/merge/kill/double_down/hold) + códigos de motivo + confianza de 0 a 1. |
posts_refresh_brief | Informe en markdown para un humano o un editor LLM posterior: números, consultas principales, acciones sugeridas. |
cohort_report | Tabla de veredictos de cohorte ordenada por prioridad + confianza. "¿Qué tres publicaciones debería actualizar esta semana?" |
posts_cite_loss | Citas de LLM que desaparecieron para una URL determinada. Requiere CITATION_INTELLIGENCE_URL. |
gsc_quick_wins | Pares (page, query) en posiciones 5-15 con CTR bajo: las victorias más rápidas de reescritura de títulos. |
Uso como GitHub Action
Ejecuta cualquiera de las herramientas en un cron desde CI y publica la salida en un Issue, Discussion o PR de GitHub. La acción está publicada en el GitHub Marketplace.
- uses: AutomateLab-tech/seo-performance-mcp@v1
with:
tool: cohort_report
format: markdown
input: '{"window": 90, "min_age_days": 90, "limit": 20}'
gsc-service-account-json: ${{ secrets.GSC_SERVICE_ACCOUNT_JSON }}
gsc-site-url: ${{ secrets.GSC_SITE_URL }}
posts-sitemap-url: ${{ secrets.POSTS_SITEMAP_URL }}
Salidas:
| Salida | Descripción |
|---|---|
result | Salida de la herramienta como cadena multilínea (markdown o JSON, según format). |
result-file | Ruta del archivo donde se escribió la salida de la herramienta. Entrégala a peter-evans/create-issue-from-file, etc. |
rows | Solo para cohort_report con format: json: número de filas devueltas. |
Un flujo de trabajo completo de auditoría semanal que abre un Issue de GitHub con el informe de cohorte está en examples/weekly-cohort-report.yml.
Uso como CLI de un solo uso
El paquete también incluye un binario seo-perf-cli para que puedas ejecutar una sola herramienta sin un cliente MCP:
npx -p @automatelab/seo-performance-mcp seo-perf-cli cohort_report \
--input '{"window": 90, "limit": 20}' \
--format markdown
Las mismas variables de entorno que el servidor MCP. --format markdown es compatible con cohort_report y posts_refresh_brief; otras herramientas recurren a JSON delimitado.
Habilidades complementarias + regla de Cursor
Tres archivos de enrutamiento ligeros se incluyen en el repositorio para que el LLM de tu cliente sepa cuándo recurrir a estas herramientas:
skills/seo-performance/SKILL.md— habilidad de enrutamiento de herramientas. Colócala en~/.claude/skills/seo-performance/(o.claude/skills/por proyecto) para que se cargue automáticamente en Claude Code. Enruta una sola pregunta a la herramienta correcta.skills/weekly-audit/SKILL.md— manual de auditoría semanal de un solo uso. Componegsc_quick_wins+cohort_report+posts_cite_lossen un resumen clasificado y deduplicado de señales cruzadas con ediciones propuestas por URL. Colócalo junto a la habilidad de enrutamiento.cursor/rules/seo-performance.mdc— copia en.cursor/rules/seo-performance.mdcen cualquier espacio de trabajo de Cursor.
Todo opcional. El servidor MCP funciona sin ellos; solo acortan el viaje de ida y vuelta de "qué herramienta llamo".
Prompts MCP
El servidor expone tres prompts que agrupan el manual. Cualquier cliente MCP (Claude Desktop, Claude Code, Cursor, Continue) puede listarlos e invocarlos:
| Prompt | Qué ejecuta |
|---|---|
audit_cohort | cohort_report en publicaciones >=90d, luego posts_refresh_brief por fila de actualizar/expandir/fusionar. La auditoría semanal. |
find_quick_wins | gsc_quick_wins (posiciones 5-15) + posts_snapshot por URL, luego propone reescrituras de meta_title con consultas verbatim. |
citation_loss_sweep | posts_cite_loss por URL, refresh_brief para cualquier pérdida, recomendaciones específicas de H1 y fraseo inicial. |
Motor de veredictos
Determinista, basado en reglas, trazable. Códigos de motivo:
ctr_below_position_expectedposition_driftdecay_30d_over_30pct/decay_60d_over_50pctstagnant_no_clicksthin_content_low_dwellrising_impressions_low_ctr/rising_clicks_continue_investmentcitation_loss/citation_growthduplicate_or_cannibalizinghigh_bounce_low_scrollfresh_post_too_young
El mapeo (motivos → veredicto) y cada umbral viven en src/verdict/rules.ts. Edítalo, fíjalo en pruebas, publica tu propio libro de reglas.
Desarrollo
npm install
npm run dev # tsx src/index.ts
npm run build # tsc
npm test # vitest
Licencia
MIT