SEO Core

Flujos con agentes

MCPClaude CodeCodexCursorLocal Preflight

Configura SEO Core MCP

Instala el paquete MCP, crea un token con alcance limitado, conecta tu cliente preferido, verifica las tools disponibles y resuelve problemas comunes de setup.

Importante

El acceso MCP está disponible en los planes Growth, Elite y Lifetime. Crea tokens desde Cuenta > Integraciones > Acceso de agentes. Los tokens se muestran una sola vez, conviene empezar en modo lectura, y nunca deben pegarse en el chat.

Elige un modo de conexión

Paquete local stdio

Recomendado para Claude Code, Codex, Cursor y cualquier cliente que necesite herramientas locales como deteccion de rutas, inspeccion de metadatos y preflights locales.

MCP hospedado con OAuth

Ideal para clientes MCP remotos con OAuth que solo necesitan contexto cloud de SEO Core. El modo hospedado no inspecciona archivos locales ni ejecuta preflights locales.

HTTP local de compatibilidad

Útil cuando un cliente no puede iniciar un servidor stdio directamente. Sigue corriendo en tu máquina y sigue usando tu token con alcances limitados.

Primero solo lectura

Empieza con alcances de lectura para proyecto, uso, rastreos y keywords. Agrega escritura, propuestas y confirmación de deploy solo cuando el flujo lo necesite.

Qué puede hacer el MCP

  • Leer contexto del proyecto, uso del plan, estado de rastreos, issues agrupados, diagnósticos por URL, mapeos de keywords, reportes y preflights locales recientes.
  • Ejecutar rastreos cloud oficiales, subir resúmenes de preflight local, generar respuestas SEO con evidencia del backend, sincronizar keywords desde GSC y mapear keywords a URLs.
  • Inspeccionar solo el workspace actual para detectar framework, rutas, metadatos, headings y evidencia local antes de publicar un pull request.
  • Crear propuestas de despliegue y confirmar deploys solo mediante herramientas explícitas de alto riesgo, permisos del proyecto, validación del plan, alcances y auditoría del backend.

Instalar MCP local stdio

  1. 1

    Confirma los requisitos

    Usa Node.js 18 o superior, un workspace de SEO Core en plan Growth, Elite o Lifetime, y un proyecto de SEO Core al que el agente pueda acceder.

  2. 2

    Instala el paquete

    Instala el paquete MCP público de forma global para que tu cliente pueda iniciar el comando seo-core-mcp.

    npm install -g @seo-core-app-ai/mcp
    npm view @seo-core-app-ai/mcp version
  3. 3

    Crea un token con alcances

    En SEO Core, abre Cuenta > Integraciones > Acceso de agentes, crea un token, elige el proyecto permitido, selecciona solo los alcances necesarios y guarda el token antes de cerrar el diálogo.

  4. 4

    Configura variables de entorno

    Agrega estas variables dentro de la configuración del cliente MCP, no en mensajes de chat ni en archivos versionados.

    SEO_CORE_MCP_TOKEN=seo_mcp_...
    SEO_CORE_API_BASE=https://www.seocoreapp.com/api
  5. 5

    Verifica la conexión

    Pide al agente que llame get_mcp_status y después list_projects. Desde un workspace de app, también llama detect_local_framework para confirmar que las herramientas locales ven el proyecto actual.

Configuración por cliente

Claude Code

Agrega SEO Core como servidor MCP stdio:

claude mcp add seo-core \
  --env SEO_CORE_MCP_TOKEN=seo_mcp_... \
  --env SEO_CORE_API_BASE=https://www.seocoreapp.com/api \
  -- seo-core-mcp

Codex

Agrega este servidor a tu configuración MCP de Codex:

[mcp_servers.seo_core]
command = "seo-core-mcp"
env = { SEO_CORE_MCP_TOKEN = "seo_mcp_...", SEO_CORE_API_BASE = "https://www.seocoreapp.com/api" }

Cursor

Agrega esta entrada a tu configuración MCP de Cursor:

{
  "mcpServers": {
    "seo-core": {
      "command": "seo-core-mcp",
      "env": {
        "SEO_CORE_MCP_TOKEN": "seo_mcp_...",
        "SEO_CORE_API_BASE": "https://www.seocoreapp.com/api"
      }
    }
  }
}

Clientes MCP genericos

Usa el mismo patron de comando y variables cuando un cliente acepte definiciones JSON de servidores MCP:

{
  "mcpServers": {
    "seo-core": {
      "command": "seo-core-mcp",
      "env": {
        "SEO_CORE_MCP_TOKEN": "seo_mcp_...",
        "SEO_CORE_API_BASE": "https://www.seocoreapp.com/api"
      }
    }
  }
}

MCP hospedado con OAuth

Los clientes que soportan MCP remoto por Streamable HTTP con OAuth pueden conectarse directamente a SEO Core:

https://www.seocoreapp.com/api/mcp

Claude Code

claude mcp add seo-core-hosted \
  --transport http \
  https://www.seocoreapp.com/api/mcp

# Then open Claude Code and run /mcp to authorize with OAuth.

Codex

codex mcp add seo-core-hosted \
  --url https://www.seocoreapp.com/api/mcp

codex mcp login seo-core-hosted \
  --scopes projects:read,usage:read,crawl:read,keywords:read

Cursor

{
  "mcpServers": {
    "seo-core-hosted": {
      "url": "https://www.seocoreapp.com/api/mcp",
      "transport": "http"
    }
  }
}
  • El MCP hospedado soporta solo herramientas cloud. Usa el paquete local stdio para inspeccion del workspace y preflights locales.
  • La autorizacion OAuth usa seleccion de proyecto, PKCE, tokens con alcances, rotacion de refresh tokens y revocacion.
  • Los alcances de confirmación de deploy de alto riesgo siguen siendo opcionales y requieren consentimiento explícito.

Modo HTTP local de compatibilidad

Stdio es la ruta recomendada. El modo local Streamable HTTP está disponible para clientes que necesitan un endpoint MCP HTTP durante pruebas de compatibilidad:

SEO_CORE_MCP_TOKEN=seo_mcp_...
SEO_CORE_API_BASE=https://www.seocoreapp.com/api
SEO_CORE_MCP_TRANSPORT=http
SEO_CORE_MCP_HTTP_PORT=8787
SEO_CORE_MCP_HTTP_PATH=/mcp
seo-core-mcp

Nota

HTTP local sigue corriendo en tu máquina y usa tu token de Acceso de agentes. Úsalo solo en un entorno local confiable y detén el proceso cuando termines las pruebas.

Flujos recomendados

Chequeo de salud

Llama get_mcp_status, list_projects y get_project_context antes de pedirle al agente decisiones SEO.

Preflight antes de un PR

Ejecuta detect_local_framework, detect_local_routes y run_local_preflight contra tu URL local antes de la revision.

Priorizar issues de producción

Usa get_crawl_status, list_crawl_issues, get_url_diagnostics y answer_seo_question.

Publicar cambios controlados

Usa primero las herramientas de sugerencias y después create_deploy_proposal. Confirma solo después de revisar la frase y los cambios propuestos.

Comandos y ejemplos más útiles

Contexto de proyecto y rastreo en modo lectura

get_mcp_status({})
list_projects({})
get_project_context({ "project_id": 123 })
get_plan_usage({ "project_id": 123 })
get_crawl_status({ "crawl_run_id": 456 })
list_crawl_issues({ "crawl_run_id": 456, "severity": "high", "limit": 20 })
get_url_diagnostics({ "project_id": 123, "url": "https://example.com/pricing" })
list_keyword_mappings({ "project_id": 123, "url": "https://example.com/pricing" })

Revisiones del workspace local

detect_local_framework({ "workspace_root": "/path/to/app" })
detect_local_routes({ "workspace_root": "/path/to/app" })
inspect_local_metadata({ "workspace_root": "/path/to/app", "route": "/pricing" })
suggest_local_metadata_changes({
  "workspace_root": "/path/to/app",
  "route": "/pricing",
  "title": "SEO Software Pricing | Example",
  "description": "Compare plans for technical SEO monitoring, AI recommendations, and guarded deployments."
})
run_local_preflight({
  "workspace_root": "/path/to/app",
  "local_url": "http://localhost:3000",
  "max_pages": 25,
  "allow_start_server": false
})

Acciones SEO

run_cloud_crawl({ "project_id": 123, "max_pages": 100, "respect_robots": true, "include_sitemap": true })
sync_gsc_keywords({ "project_id": 123, "start_date": "2026-04-01", "end_date": "2026-05-01" })
suggest_metadata({
  "project_id": 123,
  "url": "https://example.com/pricing",
  "keyword": "seo software pricing",
  "language": "en"
})
suggest_heading_fixes({
  "project_id": 123,
  "url": "https://example.com/pricing",
  "keyword": "seo software pricing",
  "language": "en"
})
map_keyword_to_url({
  "project_id": 123,
  "url": "https://example.com/pricing",
  "keyword": "seo software pricing",
  "intent": "commercial",
  "track": true
})

Propuesta y confirmación de despliegue

create_deploy_proposal({
  "project_id": 123,
  "changes": [
    {
      "url": "https://example.com/pricing",
      "element_type": "title",
      "original_text": "Pricing",
      "deployed_text": "SEO Software Pricing | Example"
    }
  ],
  "expires_in_minutes": 60
})

confirm_deploy({
  "proposal_id": 789,
  "confirmation_phrase": "CONFIRM SEO DEPLOY 789"
})

Importante

confirm_deploy es una acción deliberadamente de alto riesgo. Confirma solo cuando la propuesta coincide con los cambios exactos que quieres y la frase de confirmación viene de la respuesta de la propuesta.

Respuestas y reportes

answer_seo_question({
  "project_id": 123,
  "question": "What should we fix before publishing the pricing page?",
  "crawl_run_id": 456,
  "include_keywords": true,
  "include_gsc": true,
  "include_deploys": true
})

generate_seo_report({
  "project_id": 123,
  "crawl_run_id": 456,
  "preflight_run_id": 321
})

Prompts útiles para agentes

Estos prompts funcionan bien porque piden al agente usar contexto de SEO Core, evidencia local y guardrails de deploy de forma explícita:

Usa SEO Core MCP para listar mis proyectos, elegir el proyecto de producción y resumir el estado SEO actual.

Ejecuta un preflight local para http://localhost:3000, compáralo con el último rastreo de producción y dime qué bloquea este PR.

Inspecciona los metadatos locales de /pricing, usa contexto de keywords y rastreo desde SEO Core, y propone un título y meta description más seguros.

Crea una propuesta de despliegue solo para los cambios aprobados de metadatos. No confirmes el despliegue hasta que yo revise la propuesta.

Alcances que puedes otorgar

Leer contexto

projects:read, usage:read, crawl:read y keywords:read permiten que los agentes entiendan el proyecto sin cambiarlo.

Ejecutar análisis

crawl:run, preflight:upload, ai:suggest y gsc:sync permiten crear evidencia fresca y recomendaciones.

Gestionar trabajo de keywords

keywords:write permite mapear o monitorear keywords para una URL después de aprobar el objetivo.

Deploy con guardrails

deploy:proposal crea propuestas. deploy:confirm debe reservarse para flujos confiables que necesitan confirmación explícita.

Recursos y prompts integrados

El MCP expone recursos y prompts reutilizables para que los agentes puedan recuperar instrucciones de instalación, estado de releases, contexto actual del proyecto, evidencia del último rastreo y resúmenes de preflight sin adivinar.

Resources
seo-core://mcp/release-status
seo-core://mcp/setup-guide
seo-core://projects/{project_id}/context
seo-core://projects/{project_id}/latest-crawl
seo-core://projects/{project_id}/latest-report
seo-core://projects/{project_id}/latest-preflight

Prompts
check_mcp_health
install_seo_core_mcp
update_seo_core_mcp
run_seo_preflight
explain_top_seo_issues
prepare_deploy_proposal
compare_local_to_production

Actualizaciones

El MCP puede revisar el estado de releases de SEO Core mediante herramientas y recursos internos del MCP. Las actualizaciones automáticas son opcionales y solo corren con manifiestos firmados, modos de instalación seguros y comandos exactos de package managers permitidos.

SEO_CORE_MCP_AUTO_UPDATE=1
SEO_CORE_MCP_ALLOW_MAJOR_UPDATE=0
SEO_CORE_MCP_RELEASE_CHANNEL=stable
SEO_CORE_MCP_RELEASE_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----..."
  • Usa get_mcp_status para ver la version actual del paquete y el alcance al backend.
  • Usa check_mcp_update para saber si hay una actualización y si está firmada.
  • Usa update_mcp_package solo cuando la instalación automática sea segura. Si no, sigue el comando manual devuelto.

Problemas comunes

  • AUTH_REQUIRED: configura SEO_CORE_MCP_TOKEN en el cliente MCP, no en el chat.
  • MCP_PLAN_REQUIRED: el acceso MCP está disponible en planes Growth, Elite y Lifetime.
  • AUTH_SCOPE_REQUIRED: crea un token con el alcance necesario o usa solo herramientas de lectura.
  • PROJECT_ACCESS_DENIED: verifica que el token pueda acceder al proyecto.
  • LOCAL_WORKSPACE_DENIED: mantén las rutas dentro del workspace actual y evita archivos con forma de secreto.
  • actualización rechazada: instala manualmente si el paquete está enlazado, corre desde un checkout del repo, no está firmado o es una versión mayor.

Consejo

El MCP también expone get_mcp_setup_guide y seo-core://mcp/setup-guide, así que los agentes pueden mostrar comandos de configuración desde el propio cliente.