MCP Compras.gov.br
Integrates public APIs from the Brazilian Compras.gov.br procurement ecosystem to support price research, supplier sanctions, contract analysis, and procurement planning.
README
MCP Compras.gov.br
Servidor MCP que reúne em um único pacote as APIs públicas do ecossistema Compras.gov.br, voltado a analistas e técnicos das áreas de planejamento de contratação e execução contratual.
Apoia a elaboração de:
- Estudos Técnicos Preliminares (ETP)
- Termos de Referência (TR)
- Pesquisa de preços no padrão IN SEGES/ME 65/2021
- Checagem de sanções de fornecedores (CEIS, CNEP, CEAF)
- Análise de atas de registro de preço (ARP) para adesão (carona)
- Benchmark inter-órgãos via Portal Nacional de Contratações Públicas (PNCP)
APIs cobertas (v1)
| API | URL base | Autenticação |
|---|---|---|
| Dados Abertos Compras | dadosabertos.compras.gov.br |
pública |
| PNCP — Portal Nacional | pncp.gov.br/api/consulta |
pública |
| Portal da Transparência (CGU) | api.portaldatransparencia.gov.br |
chave gratuita |
| Comprasnet Contratos | contratos.comprasnet.gov.br/api |
pública (rotas /api/*) |
⚠️ Aviso operacional
- Família
/modulo-uasg/*morta no upstream Dados Abertos: confirmado via probe direto em 2026-05 —1_consultarUasg,2_consultarOrgaoe variantes CSV retornam HTTP 404 ("Resource not found") apesar de listadas no swagger oficial. Bug do servidor SEGES sem fix possível pelo MCP. As 5 tools afetadas (compras_uasg_listar/_consultar/_buscar+compras_orgao_listar/_consultar) detectam o 404 e retornam payload educativo com alternativas:compras_pncp_orgao_unidades(cnpj)para resolver unidades por CNPJ (estável, pode levar 10-30s), oucompras_contrato_comprasnet_por_uasg(uasg)para listar UGs com contratos vigentes. - Filtro UASG em
/modulo-legado/*: pregões e licitações têm bug Hibernate confirmado no upstream — o swagger documentaco_uasg/uasgmas o atributo não existe no modelo da view. Os parâmetros foram removidos das toolscompras_legado_pregoes_listarecompras_legado_licitacoes_listar; para filtrar por UASG, faça client-side no retorno. - Portal da Transparência (CGU): o servidor da CGU está protegido por
AWS WAF "Human Verification" que pode bloquear chamadas API mesmo com
chave válida (HTTP 405 + página HTML). Quando isso ocorre, todas as
tools
compras_sancao_*+ a compostacompras_checar_sancoes_fornecedor- as ramificações de sanção em
compras_perfil_fornecedor_completoretornarão erro. É um problema upstream — não há fix do lado do MCP.
- as ramificações de sanção em
- Comprasnet
/api/contrato/ug/{uasg}: o endpoint não suporta paginação e devolve a lista completa em uma resposta única (pode passar de 1 MB). A toolcompras_contrato_comprasnet_por_uasgaplica fatiamento client-side com cache do payload completo para evitar inundar o LLM. - CATMAT busca textual quebrada: o filtro
descricao(e variantesnome,termo,q) do/modulo-material/4_consultarItemMaterialretorna o universo CATMAT inteiro (~340k itens). Use filtros estruturais viacompras_catmat_listar_grupos→_listar_classes→_buscarcomcodigo_grupo/codigo_classe. A tool emite_aviso_filtroquando detecta o universo inteiro.
Instalação
Desktop Extension (.mcpb) — recomendado para Claude Desktop
python build_mcpb.py # gera dist/compras.mcpb
open dist/compras.mcpb # Claude Desktop instala
Local (desenvolvimento)
uv sync
uv run compras-mcp
Remoto (Railway via Docker)
railway login && railway link
railway add redis # cache compartilhado
railway variables --set "TRANSPARENCIA_API_KEY=..."
railway up
railway domain # https://mcp-compras.up.railway.app/mcp
Configuração
Cadastro gratuito da chave da Transparência: https://api.portaldatransparencia.gov.br/api-de-dados/cadastrar-email
Veja .env.example para todas as variáveis configuráveis (timeouts, TTLs de cache, base URLs).
Tools (85 no total)
Agrupadas por domínio funcional:
| Domínio | Tools | Cobertura |
|---|---|---|
| Compostas (agente) | 5 | pesquisar_precos_para_etp (IN SEGES 65/2021 com IQR), checar_sancoes_fornecedor, montar_dossie_arp, buscar_contratacoes_similares, perfil_fornecedor_completo |
| Catálogo (CATMAT/CATSER) | 7 | Grupos/classes/itens, busca textual |
| Pesquisa de preço | 4 | Material/serviço, detalhe por compra |
| Planejamento (PGC + PCA) | 8 | PGC SISG, PCA PNCP (federal + estados + municípios) |
| Atas de Registro de Preço | 8 | Listar, saldo, adesões, unidades participantes, PNCP |
| Contratações (14.133 + legado) | 12 | Lei 14.133, Lei 8.666, RDC, dispensas |
| Contratos | 12 | Dados Abertos + Comprasnet (garantias, faturas, ocorrências, fiscais, empenhos, cronograma) |
| Fornecedores | 4 | Cadastro, impedimentos, contratos por item |
| Sanções (Transparência/CGU) | 5 | CEIS, CNEP, CEAF, CEPIM, acordos de leniência |
| PNCP | 9 | Contratações (publicação, proposta, atualização), contratos, modalidades |
| Organizações | 6 | UASG (listar/consultar/buscar), órgãos, unidades PNCP |
| Indicadores | 2 | Consolidados, por período |
| Diagnóstico | 1 | compras_versao |
A lista completa está em manifest.json ou via tools/list no MCP Inspector.
Fluxos típicos
ETP de aquisição de cadeiras ergonômicas:
compras_catmat_buscarcomtermo="cadeira ergonomica"→ obtercodigo_item_catalogocompras_pesquisar_precos_para_etp(composta) comtipo="material"→ mediana/média/desvio + descarte IQRcompras_pgc_por_catalogopara ver o que outros órgãos planejaram comprarcompras_arp_listarcomapenas_vigentes=True→ atas vigentes para possível adesão
Análise de fornecedor antes de homologação:
compras_perfil_fornecedor_completo(composta) com o CNPJ — uma chamada devolve cadastro + sanções + contratos vigentes
Inventário de contratos a renovar:
compras_contratos_listar_por_fim_vigenciacomdata_fim_vigenciapróxima- Para cada contrato relevante:
compras_contrato_historico_aditivos,compras_contrato_ocorrencias
Padrões internos
- Envelope padrão das tools
listar_*:{resultado, _pagina_atual, _total_paginas, _total_registros, _proxima_pagina, _cache_hit, _latency_ms}. - SSoT de descriptions: descrições de parâmetros vivem em
src/compras_mcp/schemas.py; tools leem via_helpers.desc(Model, "campo"). Teste emtests/test_server.pydetecta drift. - LGPD: CPFs mascarados como
123.***.***-45; ajuste comINCLUIR_CPF_COMPLETO=true. Tools afetadas incluem_aviso_lgpdno payload. - Cache: TTL+LRU em memória (default) ou Redis quando
REDIS_URLsetada. Cada domínio tem seu prefixo (CATALOGO, PRECOS, ATAS, etc.) — ajustáveis viaCACHE_<PREFIX>_TTLeCACHE_<PREFIX>_MAX_SIZE. - Datas: 3 formatos por API (
YYYY-MM-DD,yyyyMMdd,YYYY-MM-DD HH:mm:ss) convertidos transparentemente porformat_date(value, flavor). - Framework: FastMCP 2.x. Transporte detectado por
PORT— presente → HTTP em0.0.0.0:$PORT, ausente → stdio.
Status
v0.2.0 — 85 tools registradas e prontas para teste end-to-end com o Claude Desktop e Railway.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。