MCP Compras.gov.br
REMOTE · MCP-COMPRAS.UP.RAILWAY.APP · 2 COMPONENTS
Preços, atas, contratos e sanções das APIs públicas de compras do governo brasileiro
Available components
Last scanned (13 hours ago)
Scores higher than 8% of remote servers
Unreachable for 1 day in a row. Last reached 4 Nov 2026.
Category Finance and Payments
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security11
- TLS not yet verified: we couldn't open a connection to check the certificate. View diagnostics → Unverified
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS not yet verified: we couldn't read the response headers to check for it. View diagnostics → Unverified
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport check failed: declared streamable-http, but we couldn't connect to verify it. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
- Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 5 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Checks we ran (3)
- HTTPS
- DNSSEC
- Transport
Checks we could not complete (8)
These are gaps on our side, not findings about this hosted endpoint. We only credit what we can confirm, so a category made up entirely of them scores 0.
- TLS certificate in Endpoint SecurityTLS not yet verified: we couldn't open a connection to check the certificate.
- Authorization in Endpoint SecurityAuthorisation not yet verified: we couldn't confirm whether this endpoint requires it.
- HSTS header in Endpoint SecurityHSTS not yet verified: we couldn't read the response headers to check for it.
- Schema quality in Schema Quality & AI Usability (scores 0 for this)Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- Stability in Stability & Change Management (scores 0 for this)Stability not yet verified: not enough scan history yet (needs a 30-day window).
- Tool coverage in Tool Coverage (scores 0 for this)Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- Tool safety in Tool Safety (scores 0 for this)Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- Capabilities in Capabilities (scores 0 for this)Capabilities not yet verified: we couldn't read the endpoint's capabilities.
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 0
- Endpoint reachability: not serving MCP → unreachable ▼ security
- TLS certificate: pass → unverified ▼ security
- HSTS header: fail → unverified ▼ security
- Transport: Transport check failed: declared streamable-http, but we couldn't connect to verify it. security
- 3 Nov 26 −63
- Endpoint reachability: reachable → not serving MCP ▼ security
- Tool safety: pass → unverified ▼ security
- Authorization: partial → unverified ▼ security
- Stability: pass → unverified ▼ security
- Transport: pass → fail ▼ security
- Capabilities: pass → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- 10 Oct 26 +2
- Stability: 0.90 → pass security
- 3 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 8 Sept 26 0
- Stability: unverified → 0.03 ▲ functional
- 7 Sept 26 0
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp-compras.up.railway.app/mcp
TLS unreached
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp-compras.up.railway.app. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| app. | DS published | 23684 | 8 | Verified |
| railway.app. | No DS | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Inconclusive
We could not reach the endpoint well enough to judge its authorisation posture.
| Result | Inconclusive |
|---|
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp-compras.up.railway.app/mcp | Unreachable | ||
| http (plaintext) | http://mcp-compras.up.railway.app/mcp | HTTPS enforced |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
compras_aggregate_contratacoes_por_periodo ~374
Série temporal de contratações no PNCP por bucket. **Modo `count` (recomendado para tendência)**: 1 chamada por bucket lendo apenas `totalRegistros`. Janelas grandes (até 5 anos) são viáveis. **Modo `valor_*`**: varre todas as páginas de cada bucket para somar. Mais lento; limita-se a `MAX_PAGES_PER_BUCKET=25` páginas (× 500 itens = 12.500 registros máx por bucket). Sinaliza `truncado=true` quando bate o teto. Concurrency interna: 4 calls simultâneas. Cache 30 min.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_modalidade | integer | yes | Modalidade PNCP a agregar. Comuns: 6=Pregão Eletrônico, 8=Dispensa, 9=Inexigibilidade, 4=Concorrência Eletrônica. |
| data_final | string | yes | Data final da janela de agregação (YYYY-MM-DD). |
| data_inicial | string | yes | Data inicial da janela de agregação (YYYY-MM-DD). |
| esfera | – | – | Filtro de esfera (federal/estadual/municipal/distrital). Só tem efeito no modo 'valor_*' (precisa varrer páginas). |
| granularidade | string | – | Tamanho de cada bucket da série: 'dia', 'semana', 'mes' ou 'ano'. |
| metrica | string | – | Métrica a calcular: 'count' (rápido, 1 call por bucket), 'valor_estimado' ou 'valor_homologado' (paginado, mais lento). Use 'count' para tendência pura; só ative valores quando necessário. |
| uf | – | – | UF opcional. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_arp_adesoes_item ~180
Lista adesões (caronas) já realizadas a uma ARP. Endpoint Dados Abertos `/modulo-arp/5_consultarAdesoesItem`. Mostra quem aderiu e com que quantidade — indica nível de demanda e quanto ainda resta no limite legal de adesões. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| numero_ata | string | yes | Número simples da ata (ex.: '00001/2024'). |
| numero_item | integer | yes | Número do item dentro da ata. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
| unidade_gerenciadora | integer | yes | Código da UASG gerenciadora da ata. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_arp_buscar_por_objeto ~524
Busca ARPs vigentes cujo `objeto` contém uma palavra-chave. Resolve a limitação do endpoint `/modulo-arp/1.2_consultarARP_FimVigencia`, que não aceita filtro por texto: pagina internamente até `max_paginas_varridas` e filtra client-side por presença de `palavra_chave` (case-insensitive, com normalização de acentos). Curto-circuita quando atinge `max_resultados`. O servidor faz o trabalho que antes era pedido ao LLM — sem isso, o roteiro `oportunidades_carona_arp` esbarrava em 169k ARPs vigentes e 339 páginas. Achado da bateria A v0.3.5. **Limitação conhecida**: o schema upstream de ARP **não traz UF** no item — só `nomeOrgao` e `nomeUnidadeGerenciadora`. Para filtrar por UF, cruze os matches com `compras_uasg_consultar` usando `codigoUnidadeGerenciadora` e compare `unidade.uf`. Não tentamos esse cruzamento aqui para manter a tool barata e previsível. Output: { "resultado": [<ARPs que casaram>], "total_examinadas": int, "matches": int, "paginas_varridas": int, "curto_circuitou": bool, "_filtro_objeto": {...} } Cache 15 min por (palavra_chave + janela + caps).
| Name | Type | Req | Description |
|---|---|---|---|
| data_vigencia_final_max | string | yes | Limite máximo do fim de vigência (YYYY-MM-DD). |
| data_vigencia_final_min | string | yes | Limite mínimo do fim de vigência (YYYY-MM-DD). Tipicamente hoje para 'apenas vigentes'. |
| max_paginas_varridas | integer | – | Quantas páginas do upstream serão varridas para encontrar matches (proteção de latência). Default 10 × 500 itens = até 5.000 ARPs examinadas. Cap em 50. |
| max_resultados | integer | – | Quantos matches no máximo retornar (curto-circuita a varredura). |
| palavra_chave | string | yes | Termo a procurar no campo `objetoCompra` das ARPs (case-insensitive, com normalização básica de acentos). Exemplos: 'notebook', 'uniformes', 'limpeza'. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_arp_consultar ~263
Consulta uma ARP específica pelo identificador PNCP. Endpoint Dados Abertos `/modulo-arp/1.1_consultarARP_Id`. Devolve o cabeçalho completo da ata (vigência, modalidade, gerenciadora, valores). Quando o `numero_controle_pncp_ata` vem no formato de **compra** (sem o sufixo `-NNNNNN` que numera a ata), a tool detecta e devolve diagnóstico explícito em vez de propagar `encontrada=false` silencioso. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| numero_controle_pncp_ata | string | yes | Identificador PNCP da **ata** (formato `cnpj14-1-sequencial/ano-NNNNNN`, onde NNNNNN numera a ata dentro da compra — compras SRP multi-fornecedor geram várias atas). Exemplo: `00394452000103-1-004729… |
Structured output declared, but exposes no named fields.
No examples provided.
compras_arp_itens_listar ~253
Lista itens de ARPs na janela de vigência informada. Endpoint Dados Abertos `/modulo-arp/2_consultarARPItem`. O upstream exige `dataVigenciaInicialMin/Max` (janela ≤365 dias). Use filtros opcionais para localizar atas com um item específico. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_item | – | – | Filtra por código CATMAT ou CATSER. |
| codigo_unidade_gerenciadora | – | – | UASG gerenciadora (opcional). |
| data_vigencia_inicial_max | string | yes | Data máxima de início de vigência (YYYY-MM-DD). |
| data_vigencia_inicial_min | string | yes | Data mínima de início de vigência (YYYY-MM-DD). |
| ni_fornecedor | – | – | CPF/CNPJ do fornecedor (apenas dígitos). |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
| tipo_item | – | – | Tipo do item: 'M' (material) ou 'S' (serviço). |
Structured output declared, but exposes no named fields.
No examples provided.
compras_arp_listar ~315
Lista Atas de Registro de Preço (ARPs) por janela de início de vigência. Endpoint Dados Abertos `/modulo-arp/1_consultarARP`. O upstream exige janela `dataVigenciaInicialMin/Max` (≤ 365 dias). Para listar atas próximas do vencimento, use `compras_arp_por_fim_vigencia`. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_modalidade_compra | – | – | Filtra por modalidade da compra que originou a ata. |
| codigo_unidade_gerenciadora | – | – | Filtra ARPs pela UASG gerenciadora (5-6 dígitos). |
| data_vigencia_inicial_max | string | yes | Data MÁXIMA do início da vigência da ata (YYYY-MM-DD). Obrigatório. Janela max ≤ 365 dias a partir de data_vigencia_inicial_min. |
| data_vigencia_inicial_min | string | yes | Data MÍNIMA do início da vigência da ata (YYYY-MM-DD). Obrigatório. A janela entre min e max deve ser de no máximo 365 dias. |
| numero_ata_registro_preco | – | – | Filtra por número da ata (ex.: '00001/2024'). |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_arp_por_fim_vigencia ~196
Lista ARPs cuja vigência termina dentro do intervalo informado. Endpoint Dados Abertos `/modulo-arp/1.2_consultarARP_FimVigencia`. Permite ao gestor identificar atas próximas do vencimento. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_unidade_gerenciadora | – | – | UASG gerenciadora (opcional). |
| data_vigencia_final_max | string | yes | Data MÁXIMA de fim de vigência (YYYY-MM-DD). Obrigatório. |
| data_vigencia_final_min | string | yes | Data MÍNIMA de fim de vigência (YYYY-MM-DD). Obrigatório. Janela max ≤ 365 dias. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_arp_saldo_item ~331
Devolve o **saldo** (quantidade ainda disponível) por item da ARP. Endpoint Dados Abertos `/modulo-arp/4_consultarEmpenhosSaldoItem`. **Crítico para adesão**: a ata pode estar vigente mas com saldo zerado. Sem saldo, não há como aderir. **Estrutura do payload**: o upstream retorna **1 linha por (numeroItem, unidade, tipo)** — onde `tipo` pode ser `GERENCIADORA`, `PARTICIPANTE` etc. O mesmo `numeroItem` aparece várias vezes quando há múltiplas unidades alocadas (carona ou rateio). **Não é duplicação** — são alocações distintas dentro da mesma ata. Para evitar confusão (achado bateria A v0.3.5), além do `resultado` cru, anexamos `resumo_por_item`: dicionário agregando por `numeroItem` com soma das quantidades registradas/empenhadas e saldo total — pronto para decisão de adesão. Cache 15 min (saldo muda ao longo do dia).
| Name | Type | Req | Description |
|---|---|---|---|
| numero_ata | string | yes | Número simples da ata (ex.: '00001/2024'). |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
| unidade_gerenciadora | integer | yes | Código da UASG gerenciadora da ata. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_arp_unidades_item ~206
Lista UGs participantes (potenciais caronas) de um item da ARP. Endpoint Dados Abertos `/modulo-arp/3_consultarUnidadesItem`. Determina quais unidades podem usar a ata como carona (adesão). Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| numero_ata | string | yes | Número simples da ata (ex.: '00001/2024'). Distinto do `numeroControlePncpAta` — use o campo retornado em `compras_arp_listar` ou `compras_arp_itens_listar`. |
| numero_item | integer | yes | Número do item dentro da ata. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
| unidade_gerenciadora | integer | yes | Código da UASG gerenciadora da ata. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_buscar_contratacoes_similares ~358
Federa Dados Abertos + PNCP buscando contratações similares. Composição: consulta os **itens** de contratações 14.133 no Dados Abertos (`/modulo-contratacoes/2_`, filtrando por `codItemCatalogo` e só itens com resultado) + publicações PNCP do período, deduplica pelo número de controle PNCP e devolve os `max_resultados` mais recentes. Insumo para mapear benchmarks de outros órgãos. O recorte por CATMAT/CATSER vale para a perna Dados Abertos. A perna PNCP é best-effort por modalidade e não aceita filtro por item de catálogo — por isso `amostra_dados_abertos` e `amostra_pncp` vêm separadas no payload. **Atenção latência**: chama o PNCP em 3 modalidades (Pregão, Dispensa, Concorrência) em paralelo. Cada chamada PNCP costuma levar 30-60s — o tempo total da composta tende a 60-90s quando o cache está frio. Com Redis configurado as chamadas seguintes voltam em <1s.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_catmat | – | – | Código CATMAT do item. Mutuamente exclusivo com codigo_catser. |
| codigo_catser | – | – | Código CATSER do serviço. Mutuamente exclusivo com codigo_catmat. |
| max_resultados | integer | – | Máximo de contratações similares a retornar (deduplicadas). |
| periodo_meses | integer | – | Janela de busca em meses contados de hoje para trás. |
| uf | – | – | Filtro opcional por UF. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_catmat_buscar ~563
Busca itens CATMAT. **⚠️ Não existe busca por substring nesta API.** O contrato do `/modulo-material/4_consultarItemMaterial` oferece `descricaoItem`, que é **match exato**: `descricaoItem='CADEIRA'` devolve zero registros, embora o catálogo tenha milhares de itens começando por "CADEIRA ESCRITÓRIO...". Não é um filtro degradado — é um filtro de igualdade, e o termo livre que o usuário digita quase nunca casa com a descrição inteira do item. Por isso o `termo` **não** é enviado ao upstream: mandá-lo faria a chamada retornar o universo inteiro (~340 mil itens) sem nenhum aviso. Ele é usado para ordenar e marcar os resultados do recorte estrutural, e a filtragem real vem de `codigo_grupo`, `codigo_classe` e `codigo_pdm`. **Workflow recomendado**: 1. `compras_catmat_listar_grupos()` → escolher o grupo (ex.: 71=Mobiliários). 2. `compras_catmat_listar_classes(codigo_grupo=71)` → a classe (ex.: 7110). 3. `compras_catmat_listar_pdms(codigo_classe=7110)` → o PDM do material. 4. `compras_catmat_buscar(termo='cadeira', codigo_pdm=...)`. Esta tool emite `_aviso_filtro` no payload quando o recorte informado é largo demais para ser útil. Cache 24h por (termo + filtros + página).
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_classe | – | – | Filtro estrutural por classe CATMAT (4 dígitos). Use em conjunto com `codigo_grupo` para focar a busca. |
| codigo_grupo | – | – | Filtro estrutural por grupo CATMAT (1-99). **FORTEMENTE RECOMENDADO** porque o filtro textual upstream está quebrado (veja docstring). Obtenha o código em `compras_catmat_listar_grupos`. |
| codigo_pdm | – | – | Filtro estrutural por PDM (Padrão Descritivo de Material). É o recorte mais preciso do CATMAT: agrupa as variações de um mesmo material. Obtenha o código em `compras_catmat_listar_pdms`. |
| pagina | integer | – | Página (1-based). |
| tamanho_pagina | integer | – | Registros por página. |
| termo | string | yes | Termo de busca textual (descrição do material/serviço). Aceita fragmento — a API faz match parcial. Ex.: 'cadeira ergonomica'. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_catmat_consultar ~115
Consulta detalhes de um item CATMAT específico pelo código. Devolve nome do item, PDM, grupo, classe, características, NCM e unidades de fornecimento. Útil para confirmar o código antes de fazer pesquisa de preços ou listar contratações similares. Cache de 24h.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_item | integer | yes | Código numérico do item no CATMAT (Catálogo de Materiais). Inteiro de 4 a 8 dígitos. Exemplo: 460789. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_catmat_listar_classes ~141
Lista as classes do CATMAT, opcionalmente filtradas por grupo. Classes são o segundo nível da hierarquia (ex.: dentro do grupo 71 Mobiliário, a classe 7110 é "Mobiliário de escritório"). Cache de 24h.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_grupo | – | – | Restringe a classes pertencentes a este grupo CATMAT. Se omitido, lista classes de todos os grupos. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_catmat_listar_grupos ~151
Lista os grupos do CATMAT (Catálogo de Materiais). Grupos são o nível mais alto da hierarquia CATMAT (ex.: 10=ARMAMENTO, 11=MATERIAIS BÉLICOS NUCLEARES). Use esta tool para enquadrar a contratação no grupo correto antes de descer para classes/PDM/itens. Cache de 24h: os grupos mudam muito raramente. Total atual ~79 grupos.
| Name | Type | Req | Description |
|---|---|---|---|
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_catmat_listar_pdms ~415
Lista os PDMs (Padrão Descritivo de Material) do CATMAT. Endpoint `/modulo-material/3_consultarPdmMaterial`. É o terceiro nível da hierarquia do catálogo: grupo → classe → **PDM** → item. O PDM é o que dá nome à família do material ("CADEIRA ESCRITÓRIO", "MICROCOMPUTADOR"), enquanto o item é uma variação específica dela. Como a API não faz busca por substring, descer até o PDM é a forma prática de localizar o material certo antes de pedir os itens. Uma classe devolve suas dezenas de PDMs nomeados em **uma** chamada — a classe 7110 (Mobiliário de escritório) tem 98 PDMs. A alternativa seria varrer milhares de itens e deduplicar `codigoPdm` client-side. **Isto é navegação hierárquica, não busca**: o endpoint não tem filtro textual. Combine com `compras_catmat_listar_grupos` e `compras_catmat_listar_classes` para descer a hierarquia, e depois passe o `codigo_pdm` para `compras_catmat_buscar`. Cache 24h.
| Name | Type | Req | Description |
|---|---|---|---|
| apenas_ativos | – | – | Se `true`, só PDMs com status ativo no catálogo. |
| codigo_classe | – | – | Código da classe CATMAT (4 dígitos). É o recorte mais útil: uma classe devolve suas dezenas de PDMs em uma única chamada. |
| codigo_grupo | – | – | Código do grupo CATMAT (2 dígitos) para listar seus PDMs. |
| codigo_pdm | – | – | Código de um PDM específico. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_catser_consultar ~108
Consulta detalhes de um item CATSER pelo código. Devolve nome do serviço, descrição, seção/divisão/grupo/classe e unidades de medida. Use para confirmar o código antes de pesquisar preços ou contratações similares. Cache de 24h.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_item | integer | yes | Código numérico do item no CATSER (Catálogo de Serviços). Inteiro de 4 a 6 dígitos. Exemplo: 27332. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_catser_listar_classes ~95
Lista as classes CATSER, opcionalmente filtradas por grupo. Cache de 24h.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_grupo | – | – | Restringe a classes do grupo CATSER informado. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_catser_listar_secoes ~124
Lista as seções do CATSER (Catálogo de Serviços). Seções são o nível mais alto da hierarquia CATSER (baseada no CPC ONU). Use para enquadrar a contratação de serviços em uma seção antes de descer para divisões/grupos/classes/itens. Cache de 24h.
| Name | Type | Req | Description |
|---|---|---|---|
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_checar_sancoes_fornecedor ~144
Consolida sanções de um fornecedor (CEIS + CNEP + CEPIM + leniência + impedimentos). Composição: chama em paralelo as listas do Portal da Transparência e os impedimentos do Comprasnet. Retorna um veredito booleano + lista consolidada de sanções ativas. Levanta `ComprasAuthError` se `TRANSPARENCIA_API_KEY` não estiver configurada. Sempre use antes de homologar pregões/contratos. Cache 10 min.
| Name | Type | Req | Description |
|---|---|---|---|
| cnpj | string | yes | CNPJ do fornecedor (14 dígitos, com ou sem pontuação). |
Structured output declared, but exposes no named fields.
No examples provided.
compras_comparar_periodos_contratacoes ~373
Compara dois períodos lado a lado para a mesma modalidade. Wrapper sobre `compras_aggregate_contratacoes_por_periodo` chamado duas vezes (granularidade='ano' implícita — soma todo o período em 1 bucket). Retorna totais de A e B + delta absoluto + delta percentual. Caso de uso típico: _"Houve antecipação de licitações em Jun/2024 (ano eleitoral) comparado a Jun/2025?"_ Ou _"As dispensas em Dez/2024 foram maiores que Dez/2023 no mesmo órgão?"_.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_modalidade | integer | yes | Modalidade PNCP a comparar. Comuns: 6=Pregão Eletrônico, 8=Dispensa, 4=Concorrência Eletrônica. |
| esfera | – | – | Esfera federativa. Requer métrica de valor (modo paginado). |
| label_a | string | – | Rótulo amigável do período A (ex.: 'Jun/2024'). |
| label_b | string | – | Rótulo amigável do período B (ex.: 'Jun/2025'). |
| metrica | string | – | Métrica a comparar: 'count' (rápido) ou 'valor_estimado' / 'valor_homologado' (paginado). |
| periodo_a_fim | string | yes | Data final do período A (YYYY-MM-DD). |
| periodo_a_inicio | string | yes | Data inicial do período A (YYYY-MM-DD). |
| periodo_b_fim | string | yes | Data final do período B (YYYY-MM-DD). |
| periodo_b_inicio | string | yes | Data inicial do período B (YYYY-MM-DD). |
| uf | – | – | UF opcional. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contratacoes_14133_consultar ~301
Consulta uma contratação 14.133 pelo identificador. Endpoint `/modulo-contratacoes/1.1_consultarContratacoes_PNCP_14133_Id`. Devolve detalhes completos: objeto, valor estimado, modalidade, instrumento convocatório, status no PNCP. Aceita os dois identificadores do PNCP. Use `tipo_identificador='idCompra'` com o campo `idCompra` das listagens, ou `'numeroControlePNCPCompra'` com o número de controle que aparece no edital (ex.: `10673078000120-1-000021/2025`). Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| id_contratacao | string | yes | Identificador da contratação. Aceita dois formatos, conforme `tipo_identificador`: o `idCompra` (17 dígitos, campo `idCompra` das listagens, ex.: '15813206001272025') ou o número de controle PNCP (al… |
| tipo_identificador | string | – | Qual identificador está sendo passado em `id_contratacao`: 'idCompra' (padrão) ou 'numeroControlePNCPCompra'. O upstream rejeita qualquer outro valor com HTTP 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contratacoes_14133_itens_listar ~684
Lista itens de contratações 14.133 incluídos no período. Endpoint `/modulo-contratacoes/2_consultarItensContratacoes_PNCP_14133`. **Uso principal — pesquisa de preço por item.** Com `cod_item_catalogo` (CATMAT/CATSER) cada linha traz, junto, `quantidade`, `valorUnitarioEstimado`, `valorUnitarioResultado`, `valorTotalResultado`, `nomeFornecedor` e `unidadeMedida` — ou seja, estimado *versus* homologado por item, insumo direto do mapa de preços do ETP. **Higiene da amostra**: passe `tem_resultado=True` (ou `situacao_item='2'`, Homologado) antes de calcular média ou mediana. Item deserto, fracassado ou cancelado não é preço praticado. Sem nenhum filtro além das datas, a resposta é "tudo que o Brasil incluiu no PNCP nessa janela" — quase sempre grande demais para ser útil. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| cnpj_cpf_fornecedor | – | – | CNPJ ou CPF do fornecedor vencedor do item (só dígitos). |
| cnpj_orgao | – | – | CNPJ do órgão comprador (14 dígitos, com ou sem pontuação). |
| cod_item_catalogo | – | – | Código do item no catálogo (CATMAT para material, CATSER para serviço). É o filtro que transforma esta tool em pesquisa de preço: devolve, na mesma linha, quantidade, valor unitário estimado e valor… |
| codigo_classe | – | – | Código da classe do catálogo. Vem nulo em boa parte dos serviços — nesses casos use `codigo_grupo`. |
| codigo_grupo | – | – | Código do grupo do catálogo. Recorte por família quando o código exato do item ainda não é conhecido. |
| codigo_uasg | – | – | Código da UASG compradora (6 dígitos). |
| data_final_inclusao | string | yes | Data final de inclusão dos itens no PNCP (YYYY-MM-DD). |
| data_inicial_inclusao | string | yes | Data inicial de inclusão dos itens no PNCP (YYYY-MM-DD). |
| material_ou_servico | – | – | 'M' para material, 'S' para serviço. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| situacao_item | – | – | Situação do item da compra. '2' = Homologado, '4' = Cancelado. Filtre por '2' antes de calcular qualquer estatística de preço. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
| tem_resultado | – | – | Se `true`, só itens que tiveram vencedor — filtro aplicado pelo upstream. Use para pesquisa de preço: item deserto ou fracassado não é preço praticado e não pode entrar na média do ETP. Se `false`, o… |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contratacoes_14133_itens_por_contratacao ~271
Lista itens de uma contratação 14.133 específica. Endpoint `/modulo-contratacoes/2.1_consultarItensContratacoes_PNCP_14133_Id`. Aceita `idCompra` ou número de controle PNCP, conforme `tipo_identificador`.
| Name | Type | Req | Description |
|---|---|---|---|
| id_contratacao | string | yes | Identificador da contratação. Aceita dois formatos, conforme `tipo_identificador`: o `idCompra` (17 dígitos, campo `idCompra` das listagens, ex.: '15813206001272025') ou o número de controle PNCP (al… |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
| tipo_identificador | string | – | Qual identificador está sendo passado em `id_contratacao`: 'idCompra' (padrão) ou 'numeroControlePNCPCompra'. O upstream rejeita qualquer outro valor com HTTP 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contratacoes_14133_listar ~696
Lista contratações da Lei 14.133 publicadas no PNCP (via Dados Abertos). Endpoint `/modulo-contratacoes/1_consultarContratacoes_PNCP_14133`. Cobre pregões eletrônicos, dispensas, inexigibilidades e demais modalidades da Nova Lei de Licitações no governo federal. **Atenção semântica**: o filtro `codigo_modalidade_dados_abertos` usa a tabela de modalidade do SIASG/Dados Abertos, NÃO o cheat sheet PNCP de `compras_pncp_modalidades`. Os payloads retornam ambos os campos (`codigoModalidade` do Dados Abertos e `modalidadeIdPncp` do PNCP) — use `modalidadeNome` para o nome amigável. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| amparo_legal | – | – | Código do amparo legal no PNCP (campo `amparoLegalCodigoPncp`). Ex.: 18 = Lei 14.133/2021, Art. 75, I (dispensa por valor). |
| cnpj_orgao | – | – | CNPJ do órgão (14 dígitos, com ou sem pontuação). |
| codigo_ibge_municipio | – | – | Código IBGE do município da unidade compradora (7 dígitos). |
| codigo_modalidade_dados_abertos | – | – | Código de modalidade na tabela do **Dados Abertos / SIASG** (NÃO é o cheat sheet do PNCP). Equivalências confirmadas em 2026-05 por sweep empírico do endpoint: 3 = Concorrência Eletrônica (PNCP=4)… |
| codigo_orgao_pncp | – | – | Código do órgão **no espaço de códigos interno do PNCP** — é o campo `codigoOrgao` que vem no payload desta mesma tool, e só ele. **Não é o código SIASG** de `compras_orgao_listar`/`compras_orgao_con… |
| codigo_uasg | – | – | Código UASG do órgão licitante. |
| data_final_publicacao | – | – | Data final de publicação (YYYY-MM-DD). |
| data_inicial_publicacao | – | – | Data inicial de publicação (YYYY-MM-DD). |
| pagina | integer | – | Página (1-based). |
| tamanho_pagina | integer | – | Registros por página. |
| uf | – | – | Sigla da UF da unidade compradora (2 letras, ex.: 'SP', 'MS'). |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contratacoes_14133_resultados_listar ~536
Lista resultados (homologações) de itens 14.133 no período. Endpoint `/modulo-contratacoes/3_consultarResultadoItensContratacoes_PNCP_14133`. Devolve fornecedor vencedor, valor adjudicado e quantitativo homologado — fonte primária de preço praticado para o ETP. **Due diligence de fornecedor**: `ni_fornecedor` (CNPJ/CPF) levanta tudo que um fornecedor ganhou na janela. **Auditoria por materialidade**: `valor_total_min` monta a fila de homologações acima de um patamar — combine com uma janela curta, já que o filtro de data é obrigatório. Para recortar por item de catálogo, use `compras_contratacoes_14133_itens_listar(cod_item_catalogo=...)`: esta rota **não** oferece filtro por CATMAT/CATSER. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| cnpj_orgao | – | – | CNPJ do órgão comprador (14 dígitos, com ou sem pontuação). |
| codigo_uasg | – | – | Código da UASG compradora (6 dígitos). |
| data_final_resultado | string | yes | Data final do resultado/homologação (YYYY-MM-DD). |
| data_inicial_resultado | string | yes | Data inicial do resultado/homologação (YYYY-MM-DD). |
| ni_fornecedor | – | – | Número de identificação do fornecedor vencedor (CNPJ ou CPF, só dígitos). Use para levantar tudo que um fornecedor ganhou no período. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| porte_fornecedor | – | – | Código do porte do fornecedor (ex.: 1=ME, 2=EPP, 3=Demais). Preenchimento irregular na origem — trate ausência como desconhecido. |
| situacao_resultado | – | – | Código da situação do resultado. 1 = Informado. Use para descartar resultado cancelado antes de calcular média ou mediana de preço. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
| valor_total_max | – | – | Valor total homologado máximo (R$). |
| valor_total_min | – | – | Valor total homologado mínimo (R$). Combinado com a janela de datas, monta fila de auditoria por materialidade. |
| valor_unitario_max | – | – | Valor unitário homologado máximo (R$). |
| valor_unitario_min | – | – | Valor unitário homologado mínimo (R$). |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contratacoes_14133_resultados_por_contratacao ~271
Lista resultados (homologações) de uma contratação 14.133 específica. Endpoint `/modulo-contratacoes/3.1_consultarResultadoItensContratacoes...`. Aceita `idCompra` ou número de controle PNCP, conforme `tipo_identificador`.
| Name | Type | Req | Description |
|---|---|---|---|
| id_contratacao | string | yes | Identificador da contratação. Aceita dois formatos, conforme `tipo_identificador`: o `idCompra` (17 dígitos, campo `idCompra` das listagens, ex.: '15813206001272025') ou o número de controle PNCP (al… |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
| tipo_identificador | string | – | Qual identificador está sendo passado em `id_contratacao`: 'idCompra' (padrão) ou 'numeroControlePNCPCompra'. O upstream rejeita qualquer outro valor com HTTP 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contrato_comprasnet_consultar ~103
Consulta detalhe completo de um contrato no Comprasnet (/api/contrato/id/{id}). Devolve contrato com sub-recursos embutidos. CPFs mascarados por LGPD. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| id_contrato | integer | yes | ID interno do contrato no Comprasnet (pode ser diferente do id no Dados Abertos). Obtenha em `compras_contrato_comprasnet_por_uasg`. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contrato_comprasnet_por_uasg ~214
Lista contratos de uma UASG no Comprasnet. **Atenção**: o upstream `/api/contrato/ug/{uasg}` não suporta paginação — devolve a lista completa em uma resposta única (pode passar de 1 MB). Esta tool fatia o resultado client-side conforme `pagina + tamanho_pagina` para evitar inundar o LLM. Cache 15 min do payload completo; fatiamento por chamada é barato.
| Name | Type | Req | Description |
|---|---|---|---|
| ativos | boolean | – | Se True (padrão), lista apenas contratos ativos. Set False para incluir inativos via /api/contrato/inativo/ug/{uasg}. |
| codigo_uasg | integer | yes | Código UASG (5-6 dígitos). |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contrato_cronograma ~107
Lista cronograma financeiro (/api/contrato/{id}/cronograma). Paginação client-side — alguns contratos têm 200+ entradas mensais. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| id_contrato | integer | yes | ID do contrato no Comprasnet. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contrato_empenhos ~99
Lista empenhos do contrato (/api/contrato/{id}/empenhos). Paginação client-side. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| id_contrato | integer | yes | ID do contrato no Comprasnet. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contrato_faturas ~155
Lista NFs/faturas (/api/contrato/{id}/faturas). Paginação client-side. Cache 15 min. **Atenção LGPD**: o campo `infcomplementar` (texto livre) pode conter nome de servidor + matrícula SIAPE não estruturados — o mascaramento LGPD só cobre CPFs em campos nominais (cpf, niResponsavel, etc.).
| Name | Type | Req | Description |
|---|---|---|---|
| id_contrato | integer | yes | ID do contrato no Comprasnet. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contrato_garantias ~100
Lista garantias contratuais (/api/contrato/{id}/garantias). Paginação client-side. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| id_contrato | integer | yes | ID do contrato no Comprasnet. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contrato_historico_aditivos ~108
Lista aditivos do contrato (/api/contrato/{id}/historico). Paginação client-side (upstream não pagina). Cache 15 min do payload completo.
| Name | Type | Req | Description |
|---|---|---|---|
| id_contrato | integer | yes | ID do contrato no Comprasnet. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contrato_ocorrencias ~110
Lista ocorrências/penalidades (/api/contrato/{id}/ocorrencias). Indicador-chave da confiabilidade do fornecedor. Paginação client-side. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| id_contrato | integer | yes | ID do contrato no Comprasnet. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contrato_publicacoes ~97
Lista publicações DOU (/api/contrato/{id}/publicacoes). Paginação client-side. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| id_contrato | integer | yes | ID do contrato no Comprasnet. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contrato_responsaveis ~116
Lista fiscais/gestores (/api/contrato/{id}/responsaveis). CPFs mascarados por LGPD (`123.***.***-45`). Paginação client-side. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| id_contrato | integer | yes | ID do contrato no Comprasnet. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contratos_consultar ~164
Consulta um contrato no Dados Abertos (endpoint 1.1). O upstream exige `codigo + tipo`. Tipos aceitos pela API: `idCompra` e `numeroControlePncpContrato`. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo | string | yes | Identificador do contrato no upstream — interpretação depende de `tipo`. Para tipo='idCompra' é o id da compra (string numérica). Para tipo='numeroControlePncpContrato' é o número de controle PNCP co… |
| tipo | string | – | Como interpretar `codigo`: 'idCompra' (id interno da compra) ou 'numeroControlePncpContrato' (identificador PNCP). |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contratos_item_consultar ~325
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.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo | string | yes | Identificador do contrato: o `idCompra` numérico ou o número de controle PNCP do contrato, conforme `tipo_identificador`. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
| tipo_identificador | string | – | Qual identificador está em `codigo`: 'idCompra' (padrão) ou 'numeroControlePncpContrato'. Outro valor devolve HTTP 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contratos_itens_listar ~211
Lista itens de contratos (endpoint 2). Upstream exige `codigoOrgao + dataVigenciaInicialMin/Max`. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_item | – | – | Código CATMAT ou CATSER (opcional). |
| codigo_orgao | integer | yes | Código do órgão (obrigatório). |
| data_vigencia_inicial_max | string | yes | Data máxima de início de vigência (YYYY-MM-DD). |
| data_vigencia_inicial_min | string | yes | Data mínima de início de vigência (YYYY-MM-DD). Janela ≤ 365 dias. |
| ni_fornecedor | – | – | CPF/CNPJ do fornecedor. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
| tipo_item | – | – | Tipo do item: 'M' (material) ou 'S' (serviço). |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contratos_listar ~321
Lista contratos federais (Dados Abertos /modulo-contratos/1). O upstream exige `codigoOrgao` + janela `dataVigenciaInicialMin/Max` (≤ 365 dias). Para sub-recursos detalhados (garantias, faturas, ocorrências), use `compras_contrato_*` que consulta o Comprasnet. Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_modalidade_compra | – | – | Modalidade da compra que originou o contrato. |
| codigo_orgao | integer | yes | Código do órgão (obrigatório no upstream). Use `compras_orgao_listar` para descobrir. |
| codigo_unidade_gestora | – | – | Filtra pela UASG gestora do contrato. |
| data_vigencia_inicial_max | string | yes | Data MÁXIMA de início de vigência (YYYY-MM-DD). |
| data_vigencia_inicial_min | string | yes | Data MÍNIMA de início de vigência do contrato (YYYY-MM-DD). Janela max ≤ 365 dias até data_vigencia_inicial_max. |
| ni_fornecedor | – | – | CPF/CNPJ do fornecedor (apenas dígitos). Opcional. |
| numero_contrato | – | – | Filtra por número do contrato (ex.: '00031/2015'). |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_contratos_listar_por_fim_vigencia ~208
Lista contratos com vencimento na janela informada (endpoint 1.2). Inventário do que precisa renovar. Upstream exige `codigoOrgao` + `dataVigenciaFinalMin/Max` (≤ 365 dias). Cache 15 min.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_orgao | integer | yes | Código do órgão (obrigatório). |
| codigo_unidade_gestora | – | – | UASG gestora (opcional). |
| data_vigencia_final_max | string | yes | Data MÁXIMA de fim de vigência (YYYY-MM-DD). |
| data_vigencia_final_min | string | yes | Data MÍNIMA de fim de vigência (YYYY-MM-DD). Janela ≤ 365 dias. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_detalhar_preco_material ~444
Lista as compras individuais de um item CATMAT — **sem valor de preço**. Endpoint: `/modulo-pesquisa-preco/2_consultarMaterialDetalhe`. **⚠️ Esta tool não devolve preço.** Até a v0.3.12 a docstring prometia "valor unitário homologado"; auditoria de 2026-08-05 mostrou que o DTO upstream (`FtPesqPrecoCompraMaterialDetalheDTO`) tem exatamente 7 campos e nenhum deles é valor: idCompra, idItemCompra, numeroItemCompra, codigoItemCatalogo, objetoCompra, descricaoDetalhadaItem, dataAtualizacaoFato Confirmado nos dois sentidos: chamada crua ao upstream (fora da camada do MCP) devolve as mesmas 7 chaves, e o contrato OpenAPI oficial declara as mesmas 7. Ou seja: **não somos nós que filtramos** — o campo nunca existiu nesta rota. A rota 4 (serviço detalhe) tem DTO idêntico. **Para preço unitário de material use `compras_pesquisar_preco_material`**, que devolve `precoUnitario`, `quantidade`, `dataCompra` e fornecedor por compra — é a fonte correta para a amostragem da IN SEGES/ME 65/2021. Use esta tool apenas para: descrição detalhada do item como comprado, objeto da compra e rastreio do `idCompra` para cruzar com outras bases. Cache 10 min.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_item_catalogo | integer | yes | Código CATMAT do material. Inteiro 4-8 dígitos. Ex.: 460789. |
| data_fim | – | – | Data final da compra (YYYY-MM-DD). Quando omitida, a API usa a data atual. |
| data_inicio | – | – | Data inicial da compra (YYYY-MM-DD). Quando omitida, a API usa o início do ano corrente. |
| pagina | integer | – | Página (1-based). |
| tamanho_pagina | integer | – | Registros por página. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_detalhar_preco_servico ~244
Lista as compras individuais de um serviço CATSER — **sem valor de preço**. Endpoint: `/modulo-pesquisa-preco/4_consultarServicoDetalhe`. **⚠️ Esta tool não devolve preço** (verificado 2026-08-05): o DTO upstream é idêntico ao da rota 2 — idCompra, idItemCompra, numeroItemCompra, codigoItemCatalogo, objetoCompra, descricaoDetalhadaItem, dataAtualizacaoFato. Nenhum campo de valor. **Para preço unitário de serviço use `compras_pesquisar_preco_servico`**, que devolve `precoUnitario` e fornecedor por compra. Cache 10 min.
| Name | Type | Req | Description |
|---|---|---|---|
| codigo_item_catalogo | integer | yes | Código CATSER do serviço. Inteiro 4-6 dígitos. Ex.: 27332. |
| data_fim | – | – | Data final (YYYY-MM-DD). |
| data_inicio | – | – | Data inicial (YYYY-MM-DD). |
| pagina | integer | – | Página (1-based). |
| tamanho_pagina | integer | – | Registros por página. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_fornecedor_cnpj_receita ~232
Dados públicos do CNPJ na Receita Federal (via BrasilAPI/MinhaReceita). Retorna razão social, nome fantasia, situação cadastral, CNAE primário e secundários, QSA (sócios), capital social, natureza jurídica, porte, endereço e datas de início de atividade e da situação cadastral. **Quando usar**: complemento do `compras_perfil_fornecedor_completo` para due diligence (avaliar porte, sócios, CNAEs vs objeto da licitação). Os dados são da Receita; este MCP **não** consulta sanções aqui — para isso use as tools de sanção (CEIS/CNEP/CEPIM/CEAF). Cache 24h. Em caso de 404 ou erro upstream, retorna `encontrado=false` com diagnóstico em `_erro` em vez de propagar exception.
| Name | Type | Req | Description |
|---|---|---|---|
| cnpj | string | yes | CNPJ a consultar (14 dígitos, com ou sem pontuação). Usa BrasilAPI por padrão; trocável via env `CNPJ_PROVIDER=minhareceita`. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_fornecedor_consultar ~92
Consulta cadastro de um fornecedor pelo CNPJ ou CPF. Endpoint Dados Abertos `/modulo-fornecedor/1_consultarFornecedor`. Devolve razão social, CNAE, porte da empresa, natureza jurídica. Cache 1h.
| Name | Type | Req | Description |
|---|---|---|---|
| cnpj_cpf | string | yes | CNPJ (14 dígitos) ou CPF (11 dígitos) do fornecedor, com ou sem pontuação. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_fornecedor_contratos_por_item ~108
Lista contratos e empenhos por itens (CATMAT/CATSER) no Comprasnet. Endpoint `POST /api/comprasnet/contratosempenhos`. Útil para descobrir quem fornece esses itens hoje no governo (potenciais participantes em novos certames). Cache 1h.
| Name | Type | Req | Description |
|---|---|---|---|
| codigos_catmat | – | – | Códigos CATMAT a buscar. |
| codigos_catser | – | – | Códigos CATSER a buscar. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_fornecedor_impedimentos_por_itens ~139
Consulta impedimentos no Comprasnet por lista de itens (CATMAT/CATSER). Endpoint `POST /api/comprasnet/compras/impedimentos`. Retorna fornecedores impedidos de participar de contratações dos itens informados (sanções aplicadas no SICAF). Essencial antes de homologar pregões eletrônicos. Cache 1h.
| Name | Type | Req | Description |
|---|---|---|---|
| codigos_catmat | – | – | Lista de códigos CATMAT (materiais) a verificar. Use junto com codigos_catser ou separadamente. |
| codigos_catser | – | – | Lista de códigos CATSER (serviços). |
Structured output declared, but exposes no named fields.
No examples provided.
compras_fornecedor_listar ~233
Lista fornecedores no Compras.gov.br com filtros estruturais. Endpoint Dados Abertos `/modulo-fornecedor/1_consultarFornecedor`. Use para mapear fornecedores potenciais por porte/CNAE — ex.: levantar todas as MEs com CNAE de TI. Cache 1h.
| Name | Type | Req | Description |
|---|---|---|---|
| ativo | boolean | – | True (default) para listar apenas ativos, False para apenas inativos. |
| cnpj | – | – | Filtrar por CNPJ (14 dígitos). |
| codigo_cnae | – | – | Código CNAE para filtrar por atividade. |
| cpf | – | – | Filtrar por CPF (11 dígitos). |
| natureza_juridica | – | – | Código da natureza jurídica. |
| pagina | integer | – | Página de resultados (1-based). Padrão 1. |
| porte_empresa | – | – | Código de porte da empresa (1=ME, 2=EPP, 3=Demais). Consulte os códigos no manual do Compras.gov.br. |
| tamanho_pagina | integer | – | Quantidade de registros por página. Padrão 50, máximo 500. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_healthcheck ~581
Diz, em ~30 segundos, o que está de pé neste servidor **agora**. Estende `compras_versao`: além de versão e configuração, dispara um probe paralelo (timeout curto) contra as rotas upstream reais e devolve a situação por módulo funcional. Por que existe: em 04/08/2026 a tool de pesquisa de preço de material estava quebrada havia semanas e ninguém sabia — a SEGES trocou a assinatura da rota sem versionar. A descoberta veio de um analista tentando usar a ferramenta. Antes de uma demonstração ou de instruir processo, rode isto: o objetivo é que a descoberta aconteça aqui, não no palco. Args: profundidade: `basico` responde só versão/config (instantâneo); `rotas` (padrão) executa o probe upstream. modulo: restringe o probe a um módulo (ex.: `pesquisa_preco`, `atas`, `pncp`). Sem isso, testa todos. Situação por módulo: - `ok`: todas as rotas responderam com os campos esperados. - `degradado`: alguma rota caiu, ou respondeu 200 **sem** os campos do contrato (ex.: rota de preço sem `precoUnitario`) — o modo de falha silencioso que só o contrato de campos pega. - `fora`: todas as rotas testáveis do módulo falharam. - `pulado`: faltou credencial (ex.: TRANSPARENCIA_API_KEY). Rota que estoura o relógio é reexecutada em série antes de virar `fora`: com dezenas de rotas em paralelo, uma rota apenas lenta seria reportada como quebrada. Quando passa na segunda tentativa, o campo `problemas` do módulo registra "lenta sob carga" em vez de escondê-lo. O campo `pronto_para_uso` é o resumo honesto: `False` quando existe qualquer módulo fora ou degradado.
| Name | Type | Req | Description |
|---|---|---|---|
| modulo | – | – | Restringe o probe a um módulo funcional: 'pesquisa_preco', 'catalogo', 'organizacoes', 'atas', 'contratacoes', 'contratos', 'fornecedores', 'indicadores', 'legado', 'planejamento', 'pncp', 'sancoes',… |
| profundidade | string | – | 'rotas' (padrão) testa as rotas upstream reais em paralelo e devolve situação por módulo (ok/degradado/fora) em ~30s. 'basico' devolve só versão e configuração, sem tocar a rede. |
Structured output declared, but exposes no named fields.
No examples provided.
compras_indicadores_consolidados ~150
Métricas operacionais consolidadas da API Dados Abertos. Endpoint `/modulo-indicadores/1_consultarIndicadoresConsolidados`. Retorna: total de serviços disponíveis, total de requisições no período, percentual de sucesso, latência média (ms), volume total e médio de download (GB). Útil para diagnóstico/observabilidade, **não** para indicadores de mercado público (ver docstring do módulo). Cache 1h.
| Name | Type | Req | Description |
|---|---|---|---|
| pagina | integer | – | Página (1-based). Padrão 1. |
| tamanho_pagina | integer | – | Registros por página (default 50, máximo 500). |
Structured output declared, but exposes no named fields.
No examples provided.
How do I install the MCP Compras.gov.br server?
MCP Compras.gov.br is a hosted endpoint at https://mcp-compras.up.railway.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp-compras.up.railway.app
claude mcp add --transport http opedrosoares-mcp-compras 'https://mcp-compras.up.railway.app/mcp'
What is the MCP Compras.gov.br server?
MCP Compras.gov.br is listed in the public MCP registry as io.github.opedrosoares/mcp-compras. Preços, atas, contratos e sanções das APIs públicas de compras do governo brasileiro. This page covers its hosted endpoint (https://mcp-compras.up.railway.app/mcp).
Is the MCP Compras.gov.br server safe to use?
MCP Compras.gov.br scores 23 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the MCP Compras.gov.br server expose?
MCP Compras.gov.br exposes 100 tools: compras_aggregate_contratacoes_por_periodo, compras_comparar_periodos_contratacoes, compras_arp_listar, compras_arp_consultar, compras_arp_por_fim_vigencia, and 95 more. Their descriptions and schemas cost roughly 23,943 tokens of context every time the server is loaded.
Does the MCP Compras.gov.br server require authentication?
Its publisher declares no required credentials for MCP Compras.gov.br. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.
Is the MCP Compras.gov.br server still maintained?
MCP Compras.gov.br is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the MCP Compras.gov.br server?
VerifyMCP ran 3 checks on MCP Compras.gov.br, covering HTTPS, DNSSEC and Transport. 8 items could not be completed, a gap on our side rather than a finding about MCP Compras.gov.br: TLS certificate, Authorization, HSTS header, Schema quality and 4 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.