Connect

Consultar adjuntos descargados de una licitación

Consulta el estado y los adjuntos ya conservados por Connect, con los metadatos originales del portal y sin clasificar el contenido.

Tool IDmercadopublico.adjuntos.consultar
Nombre MCPmercadopublico__adjuntos__consultar
Conectormercadopublico
Planoaction
Scope (permiso)mercadopublico:read
Authnone
Versión1
Sensibleno
Deprecadono
ComportamientoreadOnly=true, destructive=false, idempotent=true, openWorld=false

Requiere conexión. Indica cuál en cada llamada: header X-Connect-Connection en REST, campo connectionId en el execute de MCP y en las opciones del SDK. No hay resolución implícita, ni siquiera con una sola conexión activa: la conexión es la empresa. El id sale de conexiones.estado.consultar.

Qué hace

No abre el portal ni inicia una descarga. no_solicitada, pendiente y fallido no significan que una licitación carezca de adjuntos. Mientras una actualización está en curso, o si falla, entrega los documentos de la descarga anterior con resultadoAnterior en true; sólo una descarga exitosa los reemplaza.

Entrada

CampoTipoRequeridoDescripción
codigoLicitacionstring ^\d+-\d+-[A-Z0-9]+$síID público de la licitación, por ejemplo 803-6-LE26. No acepta URLs.
JSON Schema de entrada
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "codigoLicitacion": {
      "type": "string",
      "maxLength": 50,
      "pattern": "^\\d+-\\d+-[A-Z0-9]+$",
      "description": "ID público de la licitación, por ejemplo 803-6-LE26. No acepta URLs."
    }
  },
  "required": [
    "codigoLicitacion"
  ]
}

Salida

CampoTipoRequeridoDescripción
codigoLicitacionstringsíID público de la licitación consultada.
estado"no_solicitada" · "pendiente" · "procesando" · "disponible" · "parcial" · "fallido"síEstado de la descarga solicitada a Connect.
solicitadoEnstringnullsí
finalizadoEnstringnullsí
errorCodigostringnullsí
consultarEnSegundosenteronullsí
observadoEnstringnullsí
totalAnexosenterosíCantidad de anexos observados en el listado recorrido.
completobooleanosíSe recorrió todo el listado y se descargaron los adjuntos admitidos (PDF, Word, Excel, PNG y JPEG) dentro de los límites. Los formatos no admitidos o las descargas pendientes se informan en motivosIncompletitud.
motivosIncompletitudlista de stringsíRazones por las que el inventario o las descargas requieren revisión.
documentoslista de objetosíTodos los anexos observados en la grilla, sin clasificar su contenido: los descargados llevan enlace firmado; el resto indica su estado.
documentos[].idstringnullsí
documentos[].nombrestringsíNombre declarado por el comprador para el anexo.
documentos[].descripcionstringnullsí
documentos[].tipostringnullsí
documentos[].tamanoTextostringsíTamaño tal como lo muestra la grilla del portal (por ejemplo '263 KB').
documentos[].fechaTextostringsíFecha del anexo tal como la muestra la grilla del portal, como texto sin normalizar y con formato no garantizado; no la parsees como fecha. Es parte de la identidad natural del anexo.
documentos[].estado"descargado" · "omitido_formato" · "omitido_tamano" · "no_descargado"síEstado del anexo en la grilla observada. 'descargado': hay archivo conservado (lleva archivoUrl). 'omitido_formato': el anexo no es PDF, Word, Excel ni imagen PNG o JPEG. 'omitido_tamano': supera el tope de tamaño. 'no_descargado': se observó pero no se conserva (error o límite de la corrida).
documentos[].formato"pdf" · "docx" · "doc" · "xlsx" · "xls" · "png" · …nullsí
documentos[].bytesenteronullsí
documentos[].sha256stringnullsí
documentos[].archivoUrlstringnullsí
documentos[].urlVenceEnstringnullsí
resultadoAnteriorbooleanosítrue si los documentos son de una descarga anterior: hay una actualización en curso (pendiente o procesando) o la última actualización falló (fallido). observadoEn dice de cuándo son.
JSON Schema de salida
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "codigoLicitacion": {
      "type": "string",
      "description": "ID público de la licitación consultada."
    },
    "estado": {
      "type": "string",
      "enum": [
        "no_solicitada",
        "pendiente",
        "procesando",
        "disponible",
        "parcial",
        "fallido"
      ],
      "description": "Estado de la descarga solicitada a Connect."
    },
    "solicitadoEn": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Instante ISO 8601 de la última solicitud, o null si no existe."
    },
    "finalizadoEn": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Instante ISO 8601 en que terminó la descarga, si corresponde."
    },
    "errorCodigo": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Código acotado de fallo, sin datos de sesión ni URLs del portal."
    },
    "consultarEnSegundos": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "Mientras la descarga está pendiente o en proceso, cuántos segundos esperar antes de volver a llamar a mercadopublico.adjuntos.consultar. null cuando ya terminó o no hay solicitud."
    },
    "observadoEn": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Instante ISO 8601 de la última inspección del portal conservada."
    },
    "totalAnexos": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991,
      "description": "Cantidad de anexos observados en el listado recorrido."
    },
    "completo": {
      "type": "boolean",
      "description": "Se recorrió todo el listado y se descargaron los adjuntos admitidos (PDF, Word, Excel, PNG y JPEG) dentro de los límites. Los formatos no admitidos o las descargas pendientes se informan en motivosIncompletitud."
    },
    "motivosIncompletitud": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Razones por las que el inventario o las descargas requieren revisión."
    },
    "documentos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "SHA-256 del archivo conservado; identifica su versión sin depender de la fila del portal. null si el anexo no se descargó."
          },
          "nombre": {
            "type": "string",
            "description": "Nombre declarado por el comprador para el anexo."
          },
          "descripcion": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Descripción del anexo en el portal, si existe."
          },
          "tipo": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tipo de anexo informado por el portal, si existe."
          },
          "tamanoTexto": {
            "type": "string",
            "description": "Tamaño tal como lo muestra la grilla del portal (por ejemplo '263 KB')."
          },
          "fechaTexto": {
            "type": "string",
            "description": "Fecha del anexo tal como la muestra la grilla del portal, como texto sin normalizar y con formato no garantizado; no la parsees como fecha. Es parte de la identidad natural del anexo."
          },
          "estado": {
            "type": "string",
            "enum": [
              "descargado",
              "omitido_formato",
              "omitido_tamano",
              "no_descargado"
            ],
            "description": "Estado del anexo en la grilla observada. 'descargado': hay archivo conservado (lleva archivoUrl). 'omitido_formato': el anexo no es PDF, Word, Excel ni imagen PNG o JPEG. 'omitido_tamano': supera el tope de tamaño. 'no_descargado': se observó pero no se conserva (error o límite de la corrida)."
          },
          "formato": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pdf",
                  "docx",
                  "doc",
                  "xlsx",
                  "xls",
                  "png",
                  "jpg"
                ],
                "description": "Formato del archivo conservado, verificado por su contenido: 'pdf'; Word ('docx', 'doc'); Excel ('xlsx', 'xls'); imagen ('png', 'jpg', que incluye .jpeg). El enlace entrega el archivo con su tipo de contenido correspondiente."
              },
              {
                "type": "null"
              }
            ],
            "description": "Formato del archivo conservado; null si el anexo no se descargó."
          },
          "bytes": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ],
            "description": "Tamaño en bytes del archivo conservado; null si no se descargó."
          },
          "sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Huella SHA-256 del archivo conservado; null si no se descargó."
          },
          "archivoUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Enlace temporal al archivo conservado por Connect; null si no está descargado o no pudo firmarse. Nunca es una URL de sesión del portal."
          },
          "urlVenceEn": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Instante ISO 8601 en que caduca archivoUrl, si se firmó."
          }
        },
        "required": [
          "id",
          "nombre",
          "descripcion",
          "tipo",
          "tamanoTexto",
          "fechaTexto",
          "estado",
          "formato",
          "bytes",
          "sha256",
          "archivoUrl",
          "urlVenceEn"
        ],
        "additionalProperties": false
      },
      "description": "Todos los anexos observados en la grilla, sin clasificar su contenido: los descargados llevan enlace firmado; el resto indica su estado."
    },
    "resultadoAnterior": {
      "type": "boolean",
      "description": "true si los documentos son de una descarga anterior: hay una actualización en curso (pendiente o procesando) o la última actualización falló (fallido). observadoEn dice de cuándo son."
    }
  },
  "required": [
    "codigoLicitacion",
    "estado",
    "solicitadoEn",
    "finalizadoEn",
    "errorCodigo",
    "consultarEnSegundos",
    "observadoEn",
    "totalAnexos",
    "completo",
    "motivosIncompletitud",
    "documentos",
    "resultadoAnterior"
  ],
  "additionalProperties": false
}

Errores de esta tool

CódigoHTTPReintentableQué hacer
connection_disabled403noReactívala en /connections o usa otra conexión del mismo sistema.

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.

En esta página