# Buscar cotizaciones de Convenio Marco

> Busca cotizaciones de Convenio Marco sin conocer IDs.



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

|                     |                                                                     |
| ------------------- | ------------------------------------------------------------------- |
| **Tool ID**         | `mercadopublico.busqueda_convenio.solicitar`                        |
| **Nombre MCP**      | `mercadopublico__busqueda_convenio__solicitar`                      |
| **Conector**        | `mercadopublico`                                                    |
| **Plano**           | `action`                                                            |
| **Scope (permiso)** | `mercadopublico:write`                                              |
| **Auth**            | `none`                                                              |
| **Versión**         | `1`                                                                 |
| **Sensible**        | no                                                                  |
| **Deprecado**       | no                                                                  |
| **Comportamiento**  | readOnly=false, 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_write` 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`](/docs/referencia/conexiones/estado-consultar).

## Qué hace [#qué-hace]

Encola la lectura del buscador público (tienda software3). Primera versión: servicio de desarrollo y mantención de software en estado Publicada (los valores por defecto), con un día exacto de inicio de publicación opcional. Reutiliza la búsqueda en curso y lecturas de los últimos 15 minutos con los mismos filtros. No descarga fichas ni documentos: consulta luego mercadopublico.busqueda\_convenio.consultar y pide cada ID elegido con mercadopublico.cotizacion\_convenio.solicitar.

## Entrada [#entrada]

| Campo               | Tipo                                                | Requerido                                                        | Descripció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. |
| `publicacionInicio` | string                                              | no                                                               | 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».                                         |

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

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

## Salida [#salida]

| Campo                       | Tipo                                                                                            | Requerido | Descripción                                                                                                                                                                                                                          |                                                                                                                      |
| --------------------------- | ----------------------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------- |
| `claveBusqueda`             | string                                                                                          | sí        | Identificador estable de la búsqueda: huella de sus filtros canónicos.                                                                                                                                                               |                                                                                                                      |
| `filtros`                   | objeto                                                                                          | sí        | Filtros canónicos de la búsqueda: dos solicitudes con los mismos filtros comparten resultado.                                                                                                                                        |                                                                                                                      |
| `filtros.tienda`            | string                                                                                          | sí        | Tienda de Convenio Marco consultada.                                                                                                                                                                                                 |                                                                                                                      |
| `filtros.tipoServicio`      | string                                                                                          | sí        | Tipo de servicio pedido.                                                                                                                                                                                                             |                                                                                                                      |
| `filtros.estado`            | string                                                                                          | null      | sí                                                                                                                                                                                                                                   | Estado vigente pedido, o null.                                                                                       |
| `filtros.publicacionInicio` | string                                                                                          | null      | sí                                                                                                                                                                                                                                   | Día exacto de inicio de publicación pedido, o null.                                                                  |
| `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). |                                                                                                                      |
| `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 última lectura, si corresponde.                                                  |
| `errorCodigo`               | string                                                                                          | null      | sí                                                                                                                                                                                                                                   | Código acotado del último fallo, sin URLs ni datos de sesión.                                                        |
| `consultarEnSegundos`       | entero                                                                                          | null      | sí                                                                                                                                                                                                                                   | Mientras la búsqueda está pendiente o en proceso, cuántos segundos esperar antes de consultar de nuevo; si no, null. |

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

  ```json
  {
    "$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."
      }
    },
    "required": [
      "claveBusqueda",
      "filtros",
      "estado",
      "solicitadoEn",
      "finalizadoEn",
      "errorCodigo",
      "consultarEnSegundos"
    ],
    "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.                                                   |
| `connection_not_found` | 404  | no           | Usa 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](/docs/referencia/errores).
