Emisso Connect

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 IDconexiones.estado.consultar
Nombre MCPconexiones__estado__consultar
Conectorconexiones
Planoaction
Scope (permiso)conexiones:read
Authnone
Versión1
Sensibleno
Deprecadono
ComportamientoreadOnly=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

CampoTipoRequeridoDescripción
sistemastringnoFiltra por código de sistema.
conexionIdstringnoconn_…, 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
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"}}'
SDK TypeScript
const data = await connect.tools.conexiones.estado.consultar({ sistema: "sii" });
MCP · meta-tool execute
{
  "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

CampoTipoRequeridoDescripción
conexioneslista de objetoLas conexiones de esta organización que pasan el filtro, con su estado y sus últimas sincronizaciones.
conexiones[].idstringEl id de la conexión (conn_…). Es lo que va en la cabecera 'X-Connect-Connection' de cada llamada a este sistema.
conexiones[].sistemastringEl código del sistema al que pertenece esta conexión.
conexiones[].nombrestringEl nombre con que se creó la conexión, normalmente la empresa a la que pertenece la credencial.
conexiones[].estado"active" · "disabled" · "pending"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"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[].verificadaEnstringnull
conexiones[].alcanceslista de stringLos 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
conexiones[].trabajoslista de objetoLas últimas sincronizaciones programadas de esta conexión, de la más reciente a la más antigua.
conexiones[].trabajos[].idstringEl id de esta sincronización programada (sjb_…).
conexiones[].trabajos[].estado"queued" · "running" · "succeeded" · "failed" · "partial"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[].periodostringEl mes que sincronizó esta corrida, en formato AAAA-MM.
conexiones[].trabajos[].alcanceslista de stringQué módulos de datos abarcó esta corrida.
conexiones[].trabajos[].registrosenteronull
conexiones[].trabajos[].errorstringnull
conexiones[].datosListosbooleanoLa 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[].herramientaslista de stringLos 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.

On this page