Connect

Consultar búsqueda de Convenio Marco

Lee el último listado de una búsqueda.

Tool IDmercadopublico.busqueda_convenio.consultar
Nombre MCPmercadopublico__busqueda_convenio__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 y campo connectionId en el execute de MCP. 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

Incluye antigüedad y cobertura; no abre el portal ni encola nada. completitudVerificada es siempre false: el portal no declara total ni páginas. no_solicitada, pendiente o fallido no significan que no haya cotizaciones; sólo sinResultados=true es un listado vacío real.

Entrada

CampoTipoRequeridoDescripción
tienda"software3"no · default "software3"Tienda de Convenio Marco. Hoy sólo 'software3' (Software e infraestructura como servicio), la única comprobada.
tipoServicio"SERVICIO DE DESARROLLO Y MANTENCIÓN DE SOFTWARE"no · default "SERVICIO DE DESARROLLO Y MANTENCIÓN DE SOFTWARE"Tipo de servicio tal como lo ofrece el formulario del portal. Hoy sólo 'SERVICIO DE DESARROLLO Y MANTENCIÓN DE SOFTWARE'.
estado"publicada"no · default "publicada"Estado en el portal. Hoy sólo 'publicada' (recibe cotizaciones): los estados con historia (proveedor elegido, finalizada…) traen cientos de filas y el portal no alcanza a responderlos a tiempo.
publicacionIniciostringnoOpcional. Día exacto (AAAA-MM-DD, entre 2015-01-01 y mañana en Chile) en que comenzó la publicación. El portal compara igualdad: NO es «desde esa fecha».
JSON Schema de entrada
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "tienda": {
      "default": "software3",
      "description": "Tienda de Convenio Marco. Hoy sólo 'software3' (Software e infraestructura como servicio), la única comprobada.",
      "type": "string",
      "enum": [
        "software3"
      ]
    },
    "tipoServicio": {
      "default": "SERVICIO DE DESARROLLO Y MANTENCIÓN DE SOFTWARE",
      "description": "Tipo de servicio tal como lo ofrece el formulario del portal. Hoy sólo 'SERVICIO DE DESARROLLO Y MANTENCIÓN DE SOFTWARE'.",
      "type": "string",
      "enum": [
        "SERVICIO DE DESARROLLO Y MANTENCIÓN DE SOFTWARE"
      ]
    },
    "estado": {
      "default": "publicada",
      "description": "Estado en el portal. Hoy sólo 'publicada' (recibe cotizaciones): los estados con historia (proveedor elegido, finalizada…) traen cientos de filas y el portal no alcanza a responderlos a tiempo.",
      "type": "string",
      "enum": [
        "publicada"
      ]
    },
    "publicacionInicio": {
      "description": "Opcional. Día exacto (AAAA-MM-DD, entre 2015-01-01 y mañana en Chile) en que comenzó la publicación. El portal compara igualdad: NO es «desde esa fecha».",
      "type": "string"
    }
  },
  "additionalProperties": false
}

Salida

CampoTipoRequeridoDescripción
claveBusquedastringsíIdentificador estable de la búsqueda: huella de sus filtros canónicos.
filtrosobjetosíFiltros canónicos de la búsqueda: dos solicitudes con los mismos filtros comparten resultado.
filtros.tiendastringsíTienda de Convenio Marco consultada.
filtros.tipoServiciostringsíTipo de servicio pedido.
filtros.estadostringnullsí
filtros.publicacionIniciostringnullsí
estado"no_solicitada" · "pendiente" · "procesando" · "disponible" · "parcial" · "fallido"síEstado del trabajo de búsqueda en Connect, no de las cotizaciones. 'disponible': el listado se leyó entero. 'parcial': se leyó con filas ilegibles o sobre el tope conservado. 'fallido': la última lectura falló (ver errorCodigo).
solicitadoEnstringnullsí
finalizadoEnstringnullsí
errorCodigostringnullsí
consultarEnSegundosenteronullsí
observadoEnstringnullsí
antiguedadSegundosenteronullsí
resultadoAnteriorbooleanosítrue si el listado entregado es de una lectura anterior: hay una actualización en curso o la última falló.
sinResultadosbooleanosítrue sólo si el portal entregó un listado válido y vacío para estos filtros. Un fallo o una búsqueda pendiente nunca es «sin resultados».
cantidadenterosíFilas entregadas en resultados.
descartesobjetosíFilas del listado que no se entregan en resultados, por motivo.
descartes.filasIlegiblesenterosíFilas visibles que no se pudieron leer o cuyo ID no calzó con su ficha.
descartes.duplicadasenterosíFilas repetidas con el mismo ID y contenido; se entrega una.
descartes.filasNoConservadasenterosíFilas leídas por sobre el tope conservado.
coberturaobjetosíQué tan completo se sabe que es el listado entregado.
cobertura.totalDeclaradoenteronullsí
cobertura.completitudVerificadabooleanosíSiempre false: el portal no declara total ni páginas, así que no se puede comprobar que no falten filas.
cobertura.notastringsíAlcance de lo que el listado permite afirmar.
filtrosAplicadosPortalobjetonullsí
motivosIncompletitudlista de stringsíRazones por las que el resultado requiere revisión.
resultadoslista de objetosíCotizaciones observadas en la última lectura. No incluye ficha, presupuesto ni documentos: pide cada ID con mercadopublico.cotizacion_convenio.solicitar. Que un ID deje de aparecer no prueba cierre ni cancelación.
resultados[].idCotizacionstringsíID de la solicitud de cotización. Úsalo en mercadopublico.cotizacion_convenio.solicitar.
resultados[].nombrestringsíNombre de la cotización como lo muestra el listado.
resultados[].tipoServiciostringnullsí
resultados[].organismostringsíOrganismo comprador.
resultados[].inicioPublicacionstringnullsí
resultados[].finPublicacionstringnullsí
resultados[].inicioEvaluacionstringnullsí
resultados[].finEvaluacionstringnullsí
resultados[].fechaSeleccionstringnullsí
resultados[].proveedorSeleccionadostringnullsí
resultados[].ordenComprastringnullsí
resultados[].ofertasVigentesenteronullsí
resultados[].estadoCodigostringsíCódigo del estado en el portal (p. ej. '1' para Publicada).
resultados[].estadoPortalstringsíEstado tal como lo muestra el portal.
resultados[].fichaUrlstringsíFicha pública de la cotización en el portal, validada contra host, tienda e ID.
JSON Schema de salida
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "claveBusqueda": {
      "type": "string",
      "description": "Identificador estable de la búsqueda: huella de sus filtros canónicos."
    },
    "filtros": {
      "type": "object",
      "properties": {
        "tienda": {
          "type": "string",
          "description": "Tienda de Convenio Marco consultada."
        },
        "tipoServicio": {
          "type": "string",
          "description": "Tipo de servicio pedido."
        },
        "estado": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Estado vigente pedido, o null."
        },
        "publicacionInicio": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Día exacto de inicio de publicación pedido, o null."
        }
      },
      "required": [
        "tienda",
        "tipoServicio",
        "estado",
        "publicacionInicio"
      ],
      "additionalProperties": false,
      "description": "Filtros canónicos de la búsqueda: dos solicitudes con los mismos filtros comparten resultado."
    },
    "estado": {
      "type": "string",
      "enum": [
        "no_solicitada",
        "pendiente",
        "procesando",
        "disponible",
        "parcial",
        "fallido"
      ],
      "description": "Estado del trabajo de búsqueda en Connect, no de las cotizaciones. 'disponible': el listado se leyó entero. 'parcial': se leyó con filas ilegibles o sobre el tope conservado. 'fallido': la última lectura falló (ver errorCodigo)."
    },
    "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 última lectura, si corresponde."
    },
    "errorCodigo": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Código acotado del último fallo, sin URLs ni datos de sesión."
    },
    "consultarEnSegundos": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "Mientras la búsqueda está pendiente o en proceso, cuántos segundos esperar antes de consultar de nuevo; si no, null."
    },
    "observadoEn": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Instante ISO 8601 en que se leyó el listado entregado; null si aún no hay lectura."
    },
    "antiguedadSegundos": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "Segundos transcurridos desde observadoEn."
    },
    "resultadoAnterior": {
      "type": "boolean",
      "description": "true si el listado entregado es de una lectura anterior: hay una actualización en curso o la última falló."
    },
    "sinResultados": {
      "type": "boolean",
      "description": "true sólo si el portal entregó un listado válido y vacío para estos filtros. Un fallo o una búsqueda pendiente nunca es «sin resultados»."
    },
    "cantidad": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991,
      "description": "Filas entregadas en resultados."
    },
    "descartes": {
      "type": "object",
      "properties": {
        "filasIlegibles": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Filas visibles que no se pudieron leer o cuyo ID no calzó con su ficha."
        },
        "duplicadas": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Filas repetidas con el mismo ID y contenido; se entrega una."
        },
        "filasNoConservadas": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991,
          "description": "Filas leídas por sobre el tope conservado."
        }
      },
      "required": [
        "filasIlegibles",
        "duplicadas",
        "filasNoConservadas"
      ],
      "additionalProperties": false,
      "description": "Filas del listado que no se entregan en resultados, por motivo."
    },
    "cobertura": {
      "type": "object",
      "properties": {
        "totalDeclarado": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ],
          "description": "Total que declara el portal; hoy no lo declara (null)."
        },
        "completitudVerificada": {
          "type": "boolean",
          "const": false,
          "description": "Siempre false: el portal no declara total ni páginas, así que no se puede comprobar que no falten filas."
        },
        "nota": {
          "type": "string",
          "description": "Alcance de lo que el listado permite afirmar."
        }
      },
      "required": [
        "totalDeclarado",
        "completitudVerificada",
        "nota"
      ],
      "additionalProperties": false,
      "description": "Qué tan completo se sabe que es el listado entregado."
    },
    "filtrosAplicadosPortal": {
      "anyOf": [
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "description": "Filtros que el formulario devuelto por el portal muestra como aplicados (eco), por nombre de parámetro."
    },
    "motivosIncompletitud": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Razones por las que el resultado requiere revisión."
    },
    "resultados": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "idCotizacion": {
            "type": "string",
            "description": "ID de la solicitud de cotización. Úsalo en mercadopublico.cotizacion_convenio.solicitar."
          },
          "nombre": {
            "type": "string",
            "description": "Nombre de la cotización como lo muestra el listado."
          },
          "tipoServicio": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Tipo de servicio de la fila."
          },
          "organismo": {
            "type": "string",
            "description": "Organismo comprador."
          },
          "inicioPublicacion": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Fecha AAAA-MM-DD."
          },
          "finPublicacion": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Fecha AAAA-MM-DD de cierre de la publicación."
          },
          "inicioEvaluacion": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Fecha AAAA-MM-DD."
          },
          "finEvaluacion": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Fecha AAAA-MM-DD."
          },
          "fechaSeleccion": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Fecha AAAA-MM-DD de elección del proveedor, si existe."
          },
          "proveedorSeleccionado": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Proveedor elegido, si el listado lo muestra."
          },
          "ordenCompra": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Orden de compra, si el listado la muestra. Su ausencia es un dato real del portal."
          },
          "ofertasVigentes": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ],
            "description": "Ofertas vigentes informadas por el listado; null si no se lee."
          },
          "estadoCodigo": {
            "type": "string",
            "description": "Código del estado en el portal (p. ej. '1' para Publicada)."
          },
          "estadoPortal": {
            "type": "string",
            "description": "Estado tal como lo muestra el portal."
          },
          "fichaUrl": {
            "type": "string",
            "description": "Ficha pública de la cotización en el portal, validada contra host, tienda e ID."
          }
        },
        "required": [
          "idCotizacion",
          "nombre",
          "tipoServicio",
          "organismo",
          "inicioPublicacion",
          "finPublicacion",
          "inicioEvaluacion",
          "finEvaluacion",
          "fechaSeleccion",
          "proveedorSeleccionado",
          "ordenCompra",
          "ofertasVigentes",
          "estadoCodigo",
          "estadoPortal",
          "fichaUrl"
        ],
        "additionalProperties": false
      },
      "description": "Cotizaciones observadas en la última lectura. No incluye ficha, presupuesto ni documentos: pide cada ID con mercadopublico.cotizacion_convenio.solicitar. Que un ID deje de aparecer no prueba cierre ni cancelación."
    }
  },
  "required": [
    "claveBusqueda",
    "filtros",
    "estado",
    "solicitadoEn",
    "finalizadoEn",
    "errorCodigo",
    "consultarEnSegundos",
    "observadoEn",
    "antiguedadSegundos",
    "resultadoAnterior",
    "sinResultados",
    "cantidad",
    "descartes",
    "cobertura",
    "filtrosAplicadosPortal",
    "motivosIncompletitud",
    "resultados"
  ],
  "additionalProperties": false
}

Errores de esta tool

CódigoHTTPReintentableQué hacer
connection_disabled403noReactívala en /connections o usa otra conexión del mismo sistema.
connection_not_found404noUsa uno de los connectionId que lista el error, o revisa la conexión en /connections. No hace falta reactivar nada.

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