Recursos máquina-legibles
Todo el sitio existe en markdown y contratos: pega una URL y descubre el API entero.
Esta documentación tiene dos audiencias, y la segunda no navega: carga todo de una vez. Cada página de /docs existe también como markdown limpio, el catálogo completo existe como contrato OpenAPI 3.1 y el servidor MCP se describe solo. Pega cualquiera de estas URLs en el contexto de un agente y el agente tiene el API entero sin scrapear HTML.
Los artefactos
| URL | Qué contiene | Cuándo usarlo |
|---|---|---|
/llms.txt | El índice de todas las páginas, con el título y la descripción de cada una. | Para orientarse: es corto y lista qué más pedir. |
/llms-full.txt | El corpus completo: todas las páginas concatenadas como texto plano. | Para cargar la documentación entera en un contexto grande, de una sola vez. |
/docs/{ruta}.md | Cada página de /docs como markdown limpio: agrégale .md a la URL. El markdown de /docs/empezar/conectar está en /docs/empezar/conectar.md, y el de la portada en /docs.md. | Para leer una página puntual sin el HTML del sitio, o para mandarle a alguien el link del markdown. |
/llms.mdx/{ruta} | Exactamente la misma respuesta que la fila de arriba, en la ruta propia que existía antes del sufijo. | Si ya tienes esta ruta escrita en algún script. Para todo lo demás alcanza el sufijo .md. |
/docs/openapi.json | El contrato OpenAPI 3.1 del catálogo documentado completo, SII y bancos incluidos, con los JSON-Schema de entrada y salida de cada tool. | Para generar clientes, validar formas o alimentar un agente que razona sobre contratos. |
/api/v1/openapi.json | El feed público que sirve el propio runtime. Más angosto: solo los conectores de uso general. | Cuando importa lo que el gateway expone sin autenticar, no el catálogo entero. |
https://connect.emisso.ai/mcp | El servidor MCP. Anuncia tres meta-tools, search_docs, execute y execute_write; el catálogo completo vive detrás de ellas. | Para operar, no para leer: es la superficie de ejecución. El detalle está en el servidor MCP. |
Los dos contratos OpenAPI cubren la ejecución de tools. Los endpoints de control (conexiones, sincronizaciones, webhooks) todavía no entran en esos archivos; su referencia es la API de control.
Tres formas de pedir la misma página
El markdown de una página se pide de tres maneras, y las tres devuelven el mismo cuerpo porque salen de la misma fuente.
- El sufijo
.md. Cualquier URL de/docssirve su markdown si le agregas.md. Es la convención que ya usan la documentación de Anthropic, la de Stripe y la del AI SDK, así que un agente que la conoce no necesita leer esta página para descubrirla. Además es la única forma que produce una URL propia: se puede pegar en un chat y quien la abra ve el markdown. - La cabecera
Accept: text/markdownsobre la URL normal de la página. Sirve al agente que no construye URLs y ya tiene el link HTML. Claude Code, Cursor y OpenCode mandan esa cabecera en todo pedido, así que reciben markdown sin configurar nada. - La ruta
/llms.mdx/{ruta}, que es donde vive el generador. Las dos formas de arriba reescriben a esta.
Las respuestas markdown salen con X-Robots-Tag: noindex. La página HTML tiene el mismo contenido y es la que queremos en los resultados de búsqueda: es la que está en el sitemap y la que se declara canónica. Sin ese encabezado habría tres copias exactas compitiendo con ella.
Copiar como Markdown
Cada página de /docs trae el botón «Copiar como Markdown». En vez de serializar el HTML, copia el espejo real /llms.mdx/{ruta} de esa página, el mismo que consume un agente por HTTP. Una sola fuente para la persona que pega la página en un chat y para la máquina que la fetchea.
El <head> de cada página declara además un alternates con tipo text/markdown apuntando a ese espejo, así que un agente que solo tiene la URL HTML puede descubrir la versión markdown sin conocer la convención de rutas.
Prompt de arranque
Para entregarle Connect a un agente, acompaña el servidor MCP con este bloque:
Enséñale a tu IA a usar Connect
Se abre con el texto ya escrito: lo revisas y lo envías tú. No lleva ninguna clave.
Primero agrega Emisso Connect a tu IA como servidor MCP, con la dirección connect.emisso.ai/mcp. Este texto le enseña a usarlo; no lo instala.
- Abrir en Claudeclaude.ai (abre en una pestaña nueva)
- Abrir en ChatGPTchatgpt.com (abre en una pestaña nueva)
- Abrir en Cursorcursor.com (abre en una pestaña nueva)
Claude te mostrará un aviso de seguridad: lo pone en todo texto que llega por un enlace. Revisa que empiece con «Tienes Emisso Connect (https://connect.emisso.ai/mcp)…» y envíalo.
Lo que le pide a tu IA
- Que parta por
search_docs: el catálogo de lo que puede usar, con la ficha y un ejemplo de cada herramienta. - Que use la empresa correcta: el
connectionIdsiempre explícito; si hay varias conexiones te pregunta cuál, y antes de escribir te confirma la empresa. - Que lea en dos pasos: sincronizar trae los datos y consultar lee lo guardado. Una lista vacía puede ser un período sin sincronizar.
- Que te muestre el enlace cuando falte una conexión, con su dominio a la vista, y que ante un error siga el
suggested_fix.
Tienes Emisso Connect (https://connect.emisso.ai/mcp): el puente a los sistemas chilenos de esta organización (SII, bancos, Previred, indicadores). Reglas:
- Parte siempre por search_docs. Sin argumentos trae el índice de herramientas por sistema, con su puerta (execute para leer, execute_write para escribir): usa solo los ids que aparecen ahí. Con {tool: "<id>"} trae la ficha completa: esquema de argumentos y un ejemplo ejecutable.
- connectionId va siempre explícito en la llamada; sácalo de conexiones.estado.consultar. Considera solo las conexiones activas que tengan la herramienta que necesitas: si queda una, úsala; si quedan varias, pregunta cuál. Antes de escribir (emitir, sincronizar o crear un enlace), confirma la empresa con la persona.
- En el SII, los bancos y Previred, leer son dos pasos: <sistema>.conexion.sincronizar escribe (con execute_write; se encola y vuelve al instante con un jobId, sin datos) y <recurso>.consultar lee lo ya guardado (con execute). Sincronizar requiere un plan activo: sin plan responde 402 subscription_required. Una lista vacía puede ser un período sin sincronizar: revisa datosListos en conexiones.estado.consultar antes de concluir que no hay nada. Notta y los indicadores no se sincronizan: se leen directo con execute.
- Si un sistema aparece con conectado: false, crea un enlace con execute_write y 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.
- 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.
Las cinco reglas responden a comportamiento real del gateway: la regla 2 evita el error validation_error con que el gateway rechaza una llamada sin conexión, la 3 evita concluir «no hay datos» sobre una caché todavía vacía y la 5 aprovecha que cada error del catálogo viaja con un suggested_fix accionable.
Qué hace solo un agente y qué no
| Acción | ¿La completa solo? | Por qué |
|---|---|---|
Descubrir el catálogo (search_docs) | Sí | Incluye los sistemas todavía no conectados, con el camino para conectarlos. |
Leer datos sincronizados (<recurso>.consultar) | Sí | Lee del plano ya persistido; no abre sesión contra el sistema externo. |
Sincronizar (<sistema>.conexion.sincronizar) | Sí | Usa la credencial ya vinculada en el vault; el agente solo dispara el trabajo. |
Conectar un sistema nuevo (conexiones.enlace.crear) | Solo la mitad | El agente acuña el enlace, pero la clave la entrega el humano en esa página. El enlace vence en una hora y sirve una sola vez. |
| Ver una credencial | Nunca | El vault es inaccesible también para el agente: la credencial se resuelve del lado del servidor y jamás entra al contexto del modelo ni a un resultado de tool. |
La última fila es una propiedad del diseño, no una restricción de permisos que alguien pueda relajar: ningún resultado de tool contiene material de credencial, y la bitácora guarda solo un digest del input.
Próximos pasos
- El servidor MCP: las tres meta-tools, el recorrido completo y cómo se conecta un cliente.
- Conectar un sistema: el flujo del enlace visto del lado humano.
- Sincronizar y consultar: qué separa el paso que escribe del que lee.
- Errores: el catálogo completo, con
suggested_fixpor código.
Servidor MCP
Connect es MCP-nativo, con tres herramientas que no cambian nunca: search_docs para descubrir, execute para leer y execute_write para escribir, sobre el catálogo completo.
Enlace hosted de conexión
Un enlace de un solo uso para que un tercero entregue la clave del SII o del banco: sin cuenta, sin acceso al dashboard y sin que la credencial pase por tu aplicación.