Saltar al contenido principal

Conectar un agente de IA

Para usuarios de agentes de IA e integradores

Cómo conectar

  1. En su cliente de IA, agregue el servidor MCP con la URL https://mcp.fidelizador.com/mcp. Es la misma para todos los clientes: no hay que elegir un servidor según dónde esté alojada su cuenta.
  2. Al conectar, el cliente abre el login de Fidelizador (OAuth con PKCE). Inicie sesión con su usuario. Si su cuenta tiene segundo factor, se lo pide acá, igual que al entrar a la plataforma.
  3. Al terminar el login, el navegador vuelve a una dirección http://localhost:<puerto>/callback. Esto es correcto, no es un error, y el número de puerto cambia en cada conexión.
  4. Tras autorizar, el agente queda conectado con los permisos de su usuario: solo las instancias a las que usted ya tiene acceso.

No se requieren API keys ni credenciales nuevas: la sesión usa su identidad de usuario.

Por qué el login termina en localhost

Su cliente de IA es una aplicación que corre en su propia máquina, así que abre un receptor temporal ahí y le pide a Fidelizador que devuelva la respuesta del login a esa dirección. El comprobante de autorización viaja del navegador a la aplicación sin salir de su equipo: nunca pasa por un servidor intermedio. Es el mecanismo que prescribe el estándar de OAuth para aplicaciones nativas (RFC 8252).

Dos consecuencias prácticas:

  • El puerto es distinto cada vez. Se elige uno libre al momento de conectar, así que no hay un número fijo que valga la pena anotar ni permitir en un firewall.
  • La página solo sirve durante el login. Si vuelve a abrir esa dirección más tarde verá un error de conexión, porque el receptor ya se cerró. No indica ninguna falla.

Clientes verificados

MCP es un estándar abierto y este servidor es HTTP con OAuth, así que cualquier cliente compatible se conecta igual. La tabla dice contra qué clientes se probó el flujo completo — no qué clientes están permitidos. Un cliente que no aparezca en la tabla no está bloqueado: no fue verificado todavía, y si soporta MCP sobre HTTP con OAuth debería funcionar con la misma URL.

ClienteVerificadoNota
Claude.ai / Cowork (web y escritorio)Las autorizaciones de terceros (Google Drive privado) se resuelven en un paso dentro del chat.
Claude Code (CLI)Las autorizaciones de terceros se resuelven en dos pasos: el servidor entrega un enlace, usted autoriza y pide continuar.
Codex (CLI)Requiere dos parámetros en el alta, ver Configuración por cliente. Sin ellos la conexión se establece pero las herramientas dejan de responder a los pocos minutos.
Copilot en Visual Studio CodeNo requiere parámetros adicionales en el alta. Requiere una suscripción de GitHub Copilot con modo agente, igual que cualquier otro cliente necesita la suya.
Cualquier otro cliente MCP (ChatGPT y demás)NoSin verificar contra el servidor real. La conexión se hace igual, con la URL de Cómo conectar; lo que puede variar es cómo el cliente presenta el login y una autorización externa.

Todos los clientes consultan y envían igual; lo que varía es cómo se conectan y cómo presentan una autorización externa (ver Cargar destinatarios de un envío).

Configuración por cliente

Claude.ai / Cowork: Configuración → Conectores → Agregar, con la URL del servidor (https://mcp.fidelizador.com/mcp). No lleva parámetros de autenticación: deje vacíos el Client ID y el Client Secret, y el cliente se da de alta solo. El login de Fidelizador se abre en el mismo flujo.

En un plan Team o Enterprise, solo un Owner de la organización puede agregar un conector personalizado; a un miembro no le aparece la opción. En ese caso el alta la hace el Owner desde Configuración de la organización → Conectores, y después cada persona se autentica con su propia cuenta de Fidelizador.

Claude Code (CLI): agregar el servidor con el comando, o declararlo en .mcp.json del proyecto:

claude mcp add --transport http fidelizador https://mcp.fidelizador.com/mcp
{
"mcpServers": {
"fidelizador": {
"type": "http",
"url": "https://mcp.fidelizador.com/mcp"
}
}
}

La primera llamada dispara el login de Fidelizador (OAuth PKCE) en el navegador.

Codex (CLI): el alta y el login son dos comandos, y cada uno lleva un parámetro que no es opcional.

codex mcp add fidelizador \
--url https://mcp.fidelizador.com/mcp \
--oauth-client-id mcp

codex mcp login fidelizador --scopes offline_access
  • --oauth-client-id mcp (en add) hace que el cliente use la aplicación OAuth que Fidelizador ya publica, en vez de registrar una propia al vuelo. Sin este parámetro la conexión se establece y las herramientas funcionan unos minutos, hasta que la sesión se renueva por primera vez: desde ahí toda operación falla con un error de autorización, mientras el servidor sigue apareciendo conectado.
  • --scopes offline_access (en login) es lo que permite renovar la sesión sin volver a iniciar sesión en el navegador.

La URL debe ser exactamente https://mcp.fidelizador.com/mcp. Codex verifica que el servidor se identifique con la misma dirección con la que se lo invocó, así que cualquier alias rechaza la conexión con resource mismatch.

Un mismo servidor no puede estar dado de alta dos veces con la misma URL: Codex no levanta ninguno de sus servidores MCP si encuentra el duplicado. Si la conexión falla al arrancar, revise que no haya una entrada repetida.

Copilot en Visual Studio Code: se declara en .vscode/mcp.json dentro del proyecto, o para todos los proyectos desde la paleta de comandos con MCP: Add Server.

{
"servers": {
"fidelizador": {
"type": "http",
"url": "https://mcp.fidelizador.com/mcp"
}
}
}

También se puede dar de alta desde la terminal:

code --add-mcp '{"name":"fidelizador","type":"http","url":"https://mcp.fidelizador.com/mcp"}'

No lleva parámetros de autenticación: se inicia el servidor desde MCP: List Servers y el login se abre en el navegador.

Ejemplos de uso

Pídale al agente en su propio idioma — estos son solo ejemplos de la clase de pregunta o instrucción que entiende:

Reportes

  • ¿Cómo viene la entregabilidad de esta semana?
  • Mostrame los correos que rebotaron hoy
  • ¿Cuánto abrieron y clickearon los envíos del mes pasado, por país?
  • ¿Cuánto llevo usado de mi cuota de envío este mes?

Envío— Modifica estadoEstas herramientas escriben en la cuenta del usuario — envían correos, importan destinatarios, publican plantillas. El agente pide confirmación antes de ejecutarlas.

  • Envía un correo de bienvenida a [email protected] usando la plantilla Onboarding
  • Mandale esta notificación a los 200 emails de esta planilla de Google Sheets

Formularios y consentimiento

  • ¿Qué formularios tiene la instancia y cuáles están activos?
  • ¿Este contacto tiene consentimiento vigente para marketing?
  • ¿Qué ítems tiene el formulario de newsletter y a qué término de consentimiento apunta?

Plantillas y remitentes

  • ¿Qué dice el contenido de la plantilla Bienvenida?
  • Publicá la plantilla que acabamos de revisar Este ejemplo escribe en la cuenta del usuario. El agente pide confirmación antes de ejecutarlo.
  • ¿El remitente [email protected] exige consentimiento?

Sandbox

  • Simulá 100 envíos con 10% de rebotes y 60% de apertura, sin tocar destinatarios reales Este ejemplo escribe en la cuenta del usuario. El agente pide confirmación antes de ejecutarlo.

Enviar correo transaccional

Pídale al agente que envíe; indique remitente, asunto y contenido, y los destinatarios (directamente o cargándolos desde un archivo, ver Cargar destinatarios de un envío). El servidor:

  • Trocea internamente los envíos de más volumen a varios destinatarios — usted no pagina.
  • Pide confirmación en el chat cuando el envío supera un umbral de volumen, como salvaguarda contra disparos accidentales del agente. Un envío pequeño no la requiere.
  • Devuelve un identificador de envío para luego consultar su estado en los reportes.

Cargar destinatarios de un envío

Cuando los destinatarios vienen de un archivo, el agente los carga para ese envíono se guarda ninguna lista ni audiencia en el sistema: la carga es efímera (una referencia válida ~15 minutos, de un solo uso) y sirve únicamente para el envío en curso. Orígenes reconocidos automáticamente:

  • URL pública con los destinatarios en CSV (incluido un Google Sheet publicado como CSV). Se descarga directamente.
  • Archivo privado de Google Drive / Google Sheets (la URL de edición o el ID). Requiere su autorización de solo lectura mediante una ventana de Google; sus credenciales nunca pasan por el agente. Según el cliente, la autorización se resuelve en un paso (Cowork) o en dos (Claude Code: abra el enlace, autorice y pida continuar).

La carga detecta la columna de correo automáticamente (email, correo, ...) y descarta destinatarios duplicados.

Troubleshooting

ProblemaCausa habitualQué hacer
Al iniciar sesión, el navegador queda en una página http://localhost:<puerto>/callbackEs el comportamiento normal: su cliente recibe ahí la respuesta del login (ver Por qué el login termina en localhost)Nada. Vuelva a su cliente de IA, que ya quedó conectado.
ERR_CONNECTION_REFUSED (o "no se puede acceder a este sitio") en una dirección localhostEl receptor temporal del login ya se cerró: o el login se completó hace rato, o pasó demasiado tiempo entre abrir el navegador y entrar la contraseñaVuelva a lanzar la conexión desde su cliente para que abra un receptor nuevo. Si el agente ya funciona, ignórelo.
En Claude.ai no aparece la opción de agregar un conector personalizadoSu cuenta es miembro de una organización Team o Enterprise, donde solo un Owner puede agregarlosPida a quien administre la organización que lo agregue desde Configuración de la organización → Conectores. Después usted se autentica con su propia cuenta.
El login de Fidelizador no abre, o el cliente pide autorizar de nuevo cada pocas horasLa conexión se cayó a la sesión de navegador (24h), en vez de quedar en modo offlineVuelva a conectar el servidor desde cero en su cliente. Si el problema persiste tras varios días, avise a soporte — puede ser un ajuste del lado del servidor.
"Esta cuenta no tiene instancias asociadas"Su usuario no tiene acceso a ninguna instancia de FidelizadorVerifique con quien administra su cuenta que su usuario tenga acceso a al menos una instancia.
"Este usuario administra varias instancias. Indique el parámetro slug..."Administra más de una instancia y no indicó sobre cuál operarPídale al agente que llame primero list_instances y especifique el slug deseado en el pedido.
La importación de una lista de Google Drive queda "pendiente" tras abrir el enlace y autorizarLa autorización aún no llegó al servidor (demora normal de unos segundos)Espere unos segundos y pida al agente que reintente — no hace falta abrir el enlace de nuevo.
"Se alcanzó el límite de N llamadas por minuto para esta instancia"Se superó el rate limit configurado para la instanciaEspere unos momentos antes de la siguiente consulta. Si el límite es muy bajo para su uso habitual, contacte a soporte para ajustarlo.
El agente pide confirmar un envío y no continúaSalvaguarda esperada: los envíos sobre el umbral de volumen piden confirmación explícita en el chatConfirme (o rechace) cuando el agente se lo pregunte — no es un error.
Un tool devuelve un error de disponibilidad (5xx)El backend está temporalmente inaccesibleReintente en unos momentos. Si persiste, contacte a soporte con la hora aproximada.