Skip to main content
Glama
edwin042331-hue

dgcp-mcp-server

Servidor MCP Soberano - Contrataciones Públicas de República Dominicana (DGCP v4.1)

CI - Verificación y Pruebas Tests: 17 Passed License: MIT Node.js: >=18 Model Context Protocol

Creamos este servidor MCP de código abierto para centralizar, transparentar y poner al alcance de toda la comunidad dominicana los datos de compras públicas del Estado. Conecta cualquier asistente o agente de IA (Claude Desktop, Gemini CLI, Cursor, Antigravity) con la API oficial de datos abiertos de la Dirección General de Contrataciones Públicas (DGCP).

  • Fuente Oficial: https://datosabiertos.dgcp.gob.do/api-dgcp/v1

  • Marco Legal: Ley No. 340-06, Decreto No. 543-12, Decreto No. 416-23 (MIPYMES) y Resoluciones Vigentes de Umbrales Oficiales DGCP.


🚀 Suite Institucional Completa (13 Herramientas Verificadas)

#

Herramienta

Pilar Estratégico

Función Principal

1

dgcp_buscar_licitaciones

Rastreo Operativo

Búsqueda multitérmino de procesos abiertos con validación de cierre en milisegundos y reporte de cobertura.

2

dgcp_buscar_contratos

Histórico y Pagos

Acceso a +722,000 contratos: adjudicatarios reales, montos, plazos (30, 60, 90+ días) y métodos de pago.

3

dgcp_buscar_ofertas

Inteligencia de Mercado

Consulta de +1.47 millones de propuestas económicas y técnicas de competidores en Sobre A y B.

4

dgcp_buscar_proveedores

Padrón RPE

Verificación de RNC, clasificación MIPYME del MICM, estatus y rubros comerciales registrados.

5

dgcp_inteligencia_proceso

Cruce 360°

Análisis integral de licitación: quién ganó procesos anteriores, ofertas rivales y garantías legales obligatorias.

6

dgcp_radiografia_proveedor

Análisis Competitivo

Volumen de facturación estatal acumulada, cuota de mercado e instituciones clientes principales.

7

dgcp_calculadora_legal

Blindaje Jurídico

Cálculo de umbrales oficiales, detección de fraccionamiento, garantía de seriedad (1%) y póliza MIPYME (1% Dec. 416-23).

8

dgcp_generador_propuesta_sncc

Expedientes Ganadores

Redacción instantánea de formularios oficiales SNCC (F.042, F.033 con 18% ITBIS y Declaración Jurada Art. 14 notariada).

9

dgcp_simulador_puntuacion

Estrategia de Precio

Matriz matemática oficial DGCP (Pmin / Pof) * Puntos para determinar el precio óptimo ganador sin ser temerario.

10

dgcp_auditoria_colusion

Forense Anti-Fraude

Detección de vínculos cruzados (teléfonos, correos o domicilios compartidos en RPE) bajo el Art. 65 del Dec. 543-12.

11

dgcp_scorecard_institucion

Salud Financiera

Auditoría de días reales de pago por entidad, método de desembolso (cheque vs transferencia) y rating comercial.

12

dgcp_auditor_pliego_trampa

Anti-Amarre de Pliegos

Detección de marcas comerciales sin equivalencia (violación Art. 21 Ley 340-06) y minuta de solicitud de aclaración técnica.

13

dgcp_generador_recurso_impugnacion

Defensa Jurídica

Redacción formal de Recurso Jerárquico y Medida Cautelar de Suspensión de Oficio ante la DGCP (Ley 340-06 y Ley 107-13).


Related MCP server: mcp-colombia-secop

⚡ Instalación Rápida

Requisitos:

  • Node.js: Versión 18 o superior (node -v).

  • NPM: Incluido con Node.

Pasos:

# 1. Clonar el repositorio
git clone https://github.com/edwin042331-hue/dgcp-mcp-server.git
cd dgcp-mcp-server

# 2. Instalar dependencias y compilar
npm install
npm run build

# 3. Probar las pruebas unitarias
npm test

🔌 Configuración en tu Asistente de IA

Para Claude Desktop:

Edita tu archivo claude_desktop_config.json:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "dgcp": {
      "command": "node",
      "args": ["RUTA_ABSOLUTA_A/dgcp-mcp-server/dist/index.js"]
    }
  }
}

Para Gemini CLI / Antigravity / Cursor:

Agrega la entrada en tu archivo mcp_config.json:

{
  "mcpServers": {
    "dgcp": {
      "command": "node",
      "args": ["RUTA_ABSOLUTA_A/dgcp-mcp-server/dist/index.js"]
    }
  }
}

🖥️ Inspección Visual Interactiva con MCP Inspector v2

Puedes explorar de manera gráfica los esquemas Zod y probar cada herramienta directamente en tu navegador:

npm run inspect

Abre automáticamente la consola interactiva oficial del Model Context Protocol en http://localhost:5173.


🧪 Pruebas Unitarias Automatizadas (Vitest)

La suite cuenta con 17 pruebas unitarias de grado industrial que verifican:

  • Filtro estricto de fechas (procesos vencidos hace pocas horas no aparecen como abiertos).

  • Sanitización de caracteres mal codificados (UTF-8 / Latin-1).

  • Umbrales normativos de la Ley 340-06 y Resoluciones anuales DGCP.

  • Algoritmo matemático de puntuación económica.

npm test

🤝 Cómo Contribuir (Comunidad Dominicana)

¡Las contribuciones de desarrolladores, investigadores y ciudadanos son bienvenidas! La rama main está protegida; todas las mejoras se gestionan vía Pull Request:

  1. Haz un Fork de este repositorio.

  2. Crea tu rama descriptiva (git checkout -b feature/nueva-herramienta).

  3. Agrega tus pruebas correspondientes en tests/ y confirma que npm test pase en verde.

  4. Envía tu Pull Request.

Consulta nuestra guía completa en CONTRIBUTING.md.


Este proyecto está licenciado bajo la Licencia MIT - consulta LICENSE para más detalles.

Aviso de Responsabilidad: Este software es una iniciativa independiente y abierta de transparencia de datos cívicos. Los análisis, dictámenes y cálculos generados constituyen asistencia técnica informativa automatizada basada en datos públicos y normativa vigente. Requieren revisión humana y no sustituyen las resoluciones formales de los Comités de Compras y Contrataciones ni de la Dirección General de Contrataciones Públicas (DGCP).

Available Tools

13 tools
dgcp_auditoria_colusionAuditoría Forense de Colusión, Vinculación y Procesos ViciadosA
Read-onlyIdempotent

Audita forensemente las ofertas presentadas en un proceso para detectar amarres o colusión:

  1. Rastrea todos los oferentes que depositaron propuestas para ese código de proceso.

  2. Cruza cada oferente contra el padrón oficial del RPE (/proveedores).

  3. Detecta banderas rojas de colusión (Art. 14 Ley 340-06 y Art. 65 Dec. 543-12):

    • Teléfonos o celulares comerciales idénticos entre competidores supuestamente independientes.

    • Correos electrónicos o dominios compartidos.

    • Domicilio comercial o representantes legales cruzados.

    • Posturas de cobertura (precios coordinados artificialmente).

  4. Emite un dictamen legal con los fundamentos jurídicos para solicitar la descalificación de oficio o impugnación.

ParametersJSON Schema
NameRequiredDescriptionDefault
paginasNoPaginas a escanear en ofertas y proveedores para la auditoria forense (default 15)
codigo_procesoYesCodigo oficial del proceso a auditar (ej. 'TSS-DAF-CM-2026-0055').

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), and the description usefully adds what the agent cannot infer: the four-step pipeline (bidder trace, RPE cross-check, red-flag detection, legal opinion) and the legal basis (Art. 14 Ley 340-06, Art. 65 Dec. 543-12). It stops short of disclosing scanning depth, latency, or what happens when the process has no bids.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose sentence, then a tight four-item numbered breakdown that maps to real behaviors rather than padding. Slightly long, but every numbered item carries distinct information about what is checked and what is produced.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return burden and does so adequately: it names the deliverable (a dictamen legal with legal grounds for descalificación de oficio or impugnación) and the detection categories. It comes up short only on output structure and any caveats about coverage limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — both codigo_proceso and paginas are documented in the schema, including the default, min, and max for paginas. The description adds no parameter-level detail (no format guidance, no effect of raising paginas on recall), so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (audita forensemente) and a narrowly scoped resource (las ofertas de un proceso, cruzadas contra el padrón RPE), then enumerates the exact red flags it looks for. This is clearly separable from siblings like dgcp_auditor_pliego_trampa (audits the tender document) or dgcp_radiografia_proveedor (single-provider profile) without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the use case evident ('detectar amarres o colusión' in a specific process), but never states when to prefer it over overlapping siblings such as dgcp_inteligencia_proceso, dgcp_auditor_pliego_trampa, or dgcp_generador_recurso_impugnacion. Usage is implied by scope rather than routed explicitly, and there are no exclusions or prerequisites (e.g. process must already have bids).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dgcp_auditor_pliego_trampaAuditor Forense de Pliegos: Detección de Cláusulas Trampa y AmarresA
Read-onlyIdempotent

Analiza si un pliego de condiciones contiene especificaciones ilegales o dirigidas a un único proveedor:

  1. Detecta violación al Artículo 21 de la Ley 340-06 (inclusión de marcas o patentes sin la frase "o su equivalente técnico").

  2. Detecta exigencias desproporcionadas de experiencia que violan el Principio de Razonabilidad (Art. 3 Ley 340-06).

  3. Identifica subcriterios subjetivos ("a satisfacción del perito") prohibidos por la DGCP.

  4. Redacta de forma automática la Solicitud Formal de Aclaración y Enmienda de Pliego para obligar a la institución a abrir la competencia.

ParametersJSON Schema
NameRequiredDescriptionDefault
codigo_procesoYesCodigo oficial del proceso en la DGCP (ej. 'MICM-CCC-LPN-2026-0007').
extracto_pliegoNoTexto, clausula o requerimiento del pliego de condiciones que sospechas que esta amarrado o dirigido.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotent/non-destructive, so the safety profile is covered. The description adds useful behavioral content beyond that: it discloses that the tool also auto-drafts a Solicitud Formal de Aclaración y Enmienda, which is the only hint at output since no output schema exists. It omits detail on what happens when extracto_pliego is omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then a clean numbered enumeration of the four detection/response behaviors. Slightly verbose in restating legal citations, but every item carries distinct information and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter, no-output-schema tool, the description communicates both the analysis dimensions and the generated deliverable, which is what the agent most needs. Minor gaps remain around behavior when the optional pliego text is absent, but overall it is fit for purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds no format, syntax, or usage detail for codigo_proceso or extracto_pliego, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (auditar un pliego de condiciones) and enumerates exactly what it detects (Art. 21 Ley 340-06, exigencias desproporcionadas, subcriterios subjetivos) plus the artifact it produces. This clearly separates it from siblings like dgcp_auditoria_colusion (collusion) and dgcp_generador_recurso_impugnacion (appeal drafting).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scenario of use is implied by the enumeration of trap-clause types, so an agent can infer this is for suspecting a rigged pliego. But it never states when to prefer this over dgcp_auditoria_colusion or dgcp_generador_recurso_impugnacion, nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dgcp_buscar_contratosBuscar contratos adjudicados y firmados (DGCP)A
Read-onlyIdempotent

Consulta contratos firmados y adjudicados por instituciones del Estado dominicano con proveedores. Campos VERIFICADOS contra la API real (/contratos).

Permite saber quien gano licitaciones anteriores, los montos adjudicados, formas de pago y fechas de firma. La API descarga varias paginas y filtra localmente por termino, codigo de proceso, institucion o proveedor.

Args: termino, codigo_proceso, institucion, proveedor, rpe, estado_contrato, monto_min, monto_max, paginas, limite.

ParametersJSON Schema
NameRequiredDescriptionDefault
rpeNoNumero de Registro de Proveedores del Estado (RPE) del adjudicatario.
limiteNoCuantos resultados devolver (default 10)
paginasNoCuantas paginas de la API escanear (default 5, 100 contratos c/u)
terminoNoTexto a buscar en descripcion, codigo de contrato o proceso, proveedor o institucion.
monto_maxNoMonto maximo contratado en DOP
monto_minNoMonto minimo contratado en DOP
proveedorNoNombre o razon social de la empresa adjudicataria.
institucionNoNombre o parte del nombre de la institucion (unidad de compra).
codigo_procesoNoCodigo del proceso de licitacion asociado (ej. 'HLA-DAF-CD-2026-0121').
estado_contratoNoEstado del contrato (ej. 'Activo', 'Cerrado', etc.).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description adds genuinely non-obvious behavior: the API fetches multiple pages and filters locally by termino/codigo/institucion/proveedor, which tells the agent that result completeness depends on the paginas argument — context no annotation supplies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose and payoff, then the local-filtering caveat, then a compact arg list. Every line carries information; only the 'Campos VERIFICADOS' aside is slight filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a fully-optional, read-only search tool with 100% schema coverage and annotations covering safety, the description adds the one thing the schema cannot: that filtering is client-side across a bounded page scan. It hints at returnable fields (montos, formas de pago, fechas) even without an output schema. Adequate, with only the exact result shape left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema. The description only restates the argument names ('Args: termino, codigo_proceso, institucion...') without adding format, default, or interaction semantics beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Consulta) and resource (contratos firmados y adjudicados por instituciones del Estado dominicano), and the resource noun alone distinguishes it from the licitaciones/ofertas/proveedores siblings. The parenthetical API endpoint reference (/contratos) reinforces the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description frames the payoff ('permite saber quien gano licitaciones anteriores, los montos...') which implies use cases, but never states when to pick this over dgcp_buscar_licitaciones or dgcp_buscar_ofertas, nor any exclusions. Usage is inferable, not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dgcp_buscar_licitacionesBuscar licitaciones y procesos de compra (DGCP)A
Read-onlyIdempotent

Busca procesos de compra publica del Estado dominicano. Campos VERIFICADOS contra la API real.

IMPORTANTE - como funciona la API:

  • La API NO filtra del lado del servidor. Siempre devuelve los procesos mas recientes primero.

  • Esta herramienta descarga varias paginas (parametro 'paginas', default 5 = 500 procesos) y filtra localmente.

  • Un termino generico deja fuera resultados. Para un tema, haz VARIAS llamadas con terminos distintos (ej. tecnologia: software, licencia, computadora, laptop, servidor, redes, impresora, sistema) y une los resultados.

Estado:

  • 'abierto' = estado "Proceso publicado" Y fecha de cierre aun futura. Es lo que se quiere el 90% de las veces.

  • 'publicado' = estado publicado sin importar la fecha

  • 'adjudicado' = ya tiene ganador

  • 'apertura' = sobres abiertos

  • 'cerrado' = etapa cerrada

  • 'todos' = sin filtrar

Devuelve: codigo, institucion, estado, modalidad, monto, fecha de cierre con dias restantes, MIPYME y enlace al portal.

ParametersJSON Schema
NameRequiredDescriptionDefault
estadoNo'abierto' = publicado Y con fecha de cierre futura (lo que casi siempre se quiere)
limiteNoCuantos resultados devolver (default 10)
mipymeNoSolo procesos dirigidos a MIPYMES
paginasNoCuantas paginas de la API escanear (default 5, 100 procesos c/u)
terminoNoTexto a buscar en titulo y descripcion. Ej: 'software', 'laptop', 'servidor'
modalidadNoTexto de la modalidad. Ej: 'Licitacion Publica', 'Compras Menores'
monto_maxNoMonto maximo estimado en DOP
monto_minNoMonto minimo estimado en DOP
institucionNoNombre (o parte) de la institucion. Ej: 'Impuestos Internos', 'Educacion'
mipyme_mujerNoSolo procesos dirigidos a MIPYMES de mujeres

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent safety profile, and the description adds substantial non-obvious behavior: client-side filtering, multi-page scanning controlled by 'paginas' (default 5 = 500 processes), and most-recent-first ordering. This is exactly the kind of context that prevents misuse.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded with headers and bulleted state definitions; no filler. It is on the longer side, but the length is justified by a 10-parameter tool with nuanced API behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description usefully enumerates returned fields (codigo, institucion, estado, modalidad, monto, fecha de cierre, MIPYME, enlace), and all parameters are documented in the schema. An agent has what it needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantics beyond the schema: the precise meaning of 'abierto' (published AND future closing date), the generic-term pitfall for 'termino', and the default page size. It exceeds what the structured fields alone convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Busca') and resource ('procesos de compra publica del Estado dominicano'), and it is clearly distinguishable from siblings like dgcp_buscar_contratos or dgcp_buscar_proveedores. The title reinforces the scope without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives strong operational guidance: the API does not filter server-side, generic terms drop results, and recommends multiple calls with varied terms per topic. It also flags that 'abierto' is the desired state ~90% of the time. It stops short of explicitly routing the agent to sibling tools for related queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dgcp_buscar_ofertasBuscar ofertas presentadas en licitaciones (DGCP)A
Read-onlyIdempotent

Consulta propuestas y ofertas presentadas por proveedores y competidores en procesos de compra del Estado. Campos VERIFICADOS contra la API real (/ofertas).

Permite analizar montos ofertados por competidores, estados de evaluacion y que empresas participaron en cada licitacion. La API descarga varias paginas y filtra localmente.

Args: termino, codigo_proceso, proveedor, rpe, institucion, estado_evaluacion, monto_min, monto_max, paginas, limite.

ParametersJSON Schema
NameRequiredDescriptionDefault
rpeNoNumero de RPE del oferente.
limiteNoCuantos resultados devolver (default 10)
paginasNoCuantas paginas de la API escanear (default 5, 100 ofertas c/u)
terminoNoTexto a buscar en nombre de la oferta, codigo de proceso, oferente o institucion.
monto_maxNoMonto maximo de la oferta en DOP
monto_minNoMonto minimo de la oferta en DOP
proveedorNoNombre o razon social del oferente participante.
institucionNoNombre de la institucion contratante.
codigo_procesoNoCodigo del proceso de licitacion (ej. 'HLA-DAF-CD-2026-0129').
estado_evaluacionNoEstado de evaluacion (ej. 'Pendiente', 'Adjudicada', 'Descalificada', etc.).

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context: 'La API descarga varias paginas y filtra localmente' discloses that filtering happens client-side over a multi-page scan, which materially affects how results behave. The note that fields were verified against the real API signals reliability but is meta rather than behavioral.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the local-filtering caveat are front-loaded and useful, but the trailing 'Args: termino, codigo_proceso, ...' enumeration merely restates parameter names already fully documented in the schema and earns no place. The 'Campos VERIFICADOS contra la API real' line is filler. Net result is adequate but with avoidable padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a ten-parameter, zero-required filter tool with no output schema, the description covers what the tool returns conceptually and one important behavioral caveat. It does not clarify that all parameters are optional combinable filters, nor how defaults (limite 10, paginas 5) interact with local filtering. Adequate but with clear gaps for a tool of this parameter complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all ten parameters, setting a baseline of 3. The 'filtra localmente' / multi-page remark adds real semantic value for interpreting the paginas and limite parameters (paginas controls the fetched window, limite the returned count), which the schema alone does not explain. The redundant 'Args:' name list contributes nothing extra.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it consults proposals/offers submitted by suppliers and competitors in State purchasing processes, and names the underlying endpoint (/ofertas). It clearly distinguishes the resource from sibling lookups like licitaciones, contratos, and proveedores. It stops short of explicitly naming which sibling to use instead, so it lands at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It offers concrete use cases ('analizar montos ofertados por competidores, estados de evaluacion y que empresas participaron'), which implies when the tool is valuable. However there is no explicit when-not guidance and no routing to alternatives such as dgcp_inteligencia_proceso or dgcp_auditoria_colusion, which overlap in the competitor-analysis space. Usage is implied rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dgcp_buscar_proveedoresBuscar proveedores en el RPE (DGCP)A
Read-onlyIdempotent

Consulta empresas y personas físicas registradas en el Registro de Proveedores del Estado (RPE). Campos VERIFICADOS contra la API real (/proveedores).

Permite verificar RPE, RNC, clasificación MIPYME, rubros que proveen (bienes, servicios), datos de contacto y constancia oficial. La API descarga varias páginas y filtra localmente.

Args: termino, rnc, rpe, mipyme, rubro, provincia, estado, paginas, limite.

ParametersJSON Schema
NameRequiredDescriptionDefault
rncNoNumero de RNC o identificacion del proveedor (numero_documento).
rpeNoNumero de Registro de Proveedores del Estado (RPE).
rubroNoRubro que provee: 'Bienes', 'Servicios', 'Obras'.
estadoNoEstado en el RPE (ej. 'Activo', 'Inactivo').
limiteNoCuantos resultados devolver (default 10)
mipymeNotrue = solo proveedores clasificados como MIPYME.
paginasNoCuantas paginas de la API escanear (default 5, 100 proveedores c/u)
terminoNoTexto a buscar en razon social, RNC, contacto, direccion o correo.
provinciaNoProvincia del proveedor (ej. 'Distrito Nacional', 'Santiago', etc.).

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive, and open-world behavior. The description adds useful behavioral context beyond annotations, notably that the API downloads multiple pages and filters locally, and that fields are verified against the real /proveedores endpoint. It does not cover auth requirements or rate limits, but the added behavioral detail is meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then adds useful behavioral notes. The 'Args:' list is somewhat redundant given the 100% schema coverage, since it just repeats parameter names, but the overall text is concise and not bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nine-parameter read-only search tool with full schema coverage and annotations covering safety, the description is mostly complete. It explains purpose, verifiable fields, and local pagination behavior. It does not explain the return shape, but no output schema exists and the search nature makes a detailed return description less critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all nine parameters with types, bounds, defaults, and examples. The description merely lists parameter names under 'Args:' without adding syntax, format, or interaction details beyond the schema. The baseline score of 3 applies when the schema carries parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: consulting/searching companies and individuals in the RPE. It clearly distinguishes the resource (proveedores) from other sibling search tools, though it does not explicitly name or contrast alternatives. This is clear but lacks the sibling differentiation that would merit a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the listed verification capabilities (RPE, RNC, MIPYME, rubros, contact data, constancia oficial), but there is no explicit when-to-use guidance, no exclusions, and no routing to alternatives such as dgcp_radiografia_proveedor. The agent can infer the tool's role, but must decide context independently.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dgcp_generador_propuesta_snccGenerador de Formularios Oficiales SNCC y Expediente (Sobre A y B)A
Read-onlyIdempotent

Genera de forma instantánea la documentación formal normalizada exigida por la DGCP bajo el Sistema Nacional de Compras y Contrataciones Públicas (SNCC):

  1. Formulario de Información sobre el Oferente (SNCC.F.042).

  2. Declaración Jurada Notarial del Artículo 14 de la Ley 340-06.

  3. Carta Formal de Presentación de la Oferta y Compromiso.

  4. Formulario de Oferta Económica (SNCC.F.033) con desglose matemático exacto de ITBIS (18%) y total.

  5. Checklist de verificación previa para garantizar admisibilidad del Sobre A.

ParametersJSON Schema
NameRequiredDescriptionDefault
rncYesNumero de RNC o identificacion tributaria de tu empresa.
rpeYesNumero de Registro de Proveedores del Estado (RPE).
razon_socialYesNombre o razon social de tu empresa oferente.
codigo_procesoYesCodigo oficial del proceso en la DGCP (ej. 'INFOTEP-DAF-CM-2026-0080').
representante_legalYesNombre completo del representante legal o titular.
tiempo_entrega_diasNoTiempo de entrega o ejecucion en dias calendario.
cedula_representanteYesNumero de cedula del representante legal.
descripcion_servicioNoBreve descripcion de los bienes, software o consultoria a ofertar.
monto_ofertado_subtotalYesMonto subtotal de tu oferta economica antes de ITBIS en DOP.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered and the description does not contradict it (generation appears to return content, not mutate state). The description usefully discloses the computed content — exact ITBIS 18% breakdown and a pre-submission checklist — but says nothing about return format (documents as text? PDF?) or whether the generated output is persisted anywhere.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb and scope in the first clause, then a tight numbered list of deliverables with no filler sentences. The enumeration is long but each item is a distinct artifact, so every line earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with no output schema, the description covers what is produced but not what comes back or how the two optional parameters (tiempo_entrega_dias, descripcion_servicio) affect the generated documents. Adequate for invocation, but an agent still cannot predict the response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 9 parameters, so the schema already carries full parameter meaning; the description adds nothing per-parameter. Baseline 3 applies. It does implicitly tie monto_ofertado_subtotal to the ITBIS calculation, but the 18% rate is the only semantic detail the description contributes beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (genera) and a precisely scoped resource, then enumerates the five exact artifacts produced (SNCC.F.042, declaración jurada art. 14, carta formal, SNCC.F.033, checklist). It is immediately distinguishable from every sibling, which are all search/analysis tools rather than document generators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the agent can infer this is the tool to run when assembling an offer package for a DGCP process, and the checklist item hints at admissibility verification. There is no explicit 'use this when…' statement, no prerequisites (e.g. valid RPE, active process code), and no exclusion of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dgcp_generador_recurso_impugnacionGenerador de Recurso de Impugnación y Medida Cautelar ante la DGCPA
Read-onlyIdempotent

Redacta un Recurso Jerárquico formal con Solicitud de Medida Cautelar de Suspensión de Oficio ante la DGCP:

  1. Fundamentado en la Ley 340-06, Decreto 543-12, Ley 107-13 sobre Procedimiento Administrativo y jurisprudencia del TSA.

  2. Contiene estructura jurídica formal de tribunal: Calidad, Hechos, Derecho, Agravios y Petitorio formal.

  3. Solicita la suspensión inmediata del proceso o contrato para evitar la consumación de daños irreparables.

ParametersJSON Schema
NameRequiredDescriptionDefault
acto_atacadoYesActo que se impugna (ej. 'Acta de Adjudicación No. XX', 'Pliego de Condiciones', 'Acta de Descalificación Técnica').
representanteYesNombre del representante legal.
codigo_procesoYesCodigo oficial del proceso licitado.
motivo_agravioYesCausal de violación (ej. 'Descalificación arbitraria habiendo cumplido ficha técnica', 'Adjudicación a empresa con precio superior sin justificación', 'Colusión demostrada entre oferentes').
rnc_recurrenteYesRNC de tu empresa.
empresa_recurrenteYesNombre de tu empresa que somete el recurso.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context about the generated output: legal foundations, formal sections (Calidad, Hechos, Derecho, Agravios, Petitorio), and the inclusion of a suspension request.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main action and then uses three numbered points to organize legal basis, document structure, and the suspension request. It is efficient and structured, though slightly list-heavy rather than narrative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter legal document generator with no output schema, the description gives enough context about the generated content and legal basis. It does not specify output format (e.g., text, PDF) or that it only drafts rather than files, but the title and 'Redacta' make the generation purpose sufficiently clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all six required parameters documented in the input schema. The description does not add any parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Redacta), a precise resource (Recurso Jerárquico formal con Solicitud de Medida Cautelar de Suspensión de Oficio ante la DGCP), and the legal basis. It is clearly distinguishable from sibling generators such as dgcp_generador_propuesta_sncc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that this tool is for drafting a formal challenge with a precautionary suspension request, but it does not explicitly state when to use it versus alternatives like dgcp_calculadora_legal or dgcp_auditor_pliego_trampa. Usage context is inferable from the legal document type rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dgcp_inteligencia_procesoInteligencia 360° de Proceso: Quién ganó antes y EstrategiaA
Read-onlyIdempotent

Realiza un análisis integral 360° de una licitación pública en la DGCP:

  1. Extrae la ficha técnica del proceso (monto, vigencia, modalidad, reservas MIPYME).

  2. Busca automáticamente antecedentes de contratación en esa misma institución y objeto contractual ("¿Quién ganó antes?").

  3. Detecta ofertas y precios de referencia de competidores.

  4. Calcula automáticamente las garantías legales obligatorias (Seriedad 1%, Fiel Cumplimiento 4% o 1% MIPYME, Anticipo 20%).

  5. Genera la hoja de ruta y estrategia legal ganadora bajo la Ley 340-06.

ParametersJSON Schema
NameRequiredDescriptionDefault
codigo_procesoYesCodigo oficial del proceso (ej. 'TSS-DAF-CM-2026-0055' o 'HLA-DAF-CD-2026-0121').
paginas_historialNoPaginas a escanear en contratos y ofertas para buscar antecedentes (default 12 = 1,200 registros)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds useful behavioral context — it is a multi-step workflow that auto-scans history, detects competitor pricing, and computes legal guarantees — but says nothing about latency/cost of the 12-page scan or any partial-failure behavior. Adds some value beyond annotations, not rich context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the overall purpose, then a tight numbered list where each item is a distinct capability. Slightly long but every numbered point carries information; no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the burden of telling the agent what comes back — and it does, enumerating ficha técnica, antecedentes, competitor prices, calculated guarantees, and strategy roadmap. For a composite tool this is reasonably complete, though return format/shape remains unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are fully documented in the schema (codigo_proceso format examples, paginas_historial default/range). The description adds no additional parameter semantics beyond what the schema already provides, so the baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('análisis integral 360° de una licitación pública') and then enumerates the exact five sub-analyses it performs, which cleanly distinguishes it from the single-purpose siblings like dgcp_buscar_contratos or dgcp_calculadora_legal. An agent can tell this is an aggregating orchestration tool rather than a lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The enumerated steps imply when to reach for this tool (when a full 360° dossier is needed instead of individual lookups), and the mapping to siblings such as antecedentes/garantías is discernible. However, it never explicitly says when to prefer this over calling the individual tools, nor names any exclusion or prerequisite, leaving usage to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dgcp_radiografia_proveedorRadiografía de Proveedor: RPE, Contratos Ganados y Cuota de MercadoA
Read-onlyIdempotent

Audita integralmente a un proveedor o competidor en las contrataciones públicas:

  1. Verifica su ficha en el RPE: RNC, estatus (Activo/Inactivo), clasificación MIPYME, fecha de registro y contactos.

  2. Calcula su volumen total de contratos ganados en el Estado en la muestra reciente.

  3. Identifica sus clientes principales en el sector público (a qué instituciones les vende más).

  4. Analiza sus márgenes y presencia en licitaciones del gobierno dominicano.

ParametersJSON Schema
NameRequiredDescriptionDefault
paginasNoPáginas de contratos a escanear para auditoría de facturación estatal (default 15 = 1,500 contratos)
terminoYesNombre de la empresa, RNC (con o sin guiones) o número de RPE a auditar.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral fact — that figures come from 'la muestra reciente' (a sample, not the full universe) — but omits rate limits, output shape and any pagination caveats.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The lead sentence front-loads the core action and the numbered list is a tight, scannable breakdown of the four outputs. Each line carries distinct information, though it is on the longer side for a two-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the enumeration of the four result blocks effectively substitutes for one and tells the agent what to expect. For a read-only aggregation tool this is nearly complete; only the sampling/pagination behavior of 'paginas' is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented, including the 'paginas' default mapping to ~1,500 contracts. The description adds no syntax or format guidance for 'termino' (accepted name/RNC/RPE formats) beyond what the schema states, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Audita integralmente') and resource ('un proveedor o competidor') and then enumerates four concrete sub-tasks (RPE ficha, contract volume, top clients, margins). This clearly distinguishes it from single-query siblings like dgcp_buscar_proveedores or dgcp_buscar_contratos by framing it as a composite audit, though it never explicitly names an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: it targets a single provider/competitor and aggregates public-procurement data about them. However, there is no explicit statement of when to prefer this over dgcp_buscar_proveedores or dgcp_buscar_contratos, and no exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dgcp_scorecard_institucionScorecard de Salud Financiera y Riesgo de Pago InstitucionalA
Read-onlyIdempotent

Audita quirúrgicamente el comportamiento comercial y de pago de cualquier institución del Estado:

  1. Calcula los plazos reales de pago pactados (30, 60, 90 o 120 días).

  2. Determina los métodos de desembolso preferidos (Transferencia Bancaria directa vs Cheque burocrático).

  3. Calcula el Índice de Concentración de Proveedores (si compran a muchas empresas o si el 80% se lo llevan los mismos 2 proveedores).

  4. Asigna un Rating de Solvencia Comercial (A+, A, B, C, D) y recomendaciones para mitigar asfixia financiera o factoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
paginasNoPaginas de contratos a escanear para calcular la salud de pago (default 20 = 2,000 contratos)
institucionYesNombre o parte del nombre de la institucion a auditar (ej. 'IDAC', 'Hospital', 'MICM', 'Ayuntamiento').

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds that this is a read-only analytical audit computing payment behavior, but discloses nothing about cost, latency, or data scope beyond what the schema's 'paginas' field states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The numbered list is well front-loaded with the action verb and each item earns its place by naming a distinct computed output. Minor marketing embellishment ('quirúrgicamente', 'asfixia financiera') adds flavor rather than information, keeping it just short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of conveying what comes back, and the four enumerated outputs (payment terms, disbursement methods, supplier concentration index, solvency rating) do that reasonably well. It is complete enough for a 2-parameter read-only analysis tool, though the exact return structure remains unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already fully documented in the schema, including the 'paginas' default of 20 and the 'institucion' examples. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Audita') plus a precisely-scoped resource ('comportamiento comercial y de pago de cualquier institución del Estado') and enumerates four concrete outputs. This is clearly distinguishable from search-oriented siblings like dgcp_buscar_contratos, though it never explicitly names an alternative to differentiate itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The enumeration of four outputs implies what the tool is for, but there is no explicit when-to-use guidance and no mention of when to prefer it over closely related siblings such as dgcp_radiografia_proveedor or dgcp_inteligencia_proceso. The agent must infer the fit from the described outputs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dgcp_simulador_puntuacionSimulador Matemático de Adjudicación y Puntuación DGCPA
Read-onlyIdempotent

Calcula con la fórmula matemática oficial de la DGCP el precio óptimo para ganar la licitación: Fórmula: Puntos_Economicos = (Precio_Minimo_Valido / Precio_Oferta) * Peso_Economico_Maximo. Puntaje Total = Puntos_Tecnicos + Puntos_Economicos.

Genera una matriz de sensibilidad evaluando escenarios de precio (90%, 92%, 94%, 96%, 98% del valor referencial) mostrando margen bruto en DOP, margen en %, puntaje total estimado y recomendación estratégica senior.

ParametersJSON Schema
NameRequiredDescriptionDefault
peso_tecnico_maxNoPuntos maximos del Sobre Tecnico segun pliego (default 70).
monto_referencialYesMonto estimado oficial del proceso en DOP.
peso_economico_maxNoPuntos maximos del Sobre Economico segun pliego (default 30).
costo_ejecucion_baseYesTus costos reales directos e indirectos de ejecucion en DOP.
precios_competidoresNoArray con precios estimados o historicos de competidores (opcional).
puntaje_tecnico_esperadoNoPuntos que esperas obtener en el Sobre A (default 70).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly=true, idempotent=true, destructive=false, consistent with a pure computation. The description adds real value beyond that: it discloses the exact formula, the five evaluated scenarios (90–98% of referential), and the output fields (gross margin in DOP, margin %, estimated total score, strategic recommendation). It stops short of describing assumptions/edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core formula, then lists the generated sensitivity matrix — well ordered with no filler. The inline formula line is slightly redundant for selection but is arguably the tool's defining feature, so it largely earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only computation tool with no output schema, the description conveys what is produced (scenario matrix, margins, score, recommendation) and how it's derived. Only minor gaps remain, such as what happens when competitor prices are omitted or how ties/edge cases are handled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines all six parameters with defaults and bounds. The description references the formula variables (min valid price, offer price, economic weight) but adds no format, unit, or interaction detail beyond what the schema provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (calcula) and resource (precio óptimo / puntuación DGCP), and spells out the exact official formula used. An agent can distinguish it from search/list siblings and the generic calculadora_legal because it names the scoring/adjudication computation specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (bidding strategy, price optimization) but never states when to choose this over siblings like dgcp_calculadora_legal or dgcp_inteligencia_proceso, nor any exclusions or prerequisites. Usage must be inferred from the stated output rather than explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv4.1.0
    • First observeddgcp_auditor_pliego_trampa
    • First observeddgcp_auditoria_colusion
    • First observeddgcp_buscar_contratos
    • First observeddgcp_buscar_licitaciones
    • First observeddgcp_buscar_ofertas
    • First observeddgcp_buscar_proveedores
    • First observeddgcp_calculadora_legal
    • First observeddgcp_generador_propuesta_sncc
    • First observeddgcp_generador_recurso_impugnacion
    • First observeddgcp_inteligencia_proceso
    • First observeddgcp_radiografia_proveedor
    • First observeddgcp_scorecard_institucion
    • First observeddgcp_simulador_puntuacion

TDQS

A3.8/5.0

Scored across 13 tools

Disambiguation4/5

The four buscar_* tools clearly separate licitaciones, contratos, ofertas, and proveedores, while the analytical and generator tools target distinct objects such as proceso, proveedor, institución, pliego, and colusión. Some overlap remains between the comprehensive dgcp_inteligencia_proceso and specialized audit/simulation tools, but descriptions make the boundaries mostly workable.

Naming Consistency3/5

All tool names use snake_case with a consistent dgcp_ prefix, which is readable. However, only the four search tools follow a verb_noun pattern; the remaining tools use noun-phrase labels, creating a mixed convention rather than one predictable operation naming scheme.

Tool Count5/5

With 13 tools, the server is well-scoped for a procurement intelligence and compliance suite. Each tool appears to cover a distinct search, audit, calculation, or generation function without excessive duplication.

Completeness4/5

The surface covers search across key entities, process/provider/institution audits, legal calculations, proposal and recurso generation, and impugnation workflows. Minor gaps exist, such as no explicit institution lookup or raw pliego/document fetch tool, but the core procurement lifecycle is well represented.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Allows AI assistants to query public procurement opportunities, purchase orders, and government entities from Chile's Mercado Público (ChileCompra) API in real time.
    12
    17 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to query Ecuador government procurement (SERCOP/Compras Públicas) data without API keys, via natural language or direct tools.
    136 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Integrates public APIs from the Brazilian Compras.gov.br procurement ecosystem to support price research, supplier sanctions, contract analysis, and procurement planning.
    100
    7
    MIT