Consultar el estado de las conexiones
Dice en qué va cada conexión: si la credencial quedó vinculada, qué sincronizaciones corrieron y si YA HAY DATOS para consultar ('datosListos').
| Tool ID | conexiones.estado.consultar |
| Nombre MCP | conexiones__estado__consultar |
| Conector | conexiones |
| Plano | action |
| Scope (permiso) | conexiones:read |
| Auth | none |
| Versión | 1 |
| Sensible | no |
| Deprecado | no |
| Comportamiento | readOnly=true, destructive=false, idempotent=true, openWorld=false |
Qué hace
Úsala después de que la persona complete un enlace, y antes de intentar leer: un listado vacío no significa que no haya nada, puede ser que todavía no sincronizó. La primera sincronización de un sistema con navegador puede tardar cerca de un minuto. El campo 'herramientas' trae los ids que ya puedes invocar; si tu cliente MCP todavía no los muestra en su lista, invócalos con la herramienta 'execute' pasando el id en 'tool'.
Entrada
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
sistema | string | no | Filtra por código de sistema. |
conexionId | string | no | conn_…, filtra una conexión puntual. |
JSON Schema de entrada
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"sistema": {
"description": "Filtra por código de sistema.",
"type": "string"
},
"conexionId": {
"description": "conn_…, filtra una conexión puntual.",
"type": "string"
}
}
}Ejemplo
curl -X POST https://connect.emisso.ai/api/v1/tools/conexiones.estado.consultar/execute \
-H "Authorization: Bearer connect_sk_…" \
-H "Content-Type: application/json" \
-d '{"input":{"sistema":"sii"}}'const data = await connect.tools.conexiones.estado.consultar({ sistema: "sii" });{
"tool": "conexiones.estado.consultar",
"params": {
"sistema": "sii"
}
}Salida esperada (200):
{
"data": {
"conexiones": [
{
"id": "conn_9tKfR2mQx4Vb",
"sistema": "sii",
"nombre": "Comercial Aurora SpA",
"estado": "active",
"credencial": "linked",
"verificadaEn": "2026-08-07T14:12:03.220Z",
"alcances": [
"rcv",
"boletas"
],
"cadencia": "daily",
"trabajos": [
{
"id": "sjb_k2Rw81QpLm3N",
"estado": "succeeded",
"periodo": "2026-07",
"alcances": [
"rcv"
],
"registros": 214,
"error": null
}
],
"datosListos": true,
"herramientas": [
"sii.conexion.sincronizar",
"sii.conexion.verificar",
"sii.rcv.consultar",
"sii.boletas.consultar"
]
}
]
},
"meta": {
"request_id": "req_…",
"tool_id": "conexiones.estado.consultar",
"plane": "action",
"latency_ms": 24,
"audit_status": "recorded"
}
}datosListos true: al menos una sincronización terminó bien y no hay trabajos pendientes, así que las tools de consulta ya tienen qué responder.
Salida
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
conexiones | lista de objeto | sí | Las conexiones de esta organización que pasan el filtro, con su estado y sus últimas sincronizaciones. |
conexiones[].id | string | sí | El id de la conexión (conn_…). Es lo que va en la cabecera 'X-Connect-Connection' de cada llamada a este sistema. |
conexiones[].sistema | string | sí | El código del sistema al que pertenece esta conexión. |
conexiones[].nombre | string | sí | El nombre con que se creó la conexión, normalmente la empresa a la que pertenece la credencial. |
conexiones[].estado | "active" · "disabled" · "pending" | sí | En qué estado está la conexión. 'active' = utilizable. 'disabled' = pausada, sus tools responden 'connection_disabled'. 'pending' = creada pero todavía sin credencial vinculada. |
conexiones[].credencial | "linked" · "invalid" · "revoked" · "ausente" | sí | En qué estado está la credencial de esta conexión. 'linked' = vinculada y utilizable. 'invalid' = el sistema externo la rechazó, hay que reconectar. 'revoked' = se revocó a propósito. 'ausente' = nunca se entregó. Todo lo que no sea 'linked' se arregla con 'conexiones.enlace.crear' en modo 'reconectar'. |
conexiones[].verificadaEn | string | null | sí |
conexiones[].alcances | lista de string | sí | Los módulos de datos habilitados en esta conexión. Pedir uno que no esté en esta lista responde 'alcance_not_enabled'. |
conexiones[].cadencia | "off" · "daily" · "12h" · "6h" | null | sí |
conexiones[].trabajos | lista de objeto | sí | Las últimas sincronizaciones programadas de esta conexión, de la más reciente a la más antigua. |
conexiones[].trabajos[].id | string | sí | El id de esta sincronización programada (sjb_…). |
conexiones[].trabajos[].estado | "queued" · "running" · "succeeded" · "failed" · "partial" | sí | En qué va la sincronización. 'queued' y 'running' significan que todavía está trabajando: espera antes de concluir que no hay datos. 'succeeded' terminó bien, 'partial' escribió una parte y 'failed' no escribió nada, con la causa en 'error'. |
conexiones[].trabajos[].periodo | string | sí | El mes que sincronizó esta corrida, en formato AAAA-MM. |
conexiones[].trabajos[].alcances | lista de string | sí | Qué módulos de datos abarcó esta corrida. |
conexiones[].trabajos[].registros | entero | null | sí |
conexiones[].trabajos[].error | string | null | sí |
conexiones[].datosListos | booleano | sí | La respuesta a «¿ya puedo leer?»: alguna sincronización terminó bien y ninguna está en curso. Revísalo antes de concluir que no hay datos, porque un listado vacío con 'datosListos' en false significa «espera», no «no tienes nada». Un período legítimamente sin registros cuenta como sincronización exitosa: este campo no mira si hay filas. |
conexiones[].herramientas | lista de string | sí | Los ids de tool que ya puedes invocar sobre esta conexión. Si tu cliente MCP todavía no los muestra, llámalos con 'execute' pasando el id en 'tool'. |
JSON Schema de salida
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"conexiones": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "El id de la conexión (conn_…). Es lo que va en la cabecera 'X-Connect-Connection' de cada llamada a este sistema."
},
"sistema": {
"type": "string",
"description": "El código del sistema al que pertenece esta conexión."
},
"nombre": {
"type": "string",
"description": "El nombre con que se creó la conexión, normalmente la empresa a la que pertenece la credencial."
},
"estado": {
"type": "string",
"enum": [
"active",
"disabled",
"pending"
],
"description": "En qué estado está la conexión. 'active' = utilizable. 'disabled' = pausada, sus tools responden 'connection_disabled'. 'pending' = creada pero todavía sin credencial vinculada."
},
"credencial": {
"type": "string",
"enum": [
"linked",
"invalid",
"revoked",
"ausente"
],
"description": "En qué estado está la credencial de esta conexión. 'linked' = vinculada y utilizable. 'invalid' = el sistema externo la rechazó, hay que reconectar. 'revoked' = se revocó a propósito. 'ausente' = nunca se entregó. Todo lo que no sea 'linked' se arregla con 'conexiones.enlace.crear' en modo 'reconectar'."
},
"verificadaEn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Cuándo se probó por última vez la credencial contra el sistema externo (ISO 8601). 'null' si nunca se probó. Una fecha vieja no invalida la credencial por sí sola."
},
"alcances": {
"type": "array",
"items": {
"type": "string"
},
"description": "Los módulos de datos habilitados en esta conexión. Pedir uno que no esté en esta lista responde 'alcance_not_enabled'."
},
"cadencia": {
"anyOf": [
{
"type": "string",
"enum": [
"off",
"daily",
"12h",
"6h"
]
},
{
"type": "null"
}
],
"description": "Cada cuánto sincroniza sola esta conexión. 'off' o 'null' significan que nadie la sincroniza por ti: llama a la tool 'conexion.sincronizar' del sistema cuando quieras datos frescos."
},
"trabajos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "El id de esta sincronización programada (sjb_…)."
},
"estado": {
"type": "string",
"enum": [
"queued",
"running",
"succeeded",
"failed",
"partial"
],
"description": "En qué va la sincronización. 'queued' y 'running' significan que todavía está trabajando: espera antes de concluir que no hay datos. 'succeeded' terminó bien, 'partial' escribió una parte y 'failed' no escribió nada, con la causa en 'error'."
},
"periodo": {
"type": "string",
"description": "El mes que sincronizó esta corrida, en formato AAAA-MM."
},
"alcances": {
"type": "array",
"items": {
"type": "string"
},
"description": "Qué módulos de datos abarcó esta corrida."
},
"registros": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "Cuántos registros escribió. 'null' significa que todavía no se sabe (la corrida no terminó), y es distinto de un 0, que sí es un resultado: ese período no tenía nada."
},
"error": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "La causa de la falla cuando 'estado' es 'failed'. 'null' en cualquier otro caso."
}
},
"required": [
"id",
"estado",
"periodo",
"alcances",
"registros",
"error"
],
"additionalProperties": false
},
"description": "Las últimas sincronizaciones programadas de esta conexión, de la más reciente a la más antigua."
},
"datosListos": {
"type": "boolean",
"description": "La respuesta a «¿ya puedo leer?»: alguna sincronización terminó bien y ninguna está en curso. Revísalo antes de concluir que no hay datos, porque un listado vacío con 'datosListos' en false significa «espera», no «no tienes nada». Un período legítimamente sin registros cuenta como sincronización exitosa: este campo no mira si hay filas."
},
"herramientas": {
"type": "array",
"items": {
"type": "string"
},
"description": "Los ids de tool que ya puedes invocar sobre esta conexión. Si tu cliente MCP todavía no los muestra, llámalos con 'execute' pasando el id en 'tool'."
}
},
"required": [
"id",
"sistema",
"nombre",
"estado",
"credencial",
"verificadaEn",
"alcances",
"cadencia",
"trabajos",
"datosListos",
"herramientas"
],
"additionalProperties": false
},
"description": "Las conexiones de esta organización que pasan el filtro, con su estado y sus últimas sincronizaciones."
}
},
"required": [
"conexiones"
],
"additionalProperties": false
}Errores de esta tool
Toda llamada puede devolver además los códigos transversales (validation_error, unauthorized, scope_not_granted, rate_limited, entre otros): el detalle vive en el catálogo de errores.
Crear un enlace para conectar un sistema
Crea un enlace de un solo uso donde la persona entrega sus credenciales del sistema para conectarlo.
Listar los sistemas que se pueden conectar
Devuelve el catálogo de sistemas chilenos que esta organización puede conectar (bancos, SII) con el estado de cada uno: si ya está conectado, sus conexiones, los módulos de datos que ofrece y las herramientas que quedan disponibles al conectarlo.