> ## Documentation Index
> Fetch the complete documentation index at: https://sorank.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Conectar un asistente mediante MCP

> Configurar OAuth para el servidor MCP de SORANK y usar sus herramientas públicas.

## Conectar un asistente

SORANK ya aloja el servidor MCP remoto en `https://app.sorank.com/mcp`. **No tienes que crear un endpoint MCP** ni ejecutar un servidor local.

1. En un asistente compatible con **MCP remoto mediante Streamable HTTP** y **OAuth authorization code con PKCE S256**, abre la configuración de MCP o conectores.
2. Añade un servidor remoto con la URL `https://app.sorank.com/mcp`. Selecciona OAuth o autenticación automática. Ni el sitio web, ni `/api/public/v1`, ni `localhost` son la dirección MCP.
3. Pulsa **Conectar** o **Autorizar**. El cliente descubre la configuración OAuth, se registra si es necesario y abre el inicio de sesión de SORANK. Revisa los scopes y sitios solicitados antes de aprobarlos.
4. Vuelve al asistente, actualiza las herramientas y llama a `list_profiles`. Solo aparecerán los sitios autorizados. Después usa `get_capabilities` y, con `quotas:read`, `get_quotas`.

Si el cliente pide JSON, pon esta dirección en el campo de **URL remota** y elige OAuth. Los nombres de campos varían entre clientes; este servidor alojado no necesita un comando local `npx`.

## Alternativa con clave personal

Si el cliente admite una cabecera `Authorization` personalizada para MCP remoto, crea una clave en `https://app.sorank.com/settings/api` con los sitios y scopes necesarios. Configura `Authorization: Bearer <clave-completa>` en el almacenamiento seguro del cliente, nunca en el prompt. La clave completa solo se muestra una vez. OAuth es preferible para clientes interactivos.

## Configurar OAuth

Los metadatos del recurso MCP están en `https://app.sorank.com/.well-known/oauth-protected-resource/mcp` y los del servidor de autorización en `https://app.sorank.com/.well-known/oauth-authorization-server`. Los clientes compatibles los descubren automáticamente. Quienes desarrollen clientes deben usar los endpoints OAuth anunciados, PKCE S256 y el recurso exacto `https://app.sorank.com/mcp`.

## Comprobar la elegibilidad

Puede conectar un asistente cuando ha completado el onboarding en Sorank y al menos un sitio tiene una suscripción válida. Si no, la pantalla de consentimiento explica lo que falta, enlaza con el onboarding o con **Configuración → Facturación**, y **Permitir acceso** no está disponible. Complete ese paso y vuelva a iniciar la conexión desde el asistente.

Solo se pueden seleccionar sitios elegibles, y `list_profiles` solo devuelve sitios elegibles. Si un sitio pierde después su suscripción, sus herramientas devuelven `subscription_required`, incluso en una sesión ya abierta.

## Elegir herramientas y permisos

Pida al cliente que liste las herramientas después de conectarse. El servidor solo anuncia las herramientas que permite su autorización y vuelve a comprobarla en cada llamada. Una herramienta oculta no se puede invocar directamente.

* Sitios y cuotas: `list_profiles`, `get_capabilities`, `get_quotas`.
* **Ver productos**: `list_products`.
* **Ver analíticas**: `get_gsc_performance`, `list_gsc_queries`, `list_gsc_pages`, `get_gsc_countries_devices`, `get_ai_traffic_timeline`, `list_ai_traffic_pages`.
* **Ver visibilidad IA**: `get_geo_stats`, `get_geo_mentions_evolution`, `get_geo_citations_timeline`, `list_geo_citing_sources`, `get_geo_cited_competitors`.
* **Ver ajustes**: `get_settings`. **Editar ajustes**: `update_site_settings`, `replace_business_brief`, `replace_competitors`, `update_article_settings`, `update_visual_settings`, `connect_youtube_channel`, `set_youtube_channel_enabled`, `disconnect_youtube_channel`.
* Contenido: `create_calendar`, `generate_articles`, `publish_article`, `get_operation` y las demás herramientas de artículos y calendario.

## Seguir un flujo seguro

Empieza con `list_profiles`, `get_capabilities` y `get_quotas`. Crea un calendario o genera artículos después de comprobar la cuota. Cada cambio necesita un UUID `idempotency_key` en la entrada de la herramienta. Guarda el ID de operación y consulta `get_operation` hasta que termine. Un comando aceptado puede fallar después; revisa resultado o error. Lee el artículo antes de editarlo o publicarlo.

## Efectos y revocación

Crear un calendario puede programar generaciones y publicaciones posteriores. `generate_articles` usa la cuota de artículos de la cuenta; su recibo es `succeeded` en cuanto se acepta el lote, y cada artículo aceptado se sigue con `get_article`. `publish_article` puede enviar contenido a un CMS, según sus capacidades y el destino elegido. Las herramientas de ajustes cambian los mismos ajustes que la aplicación y devuelven una lista `effects` con los procesos iniciados en segundo plano, como una regeneración de las preguntas GEO o una sincronización de YouTube. La URL del sitio no se puede cambiar. El mismo plan, permisos y cuota se aplican en la aplicación y en REST. Revocar la conexión o perder el acceso al sitio bloquea las llamadas y lecturas de operaciones posteriores.

## Gestionar errores de herramientas

Una llamada fallida devuelve un error de herramienta con los mismos `code`, `message`, `request_id`, `retryable` y `details` que la API REST, por ejemplo `onboarding_required`, `subscription_required`, `missing_scope`, `not_found`, `gsc_not_connected` o `business_brief_revision_conflict`. Reintente solo si `retryable` es `true`.

## Comprobar compatibilidad

Esta V1 admite el transporte Streamable HTTP y el flujo OAuth probados, con registro dinámico limitado. No admite clientes que requieren exclusivamente metadatos CIMD. Comprueba las capacidades del cliente antes de conectarlo. El texto de los artículos es contenido del usuario, no instrucciones fiables.

## Si falla la conexión

* Abrir `/mcp` en un navegador no prueba MCP. Introduce la URL en un cliente MCP y selecciona Streamable HTTP.
* Si no se abre el inicio de sesión, comprueba OAuth discovery, authorization code con PKCE S256 y registro dinámico. Puedes usar una clave personal si el cliente acepta una cabecera Authorization.
* Si faltan sitios o herramientas, revisa los sitios y scopes aprobados. `list_profiles` necesita `profiles:read`; `get_quotas` necesita `quotas:read`.
* Si deja de funcionar una conexión, revisa su revocación y tu acceso a los sitios en **Configuración → Acceso API**, y vuelve a conectarla.
* Si la pantalla de consentimiento no permite autorizar, complete el onboarding o actualice la suscripción como se indica y vuelva a conectarse desde el asistente.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.