PNCP — REST API skill

Skill da REST API do PNCP na MCP.AI: 13 endpoints em /api/pncp. Consulta de licitações e contratações públicas no Brasil (PNCP): busca de editais e pregões por palavra-chave, estado e modalidade, oportunidades com filtro de faixa de valor, detalhe da contratação com itens e preços, documentos do edital (link do PDF e texto), contratos, atas de registro de preços e planejamento anual. Hospedado pela plataforma, sem credenciais. Autentique com workspace API key (sk_live) gerada em app.mcp.ai/settings/api-keys. Use quando o usuário pedir algo coberto pelos endpoints.

PNCP — REST API skill

Você tem acesso à PNCP REST API na MCP.AI.

Consulta de licitações e contratações públicas no Brasil (PNCP): busca de editais e pregões por palavra-chave, estado e modalidade, oportunidades com filtro de faixa de valor, detalhe da contratação com itens e preços, documentos do edital (link do PDF e texto), contratos, atas de registro de preços e planejamento anual. Hospedado pela plataforma, sem credenciais.

Base URL

https://api.mcp.ai/api/pncp

Todo endpoint é um POST na Base URL + o path abaixo. Os parâmetros vão no corpo JSON.

Autenticação

Inclua em toda request:

Authorization: Bearer sk_live_...
Content-Type: application/json

Gere sua chave em https://app.mcp.ai/settings/api-keys (workspace API key sk_live_…, não expira, revogável). Uma única chave serve pra todos os seus MCPs.

Formato de resposta

{ "ok": true, "tool": "<tool_id>", "result": <payload> }

Exemplo cURL

curl -X POST https://api.mcp.ai/api/pncp/arquivos \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"cnpj":"...","ano":"...","sequencial":"..."}'

Reportar problemas

Se um endpoint retornar erro, vazio ou dado inesperado, reporte (não desista calado): POST /api/pncp/report com { "message": "...", "context"?: "...", "conversation"?: [...] }. Isso notifica o time da MCP.AI.

Endpoints (13)

pncp_arquivos

Documentos de uma licitação/edital (edital, termo de referência, anexos) com o LINK de download de cada arquivo (em geral PDF). (POST /api/pncp/arquivos)

ParâmetroTipoObrigatórioDescrição
cnpjstringSimCNPJ do órgão (com ou sem máscara).
anostringSimAno da contratação (ex.: 2026).
sequencialstringSimNúmero sequencial da contratação no órgão.
pncp_atas

Lista atas de registro de preços vigentes num período (referência de preços praticados pelo governo), opcionalmente por órgão (CNPJ). (POST /api/pncp/atas)

ParâmetroTipoObrigatórioDescrição
data_inicialstringSimData inicial (AAAA-MM-DD).
data_finalstringSimData final (AAAA-MM-DD).
cnpjstringNãoCNPJ do órgão. Opcional.
paginaintegerNãoPágina (default 1).
tamanho_paginaintegerNãoItens por página (default 20, máx 50).
pncp_buscar

Busca licitações por PALAVRA-CHAVE no objeto (cobertura NACIONAL ampla, índice full-text), em editais, atas ou contratos. (POST /api/pncp/buscar)

ParâmetroTipoObrigatórioDescrição
termostringNãoPalavra-chave do objeto (ex.: 'material de informática', 'merenda escolar'). Use isto OU termos[].
termosstring[]NãoVÁRIAS palavras-chave: cada uma vira uma busca full-text independente, disparadas com um pequeno intervalo entre si (evita rate limit da fonte) e os resultados são fundidos e deduplicados. Ex.: ['notebook','ultrabook','laptop']. Prefira isto a repetir a tool termo a termo.
tipostringNãoTipo de documento a buscar. Default edital. (edital, ata, contrato)
ordenacaostringNãoOrdenação (ex.: '-data' mais recentes primeiro, 'data' mais antigos). Default '-data'.
statusstringNãoFiltro de situação (ex.: 'todos', 'recebendo_proposta', 'encerradas'). Default 'todos'.
paginaintegerNãoPágina (default 1).
tam_paginaintegerNãoItens por página (default 20, máx 50).
pncp_contratos

Lista contratos públicos firmados num período, opcionalmente filtrando por órgão (CNPJ). (POST /api/pncp/contratos)

ParâmetroTipoObrigatórioDescrição
data_inicialstringSimData inicial (AAAA-MM-DD).
data_finalstringSimData final (AAAA-MM-DD).
cnpj_orgaostringNãoCNPJ do órgão. Opcional.
paginaintegerNãoPágina (default 1).
tamanho_paginaintegerNãoItens por página (default 20, máx 50).
pncp_detalhe

Detalhe completo de uma licitação/contratação a partir de cnpj+ano+sequencial (a referência devolvida pela pncp_buscar). (POST /api/pncp/detalhe)

ParâmetroTipoObrigatórioDescrição
cnpjstringSimCNPJ do órgão (com ou sem máscara).
anostringSimAno da contratação (ex.: 2026).
sequencialstringSimNúmero sequencial da contratação no órgão.
itensbooleanNãoSe true, também traz os itens com preços. Default false.
resultadobooleanNãoSe true, anexa o bloco resultado com o(s) vencedor(es) homologado(s) (CNPJ, valor real, natureza jurídica, porte). Default false. Ou use pncp_resultado direto.
pncp_historico

Arquivo histórico de licitações: consulta editais que a plataforma acumulou ao longo do tempo (inclusive os que já encerraram ou saíram do ar), por PALAVRA-CHAVE no objeto, estado (UF), modalidade, si (POST /api/pncp/historico)

ParâmetroTipoObrigatórioDescrição
termostringNãoPalavra-chave no objeto (ex.: 'software'). Opcional.
ufstringNãoSigla do estado (ex.: SP). Opcional.
modalidadestringNãoModalidade (ex.: 'Pregão'). Opcional.
situacaostringNãoSituação (ex.: 'Divulgada'). Opcional.
valor_minnumberNãoValor estimado MÍNIMO em R$ (opcional).
valor_maxnumberNãoValor estimado MÁXIMO em R$ (opcional).
desdestringNãoPublicação a partir de (AAAA-MM-DD). Opcional.
atestringNãoPublicação até (AAAA-MM-DD). Opcional.
paginaintegerNãoPágina (default 1).
tam_paginaintegerNãoItens por página (default 20, máx 100).
pncp_listar

Busca PRINCIPAL de licitações abertas por palavra-chave, faixa de VALOR, estado, modalidade e período. (POST /api/pncp/listar)

ParâmetroTipoObrigatórioDescrição
termosstring[]NãoPalavras-chave/frases no objeto (casa QUALQUER uma = OR). SEMPRE expanda o conceito em VÁRIOS sinônimos, NUNCA um termo só. Ex.: pra 'software' use ['software','saas','licença de uso','licenciamento de software','sistema de informação','aplicativo','software como serviço']. PREFIRA termos específicos/frases curtas pra não casar boilerplate (evite 'sistema' sozinho).
data_inicialstringNãoData inicial (AAAA-MM-DD). Opcional (default: 7 dias atrás).
data_finalstringNãoData final (AAAA-MM-DD). Opcional (default: hoje).
modalidadeintegerNãoCódigo da modalidade (ex.: 6 = Pregão Eletrônico). Opcional: omita pra varrer as comuns.
apenas_abertasbooleanNãoSe true, só licitações ainda recebendo proposta (abertas pra participar).
ufstringNãoSigla do estado (ex.: SP, MG).
municipiostringNãoCódigo IBGE do município (7 dígitos). Opcional.
cnpjstringNãoCNPJ do órgão.
valor_minnumberNãoValor estimado MÍNIMO em R$.
valor_maxnumberNãoValor estimado MÁXIMO em R$.
ordenacaostringNãoOrdenar por: data (recentes 1º) ou prazo (fecha 1º). Por padrão já vem ranqueado por VALOR (maior 1º) quando incluir_valor está ligado. (data, valor, prazo)
tamanho_paginaintegerNãoQuantos retornar (default 20, máx 50).
paginaintegerNãoPágina (1-based, 20 por página). Default 1. A resposta traz total_paginas; chame de novo com pagina=2, 3... pra pegar mais.
incluir_valorbooleanNãoEnriquecer cada item com o VALOR estimado e ranquear por valor (default TRUE). Passe false pra uma lista mais rápida/barata sem valor.
expandirbooleanNãoExpandir os termos em sinônimos automaticamente (default TRUE). Passe false pra buscar só os termos exatos que você mandou.
pncp_oportunidades

Busca de OPORTUNIDADES de licitação (editais/pregões) com filtros ricos por palavra-chave, FAIXA DE VALOR da compra, UFs, modalidades, portais, registro de preço, participação exclusiva ME/EPP e super (POST /api/pncp/oportunidades)

ParâmetroTipoObrigatórioDescrição
termosstring[]NãoPalavras-chave/frases no objeto (casa QUALQUER uma = OR). SEMPRE expanda em VÁRIOS sinônimos, NUNCA um só. Ex.: pra 'software' use ['software','saas','licença de uso','licenciamento de software','sistema de informação','software como serviço']. Mesmo formato de pncp_listar.
termostringNãoAlternativa a termos: palavra(s)-chave numa string só (separe várias por ';'). Opcional.
excluirstringNãoPalavras-chave a EXCLUIR do resultado. Opcional.
data_inicialstringNãoData inicial do período (AAAA-MM-DD). Opcional.
data_finalstringNãoData final do período (AAAA-MM-DD). Opcional.
tipo_periodostringNãoA qual data o período se refere. Default 'abertura'. (abertura, publicacao, encerramento)
valor_minnumberNãoValor MÍNIMO estimado da compra em R$ (0 = sem mínimo).
valor_maxnumberNãoValor MÁXIMO estimado da compra em R$ (0 = sem máximo).
ufsstring[]NãoEstados (siglas, ex.: ['SP','MG']). Vazio = todos.
modalidadesinteger[]NãoCódigos de modalidade (ex.: 6 = Pregão Eletrônico). Vazio = todas.
portaisstring[]NãoFiltra por portais específicos. Opcional.
superoportunidadesbooleanNãoSe true, só as marcadas como superoportunidade.
participacao_exclusivabooleanNãoSe true, só licitações exclusivas para ME/EPP.
excluir_registro_precobooleanNãoSe true, exclui licitações de registro de preço.
somente_sigilososbooleanNãoSe true, só com valores sigilosos.
itens_desertosbooleanNãoSe true, inclui itens desertos.
tipo_itemstringNãoFiltra por tipo de item. Opcional. (, MATERIAL, SERVICO)
pesquisa_amplabooleanNãoBusca ampla no objeto (default true).
expandirbooleanNãoExpandir os termos em sinônimos automaticamente (default TRUE). false = só os termos exatos.
paginaintegerNãoPágina (1-based, 20 por página). Default 1.
pncp_orgaos

Busca de ÓRGÃOS/entidades compradoras por nome, UF e/ou portal. (POST /api/pncp/orgaos)

ParâmetroTipoObrigatórioDescrição
termostringNãoNome (parte) do órgão. Termo amplo demais falha, refine. Use isto OU termos[].
termosstring[]NãoVários nomes de órgão: cada um vira uma busca independente, disparadas com um intervalo entre si (evita rate limit da fonte), resultados fundidos e deduplicados. Opcional.
ufstringNãoSigla do estado (ex.: SP). Opcional.
portaisstring[]NãoPortais (ex.: ['CN']). Opcional.
antecipagovbooleanNãoSe true, consulta a base do AntecipaGov (hierarquia órgão superior).
paginaintegerNãoPágina (1-based). Default 1.
pncp_pca

Plano anual de contratações (PCA) por ano e classificação superior do catálogo: o que os órgãos planejam contratar no ano. (POST /api/pncp/pca)

ParâmetroTipoObrigatórioDescrição
ano_pcaintegerSimAno do PCA (ex.: 2026).
codigo_classificacao_superiorintegerSimCódigo da classificação superior do item no catálogo.
paginaintegerNãoPágina (default 1).
tamanho_paginaintegerNãoItens por página (default 20, máx 50).
pncp_processo

Detalhe de oportunidade(s) por id (de pncp_listar/pncp_oportunidades). (POST /api/pncp/processo)

ParâmetroTipoObrigatórioDescrição
idstringNãoid de UMA oportunidade → detalhe completo com itens. Use id OU ids.
idsstring[]NãoLOTE: vários id (de pncp_listar/pncp_oportunidades). Detalha todos numa chamada e devolve RANKING por valor (maior 1º). Ideal pra 'ranquear por valor'. Máx 50.
pncp_resultado

Quem GANHOU a licitação: o(s) fornecedor(es) vencedor(es) homologado(s) a partir de cnpj+ano+sequencial (a referência da pncp_buscar). (POST /api/pncp/resultado)

ParâmetroTipoObrigatórioDescrição
cnpjstringSimCNPJ do órgão (com ou sem máscara).
anostringSimAno da contratação (ex.: 2026).
sequencialstringSimNúmero sequencial da contratação no órgão.
numero_itemintegerNãoNúmero de um item específico. Omita pra agregar todos os itens da compra.
pncp_texto

Texto INTEIRO do edital em markdown (com marcadores '## Página N'), pra você RESUMIR ou ler o documento todo. (POST /api/pncp/texto)

ParâmetroTipoObrigatórioDescrição
cnpjstringSimCNPJ do órgão (com ou sem máscara).
anostringSimAno da contratação (ex.: 2026).
sequencialstringSimNúmero sequencial da contratação no órgão.
documentostringNãoSequencial de um anexo específico. Default: o edital principal.
de_paginaintegerNãoPágina inicial (pra editais grandes). Opcional.
ate_paginaintegerNãoPágina final. Opcional.

Este MCP também funciona via conexão MCP (Claude / Cursor) em https://api.mcp.ai/p_pncp — veja o README. A skill acima é pra consumir a REST API direto (agente próprio / código).

Last updated: October 13, 2026

Files (2)

Jurisdiction
🇧🇷 Brasil
Browse legal databases
Practice area
Government contracts
License
MIT
Author
mcp-dir
Source
br/government-contracts/skills/pncp-mcp-mcp-dir

Test PNCP — REST API skill

Ask a legal question — get an answer generated live from this skill’s instructions.

Sign in to test this skill.