Skip to main content
Glama

Server Details

Licitações e contratos públicos do Brasil (PNCP): fatos oficiais com fonte e data

Ownership verified
Status
Healthy
Uptime
80.6% over 35 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation4/5

The three tools split cleanly by resource+scope: open tenders by modality/UF, an agency's published tenders, and an agency's contracts. The two 'contratacoes' tools could be briefly confused, but the descriptions make the distinction (open opportunities vs. agency history) clear enough.

Naming Consistency4/5

All names are snake_case Portuguese noun phrases with a consistent '<resource>_do_orgao' pattern for two tools and 'contratacoes_abertas' for the third. The pattern is predictable and readable, though the singular/plural and 'abertas' deviation from the '_do_orgao' suffix is a minor inconsistency.

Tool Count4/5

Three tools is on the lean side but each covers a genuinely distinct, non-redundant slice of the procurement domain (opportunities, agency bids, agency contracts). It is well-scoped rather than padded, though the surface feels slightly thin for the breadth of PNCP data.

Completeness3/5

Coverage hits the main buyer-side workflows (find open bids, inspect an agency's tenders and contracts), and missing pieces like text search and winner lookup are explicitly attributed to API limitations. However, agents still hit real dead ends: no supplier-side search, no cross-agency aggregation, and no way to trace a specific bid to its outcome.

Available Tools

3 tools
contratacoes_abertasContratações abertas para propostaA
Read-onlyIdempotent
Inspect

Licitações que ainda recebem propostas, de uma modalidade (e UF opcional), com órgão, objeto, valor estimado, prazos e link do edital no PNCP. Use para achar oportunidades de venda ao governo. Fonte: PNCP (pncp.gov.br), publicado pelos órgãos. NÃO cobre: busca por palavra no objeto (a API não oferece), propostas já encerradas, nem quem venceu. A modalidade é obrigatória no PNCP: para varrer várias, chame uma vez por modalidade. total_registros mostra o tamanho do universo; se fontes[0].status não for ok (ex.: limite_excedido), dados vem nulo: tente de novo depois, não conclua que não há nada.

NameRequiredDescriptionDefault
ufNoSigla da UF do órgão (SP, RJ, ...). Sem ela, o Brasil todo.
paginaNoPágina (20 itens por página); veja total_paginas na resposta.
modalidadeYesCódigo da modalidade: 1 Leilão eletrônico, 2 Diálogo competitivo, 3 Concurso, 4 Concorrência eletrônica, 5 Concorrência presencial, 6 Pregão eletrônico, 7 Pregão presencial, 8 Dispensa, 9 Inexigibilidade, 10 Manifestação de interesse, 11 Pré-qualificação, 12 Credenciamento, 13 Leilão presencial.
encerramento_ateNoAAAA-MM-DD: só as que encerram propostas até esta data. Padrão: 90 dias à frente.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description still adds substantial behavior an agent could not infer: data provenance (PNCP, published by the agencies), `total_registros` as a universe-size signal, and the failure contract that a non-`ok` `fontes[0].status` such as `limite_excedido` returns null `dados` — with retry guidance instead of concluding there are no results.

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 resource and scope, then usage, then source provenance, then the explicit 'NÃO cobre' exclusion list, then the failure-handling note. Nearly every sentence carries information, though the combined body is dense enough that a small amount of trimming is possible.

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?

An output schema exists, so return-value documentation is not the description's burden, yet it still supplies the one output fact an agent must act on (null `dados` on source failure/limit). Together with source, scope, rate/looping behavior and exclusions, nothing needed to invoke this external-API tool correctly is missing.

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 descriptions of uf, pagina, modalidade and encerramento_ate already come from the schema (baseline 3). The description earns above baseline by explaining that modalidade is mandatory in the PNCP source itself and that scanning multiple modalities requires one call each — semantics the schema's enum listing does not convey.

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 concrete resource and its exact scope (licitações still receiving proposals, filtered by modalidade and optional UF), plus the fields returned (órgão, objeto, valor estimado, prazos, edital link). Sibling differentiation is only implicit — contratacoes_do_orgao is never named — but the 'by modality/UF, not by agency' framing gives an agent enough to route correctly.

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 an explicit use case ('Use para achar oportunidades de venda ao governo') and a clear when-not block ('NÃO cobre: busca por palavra no objeto, propostas encerradas, quem venceu'). It also explains the operational pattern of calling once per modalidade. It stops short of naming the sibling tools as alternatives, so it is not a full 5.

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

contratacoes_do_orgaoContratações publicadas por um órgãoA
Read-onlyIdempotent
Inspect

Licitações e compras diretas que um órgão público publicou no período, de uma modalidade: objeto, valor estimado e homologado, situação e link no PNCP. Use para conhecer o histórico de compras de um órgão. Fonte: PNCP, filtrado pela data de publicação. NÃO cobre: compras fora do PNCP (órgãos que ainda não publicam lá), fornecedores vencedores (veja contratos_do_orgao) nem busca por texto. A modalidade é obrigatória no PNCP. Lista vazia só significa 'nada publicado' quando fontes[0].status é ok.

NameRequiredDescriptionDefault
paginaNoPágina (20 itens por página); veja total_paginas na resposta.
cnpj_orgaoYesCNPJ do órgão comprador (14 dígitos, com ou sem máscara).
data_finalNoAAAA-MM-DD. Padrão: hoje. Janela máxima de 366 dias.
modalidadeYesCódigo da modalidade: 1 Leilão eletrônico, 2 Diálogo competitivo, 3 Concurso, 4 Concorrência eletrônica, 5 Concorrência presencial, 6 Pregão eletrônico, 7 Pregão presencial, 8 Dispensa, 9 Inexigibilidade, 10 Manifestação de interesse, 11 Pré-qualificação, 12 Credenciamento, 13 Leilão presencial.
data_inicialNoAAAA-MM-DD. Padrão: 30 dias antes de data_final.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), yet the description adds real operational context: filtering by data de publicação, mandatory modalidade at PNCP, and the crucial caveat that an empty list only means 'nada publicado' when fontes[0].status is ok. It does not describe pagination behavior beyond what the schema already documents.

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 what the tool returns, then caveats and exclusions; every clause carries information. It is dense and slightly run-on, but there is no filler or restated boilerplate.

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?

Given an output schema exists (return values need not be explained) and annotations cover safety, what remains for the description is source, filter semantics, mandatory params, non-coverage and empty-result interpretation — all present. An agent has everything needed to call this correctly or pick the sibling instead.

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 explains pagina, cnpj_orgao, date window/366-day limit and the full modalidade code table. The description reinforces that modalidade is obligatory but adds no syntax or format detail beyond the schema, which is exactly the baseline-3 case.

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 resource and scope: licitações e compras diretas publicadas por um órgão, com os campos retornados (objeto, valor estimado/homologado, situação, link). It also names the sibling it is not (contratos_do_orgao) and the source of truth (PNCP), so an agent can distinguish it from contratacoes_abertas and contratos_do_orgao 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 Guidelines5/5

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

Explicit when to use ('Use para conhecer o histórico de compras de um órgão') plus explicit exclusions ('NÃO cobre: compras fora do PNCP, fornecedores vencedores (veja `contratos_do_orgao`), nem busca por texto'). It even routes to the correct sibling by name, which is the strongest form of alternative guidance.

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

contratos_do_orgaoContratos assinados por um órgãoA
Read-onlyIdempotent
Inspect

Contratos que um órgão público publicou no período: CNPJ do fornecedor, objeto, valores, assinatura e vigência. Use para ver quem o órgão contrata e por quanto. Fonte: PNCP, filtrado pela data de publicação. NÃO cobre: contratos fora do PNCP, nem busca por fornecedor (o PNCP não filtra por ele): para saber quem é o fornecedor, consulte o CNPJ em outra fonte. LGPD: contratos com fornecedor pessoa física são omitidos (contados em omitidos_pessoa_fisica) e a razão social só sai quando parece sociedade (fornecedor_nome_omitido_lgpd indica a omissão; pode ser MEI ou empresário individual).

NameRequiredDescriptionDefault
paginaNoPágina (20 itens por página); veja total_paginas na resposta.
cnpj_orgaoYesCNPJ do órgão comprador (14 dígitos, com ou sem máscara).
data_finalNoAAAA-MM-DD. Padrão: hoje. Janela máxima de 366 dias.
data_inicialNoAAAA-MM-DD. Padrão: 30 dias antes de data_final.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld, but the description adds substantive data caveats the annotations cannot: the PNCP source, filtering by publication date, and detailed LGPD behavior (physically-owned-supplier contracts omitted, counted in `omitidos_pessoa_fisica`, name masked with a `fornecedor_nome_omitido_lgpd` flag). These materially change how an agent should interpret results.

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?

Purpose is front-loaded and the 'NÃO cobre' and LGPD clauses are clearly marked, so the density is justified. The LGPD sentence is long and slightly run-on, but every clause carries distinct, actionable information.

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 read-only, output-schema-backed tool, the description covers purpose, source, coverage limits, and the LGPD caveats that a caller must know to interpret `omitidos_pessoa_fisica` and `fornecedor_nome_omitido_lgpd`. Nothing needed to invoke or read the result sensibly is missing.

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 a 3, but the description adds real meaning by clarifying that the date range filters on publication date (not signature date), which the schema's date parameter docs do not state. The 366-day window is only in the schema, so it adds nothing there.

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 concrete verb and resource (contracts published by a public agency) and enumerates the returned fields (supplier CNPJ, object, values, signature, validity). Its scope is clear, but it does not explicitly distinguish itself from the sibling contratacoes_do_orgao (procurements vs. signed contracts), so sibling differentiation is left implicit.

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?

Explicitly gives the when ('Use para ver quem o órgão contrata e por quanto') and the when-not ('NÃO cobre: contratos fora do PNCP, nem busca por fornecedor'), routing the supplier-identification case to another source. This is exactly the kind of exclusion and alternative guidance an agent needs.

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. 3 tool updates
    • First observedcontratacoes_abertas
    • First observedcontratacoes_do_orgao
    • First observedcontratos_do_orgao

Publisher details

Operator
Douglas Gouvea (independent developer) · Publisher source
Vendor relationship
Independent
Trust center
Not available
Restrictions
Requires a paid MCPize subscription ($9/month) and an API key sent as a Bearer token. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    razilian public procurement (PNCP) and Federal Revenue CNPJ data for any MCP client. 18 tools covering bids, contracts, atas de registro de preço, annual procurement plans, CNPJ enrichment, plus temporal aggregation and period comparison. MIT licensed, maintained by Licinexus under Law 14.133/2021.
    18
    80 npm
    81
    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
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI agents to discover and analyze Brazilian public procurement opportunities from official PNCP and Compras.gov.br open data in a read-only way. Provides tools for full-text tender search, procurement details, document links, awarded results, supplier records, reference prices, contracts, and purchasing indicators without credentials or registration.
    15
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides access to Brazilian government procurement (PNCP) data without API keys, enabling natural language queries through Pipeworx's AI gateway.
    315 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources