seace-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| listar_filtrosA | Valores exactos de los combos del buscador SEACE y catalogos de la API JSON de contratos. Args: categoria: 'todos' (resumen por buscador), 'anio', 'mes', 'objeto', 'tipo_seleccion', 'modalidad', 'departamento', 'version', 'encargo' (combos del buscador JSF) o 'tipos_contrato' (catalogo de la API con 'codSeleccion' para buscar_contratos). ses: sesion opcional de una busqueda previa (reutiliza la pagina cacheada; si se omite se abre una temporal). La sesion es GLOBAL y compartida entre tools. Devuelve: {'ok': True, 'combos': {categoria: {buscador: {total, ejemplos (primeros 12): [...]}}}} o, para 'tipos_contrato', {'ok': True, 'codigos': [{codSeleccion, descSeleccion}]}. Nota: el buscador CCO solo ofrece anios recientes (2024-2026, dato del sitio). |
| buscar_procesosA | Busca PROCESOS DE SELECCION en el Buscador Publico del SEACE (licitaciones, adjudicaciones abreviadas, comparaciones de precios, etc). POLITICA DE SESION: para continuar una busqueda en la pagina siguiente, re-llama con el MISMO 'ses' y la 'pagina' pedida sin repetir los filtros (o repitiendolos identicos); si envias filtros distintos inicia una busqueda nueva. Args: anio: anio de la convocatoria (OBLIGATORIO en la primera llamada; ej '2026'); sin otros filtros devuelve los procesos mas recientes de ese anio. descripcion: texto libre del objeto de contratacion (ej 'material electrico'); el buscador filtra server-side. entidad: nombre o parte del nombre de la entidad convocante. tipo: tipo de seleccion exacto (ej 'Licitacion Publica'); valores en listar_filtros. objeto: Bien / Consultoria de Obra / Obra / Servicio. modalidad: modalidad de seleccion (ej 'Acuerdo Marco'). departamento: departamento de la entidad (ej 'LIMA'). version: 'Seace 3' (se envia '3' al filtro). nro_seleccion: numero de seleccion (sin nomenclatura). numero_convocatoria: numero de convocatoria (ej '1'). snip: codigo SNIP. cui: codigo unico de inversion (CUI). sigla: sigla de la entidad. pagina: numero de pagina (15 filas por pagina; 'index' es GLOBAL y continuo entre paginas; SIN 'ses' sirve la pagina N de una busqueda NUEVA). paginas: paginas consecutivas a traer en una llamada (1..8). ses: sesion de una busqueda previa para pedir 'siguiente_pagina' o re-buscar; con filtros distintos la busqueda se re-ejecuta conservando el mismo 'ses' (no se emite id nuevo). Devuelve: {'ok', 'ses', 'tab', 'tamano_pagina', 'total', 'paginas', 'pagina', 'siguiente_pagina', 'filas': [{index (global 0-based), nro, entidad, fecha_publicacion, nomenclatura, objeto, descripcion, monto ('Reservado' o '---': ambos indican monto no publicado), moneda, version, campos (fila cruda sin JS)}]}. Los 'index' se usan con ficha_proceso. |
| buscar_acfA | Busca ANUNCIOS DE CONTRATACION FUTURA (ACF) publicados por las entidades en el SEACE. Args: objeto: tipo de objeto (OBLIGATORIO): Bien / Consultoria de Obra / Obra / Servicio. descripcion: texto del anuncio de contratacion futura. tipo: tipo de compra futura (ej 'Licitacion Publica'). entidad: entidad convocante. desde_pub: fecha inicial de publicacion dd/mm/aaaa. hasta_pub: fecha final de publicacion dd/mm/aaaa. desde_conv: fecha inicial de convocatoria aproximada dd/mm/aaaa. hasta_conv: fecha final de convocatoria aproximada dd/mm/aaaa. sigla: sigla de la entidad. pagina: numero de pagina (15 filas por pagina; 'index' global y continuo). paginas: paginas consecutivas a traer en una llamada (1..8). ses: sesion de una busqueda previa para pedir 'siguiente_pagina' o re-buscar; con filtros distintos la busqueda se re-ejecuta conservando el mismo 'ses' (no se emite id nuevo). Devuelve: Igual que buscar_procesos; cada fila trae entidad, fecha_publicacion, tipo, objeto, descripcion, condiciones, nro_items, plazo_dias y fecha_aprox_conv. |
| buscar_expresiones_interesA | Busca EXPRESIONES DE INTERES (EI) publicadas en el SEACE. Args: objeto: tipo de objeto (OBLIGATORIO): Bien / Consultoria de Obra / Obra / Servicio. descripcion: texto de la expresion de interes (acota). nro_requerimiento: numero del requerimiento. desde: fecha inicial dd/mm/aaaa. hasta: fecha final dd/mm/aaaa. entidad: entidad convocante. sigla: sigla de la entidad. pagina: numero de pagina (15 filas por pagina; 'index' global y continuo). paginas: paginas consecutivas a traer en una llamada (1..8). ses: sesion de una busqueda previa para pedir 'siguiente_pagina' o re-buscar; con filtros distintos la busqueda se re-ejecuta conservando el mismo 'ses' (no se emite id nuevo). Devuelve: Filas con {index (global), nro, entidad, numero, descripcion} + 'id_interno' (nidRequerimiento). Nota: el buscador de EI no expone fecha de publicacion ni monto por fila. |
| buscar_requerimientosA | Busca en la DIFUSION DE REQUERIMIENTOS del SEACE (bienes y servicios que las entidades requeriran). Args: objeto: tipo de objeto (OBLIGATORIO): Bien / Consultoria de Obra / Obra / Servicio. descripcion: texto del bien o servicio requerido (acota). nro_requerimiento: numero del requerimiento. desde: fecha inicial dd/mm/aaaa. hasta: fecha final dd/mm/aaaa. entidad: entidad convocante. sigla: sigla de la entidad. pagina: numero de pagina (15 filas por pagina; 'index' global y continuo). paginas: paginas consecutivas a traer en una llamada (1..8). ses: sesion de una busqueda previa para pedir 'siguiente_pagina' o re-buscar; con filtros distintos la busqueda se re-ejecuta conservando el mismo 'ses' (no se emite id nuevo). Devuelve: Filas con {index (global), nro, entidad, numero, descripcion} + 'id_interno' (nidRequerimiento). Nota: el buscador de difusion no expone fecha de publicacion ni monto por fila. |
| buscar_ocosA | Busca ORDENES DE COMPRA Y ORDENES DE SERVICIO (OC/OS) registradas en el SEACE. Args: anio: anio de la orden (OBLIGATORIO; ej '2026'). mes: mes de la orden (OBLIGATORIO; '9' o 'setiembre'). ruc: RUC de la entidad o del contratista (OBLIGATORIO); hallalo con buscar_entidades. entidad: nombre exacto de la entidad (opcional). pagina: numero de pagina (15 filas por pagina). paginas: paginas consecutivas a traer en una llamada (1..8). ses: sesion de una busqueda previa para pedir 'siguiente_pagina' o re-buscar; con filtros distintos la busqueda se re-ejecuta conservando el mismo 'ses' (no se emite id nuevo). Devuelve: Filas con nro, entidad, tipo_orden ('O/C' u 'O/S'), numero, objeto_descripcion, fecha_ini, fecha_fin, monto, ruc, entidad_rap, situacion y plazo. |
| buscar_ccoA | Busca CONDICIONES DE CONTRATACION del SEACE (contratos estandarizados de encargos y compras corporativas). Args: anio: anio de la condicion (OBLIGATORIO; ej '2026'; valores en listar_filtros). objeto: tipo de objeto: Bien / Consultoria de Obra / Obra / Servicio. tipo: tipo de procedimiento CCO (ej 'Contratos Estandarizados'). pagina: numero de pagina (15 filas por pagina). paginas: paginas consecutivas a traer en una llamada (1..8). ses: sesion de una busqueda previa para pedir 'siguiente_pagina' o re-buscar; con filtros distintos la busqueda se re-ejecuta conservando el mismo 'ses' (no se emite id nuevo). Devuelve: Filas con nro, fecha, entidad, descripcion, tipo, codigo, objeto e 'id_interno' (nidRequerimiento). |
| buscar_entidadesA | Busca ENTIDADES del Estado peruano en el buscador SEACE por nombre, RUC o sigla. Args: nombre: texto del nombre de la entidad (ej 'SEDAPAL'). ruc: RUC exacto de 11 digitos. sigla: sigla de la entidad. ses: sesion previa opcional (GLOBAL y compartida entre tools; si se omite se abre una temporal). Devuelve: {'ok', 'ses', 'total', 'filas': [{index, ruc, tipo_documento, nombre}]}. Usa el 'ruc' para buscar_ocos y el nombre exacto para buscar_procesos(entidad=...). |
| ficha_procesoA | FICHA DE SELECCION de un proceso del SEACE: cabecera completa, items, cronograma y documentos. Args: ses: sesion devuelta por buscar_procesos. index: 'index' de la fila de esa busqueda (0-based). Devuelve: {'ok', 'url_ficha', 'cabecera': mapa de pares etiqueta/valor normalizados con campos OPCIONALES (pagina_web, telefono, cui, causal, monto_del_costo... aparecen solo cuando el proceso los publica), 'items': [{nro_item, item (denominacion), cubso, cantidad, reserva_mype, paquete, monto_contratacion, estado, postor, monto_adjudicado (si adjudicado)}], 'cronograma': [{actividad, inicio, fin}], 'documentos': [{nro, etapa, documento, uuid, archivo, tamano_kb, fecha}]}. Usa url_documento(uuid) para la URL firmada del PDF. Nota: los procesos de emergencia o sin items poblados pueden traer 'items' vacio. |
| fichas_procesosA | Lote de fichas o resumenes de procesos de la MISMA busqueda, en UNA llamada (evita repetir ficha_proceso por cada index). Args: ses: sesion devuelta por buscar_procesos. indices: 'index' globales (0-based) de esa busqueda (ej [0, 1, 2]; duplicados se procesan una sola vez; cap: 50 con 'resumen', 8 con 'completa'). profundidad: 'resumen' trae la fila del buscador (entidad, nomenclatura, objeto, monto, fechas, version); 'completa' trae la ficha entera (items, cronograma, documentos) como ficha_proceso. Devuelve: {'ok', 'ses', 'profundidad', 'fichas': [...], 'faltas': [{index, motivo}], 'nota'}: los indices fallidos van a 'faltas' con su motivo y el resto se entrega; usa ficha_proceso individual si solo necesitas una. |
| detalles_contratosA | Lote de DETALLES de contratos publicados en UNA llamada (evita repetir detalle_contrato por cada id). Args: ids: lista de 'id_contrato' numericos (ej ['2377490']; duplicados se procesan una sola vez; cap: 10 por llamada). maximo: tope de detalles por llamada (1..10). Devuelve: {'ok', 'detalles': [{ok, cabecera, items, acciones, documentos...}], 'faltas': [{id_contrato, error}], 'nota'}: cada elemento trae los mismos campos de detalle_contrato con su 'ok' individual; los ids no numericos van a 'faltas' y el resto se procesa; usa detalle_contrato si solo necesitas uno. |
| url_documentoA | Devuelve la URL firmada para descargar un DOCUMENTO de proceso del SEACE (bases integradas, integraciones, etc). Args: uuid: 'uuid' del documento listado en ficha_proceso (ej 'ac1aedfc-230d-4e50-9756-bb2fe1f1a4f7'). Devuelve: {'ok', 'url', 'archivo'}: 'url' es el enlace directo del PDF, firmado al vuelo y con vigencia corta; el servidor NO descarga el archivo. Nota: ante un uuid inexistente el servicio puede no responder y el error se reporta como timeout; distinguelo del uuid malformado, que se rechaza al instante. |
| historial_procesoA | HISTORIAL DE CONTRATACIONES del proceso (ses, index de buscar_procesos): cada convocatoria de la contratacion con su etapa y estado. Args: ses: sesion devuelta por buscar_procesos. index: 'index' global de la fila de esa busqueda (0-based). Devuelve: {'ok', 'url', 'cabecera': mapa de pares (entidad, nomenclatura, nro_convocatoria, objeto, ...), 'historial': [{nro, nomenclatura, etapa, estado}]}. |
| codigos_procesoA | CODIGOS SNIP/CUI asociados a un proceso (ses, index de buscar_procesos) desde el popup 'Codigos' del buscador. Args: ses: sesion devuelta por buscar_procesos. index: 'index' global de la fila de esa busqueda (0-based). Devuelve: {'ok', 'ses', 'index', 'filas': [codigos...]}; 'filas' vacio cuando el proceso no publica CUI (el sitio muestra 'Sin informacion'). |
| detalle_itemA | ACCIONES REALIZADAS POR ITEM de un proceso (ses, index de buscar_procesos, nro_item 1-based de ficha_proceso -> items). Args: ses: sesion devuelta por buscar_procesos. index: 'index' global de la fila de esa busqueda (0-based). nro_item: numero del item (1-based; el orden de 'items' en ficha_proceso). Devuelve: {'ok', 'url', 'cabecera' (mapa de pares opcionales), 'item': {nro_item, descripcion_item}, 'acciones': [{nro, situacion, fecha_publicacion, motivo}]}: el ciclo de vida completo del item (publicacion de convocatoria, adjudicado, contrato, etc). |
| buscar_pacA | Busca en los PLANES ANUALES DE CONTRATACIONES (PAC) publicos del SEACE por ENTIDAD y anio. Cada fila trae la entidad, su ubigeo, ultima version del PAC, cantidad de procesos programados y el valor agregado en Soles. Args: entidad: nombre o parte del nombre de la entidad (ej 'SEDAPAL'). Requerida: el buscador del PAC obliga a elegir institucion o ubigeo. anio: anio del PAC (ej '2026'; el catalogo del sitio ofrece 2019..2026). Devuelve: {'ok', 'entidad', 'anio', 'total', 'filas': [{item, entidad, ubigeo, ultima_version, cantidad_procesos, valor_proceso_soles}]}. Con detalle_pac(...) bajas el listado de procesos programados. |
| detalle_pacA | LISTADO DE PROCESOS PROGRAMADOS del PAC de la entidad (busca en el PAC por entidad/anio y baja el detalle): cada fila trae el proceso programado con su mes y fuente de financiamiento. Args: entidad: nombre de la entidad (igual que buscar_pac). anio: anio del PAC. index: fila del resultado de buscar_pac (0-based; normalmente 0). Devuelve: {'ok', 'ses', 'procesos': [{nro, entidad, objeto_descripcion, tipo_compra, nro_convocatoria, mes_programado, fuente_financiamiento}]}: el plan anual completo de la entidad. |
| buscar_contratosA | Busca CONTRATOS PUBLICADOS en la API de contratos del SEACE. IMPORTANTE: la API no pagina y sin filtros trae el anio completo (~50k registros); pasa SIEMPRE un filtro acotador (texto, descripcion, proveedor, contrato, nomenclatura, expediente o entidad). Args: anio: anio del contrato (OBLIGATORIO; ej '2026'). texto: palabra libre filtrada server-side (la mas efectiva; ej 'tuberia'). entidad: nombre o RUC de la entidad contratante. descripcion: texto dentro de la descripcion del contrato. proveedor: nombre o RUC del proveedor o consorcio. contrato: numero del contrato. proyecto: texto del proyecto de inversion. expediente: id del expediente (idExpediente de otro resultado). nomenclatura: nomenclatura del proceso (ej 'LP-SM-13-2025-SEDAPAL-1'). depa: departamento ('0' = todos). objeto: '0' todos, '62' Bien, '63' Consultoria, '64' Obra, '65' Servicio. cod_seleccion: codigo del tipo de seleccion (listar_filtros(categoria='tipos_contrato')). desde: fecha inicial de suscripcion dd/mm/aaaa. hasta: fecha final de suscripcion dd/mm/aaaa. maximo: filas a devolver (1..300). Devuelve: {'ok', 'total_recibidos', 'mostrados', 'contratos': [{id_contrato, numero_contrato, descripcion, nomenclatura, id_expediente, entidad, ruc_entidad, contratista, ruc_contratista, consorcio, monto, monto_presupuesto, moneda, anio, fecha_suscripcion, fecha_inicio, fecha_fin, objeto, objeto_codigo, estado, id_documento}]}. Con 'id_documento' usa url_documento_contrato. |
| tipos_seleccion_contratosA | Catalogo EXACTO de tipos de seleccion de la API JSON de contratos. Args: anio: anio del catalogo (ej '2026'). Devuelve: {'ok', 'tipos': [{codSeleccion, descSeleccion}]}: 'codSeleccion' es el valor de 'cod_seleccion' en buscar_contratos. |
| catalogo_ubigeoA | Catalogo geografico de la API de contratos del SEACE: departamentos, provincias y distritos (llena 'depa' en buscar_contratos y resumen_georef). Args: nivel: 'depas' (lista completa), 'provi' (provincias de un departamento) o 'distri' (distritos de una provincia). id: codigo del nivel padre; OBLIGATORIO con 'provi' (codigo de departamento ej '19' Pasco) y con 'distri' (codigo de provincia ej '2503'). Devuelve: {'ok', 'nivel', 'catalogo': [{codigo, nombre}], 'nota'}: los codigos 'codigo' se usan como 'depa'/'id' en las otras tools. |
| resumen_georefA | Resumen GEOreferenciado de contratos publicados de un departamento y anio. Sin 'objeto': cuantos contratos y monto acumulado por tipo de objeto (Bien/Consultoria/Obra/Servicio). Con 'objeto': la lista de contratos de ese departamento, anio y objeto (drill-down, mismos campos que buscar_contratos). Args: anio: anio del resumen (ej '2026'). depa: codigo del departamento del catalogo_ubigeo (ej '19' Pasco). objeto: codigo del tipo de objeto del drill-down ('62' Bien, '63' Consultoria, '64' Obra, '65' Servicio). Devuelve: {'ok', 'anio', 'depa', 'resumen': [{tipo_objeto, cantidad, total_soles}], 'nota'} o, con 'objeto', {'ok', 'contratos': [...], 'total_recibidos', 'mostrados', 'nota'}: para la ficha del contrato usa detalle_contrato. El drill-down con 'objeto' no pagina y se recorta a los primeros 100 contratos ('mostrados'); para el resto usa buscar_contratos con depa+objeto. |
| detalle_contratoA | Detalle COMPLETO de un contrato publicado de la API JSON del SEACE: cabecera, items con CUBSO, garantias, acciones (penalidades/adicionalidades con documento), proyectos de inversion, disputas, conciliaciones y arbitrajes, y los documentos con su URL de descarga. Args: id_contrato: 'id_contrato' de buscar_contratos o contratos_expediente (ej '2377490'). Devuelve: {'ok', 'cabecera', 'items', 'garantias', 'acciones', 'documentos': [{id_documento, url, archivo, tamano_kb, fecha}], 'proyectos'|'disputas'|'conciliaciones'|'arbitrajes' (si hay)}: las URLs son descarga directa del PDF (sin token). |
| contratos_expedienteA | Todos los CONTRATOS publicados de un expediente de seleccion (un proceso puede tener varios contratos). Args: id_expediente: id del expediente de seleccion ('id_expediente' de buscar_contratos; ej '1171246'). Devuelve: {'ok', 'id_expediente', 'total', 'contratos': [{id_contrato, numero_contrato, ...}]}: con 'id_contrato' usa detalle_contrato. |
| url_documento_contratoB | URL de descarga del documento de un CONTRATO de la API JSON del SEACE. Args: id_documento: 'id_documento' del contrato (idDocumentoContrato; ej '153203160'). Devuelve: {'ok', 'url', 'nota'}: GET directo del PDF; el servidor no lo guarda. |
| url_perfil_proveedorB | URL del PERFIL del proveedor en el portal del OECE (perfilprov). Args: ruc: RUC del proveedor o consorcio. Devuelve: {'ok', 'url'}: pagina publica del perfil del proveedor. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 25 tools
Each tool targets a distinct SEACE module (procesos, ACF, EI, requerimientos, OC/OS, CCO, contratos, PAC, entidades) and descriptions clarify scope. Minor overlap risk exists between buscar_procesos/buscar_contratos and the single-vs-batch pairs, but parameters like ses/index vs id disambiguate well.
Names consistently use Spanish snake_case with mostly predictable action prefixes (buscar_, ficha_, detalle_, url_). Minor deviations appear as noun-only names (catalogo_ubigeo, tipos_seleccion_contratos, listar_filtros) and singular/plural pairs (ficha/fichas, detalle/detalles), but the set remains readable.
At 25 tools the set is heavy for the apparent scope, with several near-duplicates (ficha_proceso/fichas_procesos, detalle_contrato/detalles_contratos) and separate URL tools that could be consolidated. The breadth of SEACE modules justifies many tools, but the count sits at the borderline of over-scoping.
Coverage is broad across the procurement lifecycle: search, fichas, contract details, documents, PAC, georef summaries, and provider profiles. Minor gaps include no dedicated provider/contratista search by name (only RUC-based profile) and no sanctions/inhabilitaciones tool, though agents can partially work around these via buscar_contratos filters.