Licitações BR
Server Details
Licitações e contratos públicos do Brasil (PNCP): fatos oficiais com fonte e data
- Status
- Healthy
- Uptime
- 80.6% over 35 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
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.
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.
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.
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 toolscontratacoes_abertasContratações abertas para propostaARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | Sigla da UF do órgão (SP, RJ, ...). Sem ela, o Brasil todo. | |
| pagina | No | Página (20 itens por página); veja total_paginas na resposta. | |
| modalidade | Yes | Có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_ate | No | AAAA-MM-DD: só as que encerram propostas até esta data. Padrão: 90 dias à frente. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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ãoARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pagina | No | Página (20 itens por página); veja total_paginas na resposta. | |
| cnpj_orgao | Yes | CNPJ do órgão comprador (14 dígitos, com ou sem máscara). | |
| data_final | No | AAAA-MM-DD. Padrão: hoje. Janela máxima de 366 dias. | |
| modalidade | Yes | Có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_inicial | No | AAAA-MM-DD. Padrão: 30 dias antes de data_final. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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ãoARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| pagina | No | Página (20 itens por página); veja total_paginas na resposta. | |
| cnpj_orgao | Yes | CNPJ do órgão comprador (14 dígitos, com ou sem máscara). | |
| data_final | No | AAAA-MM-DD. Padrão: hoje. Janela máxima de 366 dias. | |
| data_inicial | No | AAAA-MM-DD. Padrão: 30 dias antes de data_final. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
3 tool updates
- First observed
contratacoes_abertas - First observed
contratacoes_do_orgao - First observed
contratos_do_orgao
Publisher details
- Operator
- Douglas Gouvea (independent developer) · Publisher source
- Operator website
- https://mcpize.com/mcp/mcp-licitacoes-br · Publisher source
- Vendor relationship
- Independent
- Documentation
- https://mcpize.com/mcp/mcp-licitacoes-br · Publisher source
- 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
Query Brazil's public procurement portal (PNCP): tenders, contracts and price records.
Preços, atas, contratos e sanções das APIs públicas de compras do governo brasileiro
Brazilian public procurement (PNCP): search, deadlines, tender markdown, alerts and watches.
Search Brazilian government tenders and public procurement (PNCP): find notices and auctions by keyw
Related MCP Servers
AlicenseAqualityCmaintenancerazilian 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.1880 npm81MIT- AlicenseAqualityAmaintenanceIntegrates public APIs from the Brazilian Compras.gov.br procurement ecosystem to support price research, supplier sanctions, contract analysis, and procurement planning.1007MIT
- AlicenseBqualityCmaintenanceEnables 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.15MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to Brazilian government procurement (PNCP) data without API keys, enabling natural language queries through Pipeworx's AI gateway.315 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.