Servidor MCP
Connect es MCP-nativo, con dos herramientas que no cambian nunca, search_docs para descubrir y execute para correr, sobre el catálogo completo.
El servidor vive en https://connect.emisso.ai/mcp: remoto, HTTP, con OAuth 2.1. No hay paquete que
instalar. Anuncia dos herramientas, siempre las mismas, con cualquier catálogo: el catálogo completo
viaja por dentro, sin inflar el contexto de tu agente.
Conéctalo a tu cliente
Claude Code
claude mcp add --transport http connect https://connect.emisso.ai/mcpClaude.ai
Ajustes, Conectores, Agregar conector personalizado, y pega https://connect.emisso.ai/mcp. El
navegador abre el consentimiento OAuth de Connect: inicias sesión con tu cuenta y autorizas la
organización.
Cursor y otros clientes
{ "mcpServers": { "connect": { "url": "https://connect.emisso.ai/mcp" } } }La autorización es OAuth 2.1 con registro dinámico de clientes y PKCE. Tu agente actúa como tú, dentro de tu organización, y su acceso se corta al instante desde Agentes: la revocación cierra todas sus sesiones y deja de autenticar en la petición siguiente. El detalle del flujo está en Autenticación.
Las dos herramientas
| Herramienta | Qué hace |
|---|---|
search_docs | Qué existe. Sin argumentos devuelve el catálogo entero agrupado por sistema, con conectado por sistema y disponible por tool. Con { "tool": "sii.rcv.consultar" } devuelve la ficha completa con su esquema de salida y un ejemplo ejecutable. Llámala primero. |
execute | Correr una tool: { tool, params, connectionId }. params es obligatorio ({} si no toma argumentos). connectionId es obligatorio en todo sistema conectable: la conexión es la empresa, y no hay elección implícita ni con una sola. |
Por qué dos y no una por tool
Un catálogo completo como tools nativas quema la ventana de contexto del agente y cambia de forma con
cada conector nuevo. Dos meta-tools la mantienen constante. Es el mismo argumento con el que Stripe
migró su servidor MCP a stripe_api_search y compañía; Connect llegó a este diseño primero.
El recorrido que tu agente va a seguir
search_docspara ver los sistemas y qué estáconectado.execute { "tool": "conexiones.estado.consultar", "params": {} }para obtener losconnectionIdy el campodatosListos.executede la tool de negocio con suconnectionId: por ejemplo el RCV de julio.- Si un sistema aparece con
conectado: false, el camino esconexiones.enlace.crear: el agente crea el enlace y se lo muestra al humano con el dominio visible. La clave la entrega la persona, nunca el agente.
Prompt de arranque
Para darle Connect a un agente con las reglas ya aprendidas:
Tienes Emisso Connect (https://connect.emisso.ai/mcp): el puente a los sistemas chilenos de esta
organización (SII, bancos, indicadores). Reglas:
1. Parte siempre por search_docs. Sin argumentos trae el catálogo entero agrupado por sistema;
con {tool: "<id>"} trae la ficha completa y un ejemplo ejecutable.
2. En todo sistema conectable, connectionId es obligatorio: sácalo de conexiones.estado.consultar.
La conexión es la empresa; no hay elección implícita ni cuando existe una sola.
3. Leer son dos pasos: <sistema>.conexion.sincronizar escribe (login real contra el sistema, puede
tardar hasta 90 segundos en bancos) y <recurso>.consultar lee lo ya guardado. Una lista vacía
puede ser un período sin sincronizar: revisa datosListos en conexiones.estado.consultar antes
de concluir que no hay nada.
4. Si un sistema aparece con conectado: false, crea un enlace con conexiones.enlace.crear y
muéstralo con su dominio completo visible, explicando quién lo pidió y para qué. Nunca lo
presentes como un aviso del banco ni del SII.
5. Ante un error, sigue el suggested_fix que viene en la respuesta; no reintentes lo que no es
reintentable. Si no reconoces el error, reporta el request_id.Qué hace solo y qué no
| Acción | ¿La hace solo? |
|---|---|
| Descubrir el catálogo, consultar estados, leer datos sincronizados | Sí |
| Disparar una sincronización a pedido | Sí, con paciencia: un login bancario tarda cerca de 90 segundos |
| Crear el enlace de conexión | Sí, pero la clave la entrega el humano en la página del enlace |
| Ver o tocar una credencial | Nunca. El vault es inaccesible por diseño, también para el agente |
Compatibilidad
tools/call con un nombre nativo (sii__rcv__consultar, la codificación con doble guion bajo) sigue
despachando como puerta de compatibilidad, aunque tools/list ya no lo anuncie. Si tu cliente guardó
esos nombres, siguen funcionando.
Próximos pasos
- Recursos máquina-legibles: llms.txt, markdown por página y el OpenAPI completo.
- Conecta tu primera empresa: el flujo que tu agente va a iniciar.