Skip to main content
Glama

MCP Compras.gov.br

compras_contratos_item_consultar

Read-onlyIdempotent

Lista os itens de um contrato específico, pelo identificador.

Endpoint /modulo-contratos/2.1_consultarContratosItem_Id.

Use quando você já tem o contrato em mãos e quer só os itens dele. compras_contratos_itens_listar exige órgão mais janela de vigência e devolve os itens de todos os contratos do recorte — chegar a um contrato específico por ali significa paginar centenas de linhas irrelevantes.

O codigo aceita o idCompra numérico (padrão) ou o número de controle PNCP do contrato, conforme tipo_identificador. Qualquer outro valor de tipo faz o upstream devolver HTTP 500.

Atenção ao somar valores: pode haver mais de uma linha por item, uma por versão/alteração contratual. Confira o campo de exclusão antes de agregar.

Cache 15 min.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codigoYesIdentificador do contrato: o `idCompra` numérico ou o número de controle PNCP do contrato, conforme `tipo_identificador`.
paginaNoPágina de resultados (1-based). Padrão 1.
tamanho_paginaNoQuantidade de registros por página. Padrão 50, máximo 500.
tipo_identificadorNoQual identificador está em `codigo`: 'idCompra' (padrão) ou 'numeroControlePncpContrato'. Outro valor devolve HTTP 500.idCompra

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.7/5.0
Behavior5/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 adds substantial behavior beyond them: the upstream HTTP 500 failure mode for invalid tipo_identificador values, the multiple-lines-per-item semantics (one per contractual version/alteration) with an explicit warning to check the exclusion field before aggregating, and the 15-minute cache. These are non-obvious behavioral traits an agent needs to interpret results and avoid mistakes.

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

Conciseness5/5

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

Every sentence earns its place: purpose, endpoint, when-to-use, exclusion of the sibling, parameter caveat, aggregation warning, and cache TTL. The most decision-critical information (purpose and sibling differentiation) is front-loaded, and the aggregation warning is visually emphasized. The length is proportionate to the tool's complexity.

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 4-parameter tool with an output schema and rich annotations, this description covers all the non-obvious context: the exact usage scenario, the error mode, the duplicate-row pitfall, and the cache duration. The output schema exists, so return-value details need not be repeated. The only minor gap is that the exclusion field is referenced but not named, which the output schema presumably supplies. Overall, nothing an agent needs to call this correctly is missing.

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 baseline is 3. The description's parameter content ('O codigo aceita o idCompra numérico ou o número de controle PNCP... Qualquer outro valor de tipo faz o upstream devolver HTTP 500') essentially restates what the schema already documents for codigo and tipo_identificador, adding no new meaning beyond re-emphasis. It does not introduce any parameter semantics that the schema lacks.

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?

The description begins with a specific verb+resource pair — 'Lista os itens de um contrato específico, pelo identificador' — which clearly states what is listed and the scope (single contract, keyed by identifier). It also differentiates itself from the sibling compras_contratos_itens_listar by explicitly saying what this tool is not (the alternative that requires órgão + validity window and returns items from all contracts).

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

Usage Guidelines5/5

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

Gives an explicit when-to-use: 'Use quando você já tem o contrato em mãos e quer só os itens dele.' It then names the sibling alternative (compras_contratos_itens_listar), states its requirements (órgão mais janela de vigência), and explains why it is the wrong choice for this use case (paginating hundreds of irrelevant lines). This is textbook when/when-not/alternative guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.6/5.0
Disambiguation3/5

Most tools target distinct resources, and descriptions are extremely detailed, often explicitly warning about look-alikes. However, there is real overlap between composite and single-purpose tools (e.g., compras_checar_sancoes_fornecedor vs compras_perfil_fornecedor_completo vs compras_sancao_*), and similar-looking pairs like compras_contratos_consultar vs compras_contrato_comprasnet_consultar or compras_arp_listar vs compras_pncp_atas_listar require careful reading. With 100 tools, an agent will still face meaningful selection ambiguity.

Naming Consistency3/5

The dominant pattern is snake_case with a compras_ prefix, but the order and style vary: some are domain-first (compras_catmat_buscar), some are verb-first (compras_buscar_contratacoes_similares), and some are bare entity names with no verb (compras_sancao_ceis, compras_pncp_modalidades). The many listar/consultar/buscar variants are readable, but the convention is not predictable enough for a 100-tool surface.

Tool Count1/5

100 tools is an extreme count for any MCP server, regardless of domain breadth. Even if each tool has a legitimate upstream endpoint, this volume will heavily tax context windows and make reliable tool selection harder. Many tools could be consolidated into parameterized families (e.g., contratos, sancoes, pncp resources).

Completeness4/5

The server covers the Brazilian procurement domain remarkably well: catalogs, ARPs, 14.133 contracts, legacy regime, price research, suppliers, sanctions, PGC/PCA, PNCP, and Comprasnet contract subresources. Minor gaps remain, such as listing a supplier's full contract history without specifying an órgão, and some upstream limitations are only papered over with client-side workarounds.