# 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.



{/* AUTO-GENERATED by @emisso/codegen. DO NOT EDIT. */}

|                     |                                                                    |
| ------------------- | ------------------------------------------------------------------ |
| **Tool ID**         | `mercadopublico.adjuntos.consultar`                                |
| **Nombre MCP**      | `mercadopublico__adjuntos__consultar`                              |
| **Conector**        | `mercadopublico`                                                   |
| **Plano**           | `action`                                                           |
| **Scope (permiso)** | `mercadopublico:read`                                              |
| **Auth**            | `none`                                                             |
| **Versión**         | `1`                                                                |
| **Sensible**        | no                                                                 |
| **Deprecado**       | no                                                                 |
| **Comportamiento**  | readOnly=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`](../conexiones/estado-consultar).

## Qué hace [#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 [#entrada]

| Campo              | Tipo                         | Requerido | Descripción                                                          |
| ------------------ | ---------------------------- | --------- | -------------------------------------------------------------------- |
| `codigoLicitacion` | string `^\d+-\d+-[A-Z0-9]+$` | sí        | ID público de la licitación, por ejemplo 803-6-LE26. No acepta URLs. |

<details>
  <summary>
    JSON Schema de entrada
  </summary>

  ```json
  {
    "$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"
    ]
  }
  ```
</details>

## Salida [#salida]

| Campo                      | Tipo                                                                                            | Requerido | Descripción                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                     |
| -------------------------- | ----------------------------------------------------------------------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `codigoLicitacion`         | string                                                                                          | sí        | ID público de la licitación consultada.                                                                                                                                                                                                                                                                   |                                                                                                                                                                                     |
| `estado`                   | `"no_solicitada"` · `"pendiente"` · `"procesando"` · `"disponible"` · `"parcial"` · `"fallido"` | sí        | Estado de la descarga solicitada a Connect.                                                                                                                                                                                                                                                               |                                                                                                                                                                                     |
| `solicitadoEn`             | string                                                                                          | null      | sí                                                                                                                                                                                                                                                                                                        | Instante ISO 8601 de la última solicitud, o null si no existe.                                                                                                                      |
| `finalizadoEn`             | string                                                                                          | null      | sí                                                                                                                                                                                                                                                                                                        | Instante ISO 8601 en que terminó la descarga, si corresponde.                                                                                                                       |
| `errorCodigo`              | string                                                                                          | null      | sí                                                                                                                                                                                                                                                                                                        | Código acotado de fallo, sin datos de sesión ni URLs del portal.                                                                                                                    |
| `consultarEnSegundos`      | entero                                                                                          | null      | sí                                                                                                                                                                                                                                                                                                        | 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`              | string                                                                                          | null      | sí                                                                                                                                                                                                                                                                                                        | Instante ISO 8601 de la última inspección del portal conservada.                                                                                                                    |
| `totalAnexos`              | entero                                                                                          | sí        | Cantidad de anexos observados en el listado recorrido.                                                                                                                                                                                                                                                    |                                                                                                                                                                                     |
| `completo`                 | booleano                                                                                        | sí        | 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`     | lista de string                                                                                 | sí        | Razones por las que el inventario o las descargas requieren revisión.                                                                                                                                                                                                                                     |                                                                                                                                                                                     |
| `documentos`               | lista de objeto                                                                                 | sí        | Todos los anexos observados en la grilla, sin clasificar su contenido: los descargados llevan enlace firmado; el resto indica su estado.                                                                                                                                                                  |                                                                                                                                                                                     |
| `documentos[].id`          | string                                                                                          | null      | sí                                                                                                                                                                                                                                                                                                        | SHA-256 del archivo conservado; identifica su versión sin depender de la fila del portal. null si el anexo no se descargó.                                                          |
| `documentos[].nombre`      | string                                                                                          | sí        | Nombre declarado por el comprador para el anexo.                                                                                                                                                                                                                                                          |                                                                                                                                                                                     |
| `documentos[].descripcion` | string                                                                                          | null      | sí                                                                                                                                                                                                                                                                                                        | Descripción del anexo en el portal, si existe.                                                                                                                                      |
| `documentos[].tipo`        | string                                                                                          | null      | sí                                                                                                                                                                                                                                                                                                        | Tipo de anexo informado por el portal, si existe.                                                                                                                                   |
| `documentos[].tamanoTexto` | string                                                                                          | sí        | Tamaño tal como lo muestra la grilla del portal (por ejemplo '263 KB').                                                                                                                                                                                                                                   |                                                                                                                                                                                     |
| `documentos[].fechaTexto`  | string                                                                                          | sí        | 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"` · …                                 | null      | sí                                                                                                                                                                                                                                                                                                        | Formato del archivo conservado; null si el anexo no se descargó.                                                                                                                    |
| `documentos[].bytes`       | entero                                                                                          | null      | sí                                                                                                                                                                                                                                                                                                        | Tamaño en bytes del archivo conservado; null si no se descargó.                                                                                                                     |
| `documentos[].sha256`      | string                                                                                          | null      | sí                                                                                                                                                                                                                                                                                                        | Huella SHA-256 del archivo conservado; null si no se descargó.                                                                                                                      |
| `documentos[].archivoUrl`  | string                                                                                          | null      | sí                                                                                                                                                                                                                                                                                                        | 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.                                            |
| `documentos[].urlVenceEn`  | string                                                                                          | null      | sí                                                                                                                                                                                                                                                                                                        | Instante ISO 8601 en que caduca archivoUrl, si se firmó.                                                                                                                            |
| `resultadoAnterior`        | booleano                                                                                        | sí        | 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.                                                                                                                   |                                                                                                                                                                                     |

<details>
  <summary>
    JSON Schema de salida
  </summary>

  ```json
  {
    "$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
  }
  ```
</details>

## Errores de esta tool [#errores-de-esta-tool]

| Código                | HTTP | Reintentable | Qué hacer                                                         |
| --------------------- | ---- | ------------ | ----------------------------------------------------------------- |
| `connection_disabled` | 403  | no           | Reactí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](../errores).
