mcp-brasil
Integrates with the Brazilian PIX system to access data related to instant payments, bank information, and the tracking of parliamentary amendments (emendas PIX).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-brasilQuais projetos de lei sobre inteligência artificial tramitaram na Câmara em 2024?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-brasil
MCP Server para 70 fontes de dados públicas brasileiras
533 tools · 131 resources · 102 prompts · 70 features · 15 áreas temáticas
Conecte AI agents (Claude, GPT, Copilot, etc.) a dados governamentais do Brasil — economia, legislação, transparência, judiciário, eleições, meio ambiente, saúde, educação, segurança pública, fiscal subnacional, aviação e mais.
66 APIs não requerem chave · 4 usam chaves gratuitas (cadastro em 1 min)
Quick Start · Fontes de dados · Documentação · Desenvolvimento
⚠️ Projeto independente.
mcp-brasilNÃO é serviço oficial do governo brasileiro nem de qualquer das instituições cujos dados ele torna acessíveis. A licença MIT cobre apenas o código — cada fonte de dado tem sua própria licença (SOURCES.md) e o uso do servidor está sujeito à Política de Uso Aceitável. Antes de uso comercial, jornalístico ou decisório, leia ambos.
Features
533 tools em 70 features cobrindo 15 áreas — economia, legislativo, transparência, judiciário, eleitoral, ambiental, saúde, educação, segurança pública, compras públicas, fiscal subnacional, aviação, energia e mais
Datasets grandes com cache local — SIAPA (~813k imóveis), TSE 2014-2024 (candidatos, bens, votação, redes sociais, FEFC), ANP preços de combustíveis, INEP Censo Escolar e ENEM, ISP-RJ segurança pública, ANAC aeronaves e voos regulares — SQL via DuckDB embedded, opt-in via env
Cross-referencing com
planejar_consulta— cria planos de execução combinando múltiplas APIs (ex: gastos de um deputado + votações + proposições)Execução em lote com
executar_lote— dispara consultas em paralelo numa única chamadaSmart discovery — BM25 search transform filtra 533 tools para só mostrar as relevantes ao contexto
Auto-registry — adicionar uma feature é criar uma pasta; zero configuração manual
Async everywhere — httpx async + Pydantic v2 + rate limiting com backoff
Related MCP server: mcp-brasil
Quick Start
Instalar
pip install mcp-brasiluv add mcp-brasilClaude Desktop
Adicione ao claude_desktop_config.json:
{
"mcpServers": {
"mcp-brasil": {
"command": "uvx",
"args": ["--from", "mcp-brasil", "python", "-m", "mcp_brasil.server"],
"env": {
"TRANSPARENCIA_API_KEY": "sua-chave-aqui",
"DATAJUD_API_KEY": "sua-chave-aqui",
"META_ACCESS_TOKEN": "seu-token-aqui"
}
}
}
}As chaves são opcionais — sem elas, as 36 APIs restantes funcionam normalmente.
VS Code / Cursor
Crie .vscode/mcp.json na raiz do projeto:
{
"servers": {
"mcp-brasil": {
"command": "uvx",
"args": ["--from", "mcp-brasil", "python", "-m", "mcp_brasil.server"],
"env": {
"TRANSPARENCIA_API_KEY": "sua-chave-aqui",
"DATAJUD_API_KEY": "sua-chave-aqui",
"META_ACCESS_TOKEN": "seu-token-aqui"
}
}
}
}Claude Code
claude mcp add mcp-brasil -- uvx --from mcp-brasil python -m mcp_brasil.serverHTTP (outros clientes)
fastmcp run mcp_brasil.server:mcp --transport http --port 8000
# Server disponível em http://localhost:8000/mcpExemplos
Conecte o server e faça perguntas em linguagem natural:
Legislativo: "Quais projetos de lei sobre inteligência artificial tramitaram na Câmara em 2024? Quem foram os autores?"
Econômico: "Qual a tendência da taxa Selic nos últimos 12 meses? Compare com a inflação (IPCA) no mesmo período."
Transparência: "Quais os 10 maiores contratos do governo federal em 2024? Quem são os fornecedores?"
Cross-reference: "Compare os gastos per capita com saúde em São Paulo e Minas Gerais cruzando dados do TCE-SP e IBGE."
Judiciário: "Busque processos sobre licitação irregular no TCU. Quais foram as penalidades aplicadas?"
Eleitoral: "Quais os maiores doadores da campanha do candidato X? Qual o total arrecadado?"
Fontes de dados
Economia e Finanças
Feature | Fonte | Tools |
| Banco Central — Selic, IPCA, câmbio, PIB e +190 séries temporais (SGS) | 9 |
| Banco Central — PTAX (câmbio oficial), Expectativas Focus, taxas de juros bancárias | 8 |
| BNDES — operações de financiamento, desembolsos, instituições credenciadas | 4 |
| IPEADATA/Ipea — séries macro, regionais e sociais históricas (OData) | 5 |
Geografia e Estatística
Feature | Fonte | Tools |
| IBGE — estados, municípios, nomes, agregados estatísticos | 9 |
Legislativo e Executivo
Feature | Fonte | Tools |
| Câmara dos Deputados — deputados, proposições, votações, despesas | 11 |
| Senado Federal — senadores, matérias, votações, comissões | 26 |
| Governadores de todos os estados em exercício (nome, partido, mandato) | 4 |
Transparência e Fiscalização
Feature | Fonte | Tools |
| Portal da Transparência — contratos, despesas, servidores, sanções, imóveis funcionais, renúncias fiscais, órgãos, COVID-19 | 54 |
| Tribunal de Contas da União — acórdãos, inidôneos, débitos, pautas | 9 |
| TCE-SP — despesas e receitas de 645 municípios paulistas | 3 |
| TCE-RJ — licitações, contratos, obras, penalidades, concessões | 7 |
| TCE-RS — educação, saúde, gestão fiscal (LRF) | 5 |
| TCE-PE — licitações, contratos, despesas, fornecedores | 5 |
| TCE-CE — licitações, contratos, empenhos | 4 |
| TCE-ES — licitações, contratos, obras públicas | 4 |
| TCE-RN — jurisdicionados, licitações, contratos | 5 |
| TCE-PI — prefeituras, despesas, receitas | 5 |
| TCE-SC — municípios e unidades gestoras | 2 |
| TCE-TO — processos, pautas de sessões | 3 |
| TCE-PA — Diário Oficial, sessões plenárias, jurisprudência (acórdãos, resoluções, portarias, prejulgados) e conteúdo informativo | 4 |
| SPU GeoPortal — terrenos de marinha, acrescidos, marginais, ilhas federais, praias, manguezais e localização de imóveis da União | 4 |
| Imóveis da União (Raio-X APF / Gov360) — busca por órgão, UF, município, regime e agregações institucionais | 4 |
| SICONFI/Tesouro Nacional — RREO, RGF, DCA e MSC de municípios/estados (LRF, LC 101) | 7 |
| MJSP (CKAN) — SINESP, INFOPEN, PROCONs/Sindec, armas, sistema prisional | 4 |
Judiciário
Feature | Fonte | Tools |
| DataJud/CNJ — processos judiciais, movimentações | 7 |
| STF, STJ e TST — acórdãos, súmulas, decisões | 6 |
Eleitoral
Feature | Fonte | Tools |
| TSE — eleições, candidatos, prestação de contas | 15 |
| Biblioteca de Anúncios da Meta — propaganda eleitoral na internet | 6 |
Meio Ambiente
Feature | Fonte | Tools |
| INPE — focos de queimadas, desmatamento DETER/PRODES | 4 |
| ANA — estações hidrológicas, telemetria, reservatórios | 3 |
| IBAMA (CKAN) — autos de infração, CTF/APP, TCFA, biomas | 4 |
Energia e Infraestrutura
Feature | Fonte | Tools |
| ANEEL (CKAN) — SIGA, geração distribuída, tarifas, bandeiras | 4 |
| ANTT (CKAN) — rodovias concedidas, acidentes, cargas, passageiros | 4 |
Aviação
Feature | Fonte | Tools |
| OpenSky Network — voos ao vivo via ADS-B (rastreamento, tracks) | 6 |
Saúde
Feature | Fonte | Tools |
| CNES/DataSUS — estabelecimentos, profissionais, leitos | 10 |
| OpenDataSUS — datasets de saúde pública (CKAN) | 7 |
| ANVISA — bulário, medicamentos, preços CMED, registros | 10 |
| DENASUS — auditorias do SUS | 5 |
| SI-PNI — vacinação, calendário, cobertura vacinal, SRAG | 10 |
| BPS — preços de medicamentos e dispositivos médicos no SUS | 3 |
| Farmácia Popular — medicamentos gratuitos, farmácias credenciadas | 8 |
| RENAME — medicamentos essenciais do SUS por princípio ativo | 5 |
Segurança Pública
Feature | Fonte | Tools |
| Atlas da Violência (IPEA/FBSP) — homicídios, violência por gênero/raça, armas de fogo | 7 |
| SINESP/MJSP — datasets de segurança pública, sistema penitenciário | 6 |
| Fórum Brasileiro de Segurança Pública — publicações, Anuário | 4 |
Educação
Feature | Fonte | Tools |
| INEP — índices educacionais (IDEB, indicadores) e pesquisas | 4 |
| FNDE — repasses, merenda escolar, PNATE, transporte | 4 |
Compras Públicas
Feature | Fonte | Tools |
| PNCP + ComprasNet/SIASG — licitações, contratos, pregões, CATMAT | 29 |
| TransfereGov — emendas parlamentares PIX | 5 |
Mercado Financeiro e Notícias
Feature | Fonte | Tools |
| Bolsa B3 (brapi.dev) — cotações ações/FIIs/BDRs, históricos, índices | 6 |
| RSS agregado — Câmara, Senado, Agência Brasil, BCB | 4 |
Dados Abertos e Utilidades
Feature | Fonte | Tools |
| BrasilAPI — CEP, CNPJ, DDD, bancos, câmbio, FIPE, PIX | 16 |
| Dados Abertos (dados.gov.br) — catálogo de datasets federais | 4 |
| Querido Diário + DOU — diários oficiais de 5.000+ cidades e da União | 11 |
| Tábua de Marés — previsão de marés para portos do litoral | 7 |
Datasets locais (opt-in via env)
Features que baixam CSVs/ZIPs grandes (~100MB–1,6GB) para DuckDB embedded local
e expõem SQL via tools canned. Ativadas apenas quando listadas em MCP_BRASIL_DATASETS.
Primeira carga: minutos (download + ingest); subsequentes: ms.
Feature | Fonte | Período | Tools |
| SPU — imóveis da União (SIAPA completo, 813k imóveis com dominiais + uso especial) | 2026 snapshot | 8 |
| TSE — candidatos de todas as eleições (~4M registros) | 2014-2024 | 8 |
| TSE — bens declarados por candidatos, join via | 2014-2024 | 5 |
| TSE — votos por candidato × município × zona | 2014-2024 | 6 |
| TSE — URLs Instagram/Facebook/Twitter dos candidatos | 2018-2024 | 4 |
| TSE — Fundo Eleitoral Especial (distribuição partido × gênero) | 2020, 2024 | 4 |
| ANP — preços semanais de combustíveis (gasolina/etanol, diesel/GNV, GLP) em postos | 2024 integral | 7 |
| INEP — Censo Escolar da Educação Básica (~180k escolas, infraestrutura, matrículas) | 2023 | 7 |
| INEP — Microdados ENEM (~3,9M inscritos, notas, perfil socioeconômico) | 2023 | 6 |
| ISP-RJ — estatísticas criminais mensais por CISP do Rio de Janeiro | 1991-present | 6 |
| ANAC — Registro Aeronáutico Brasileiro (~75k aeronaves civis) | snapshot semanal | 6 |
| ANAC — Voos Regulares Ativos (pontualidade, atrasos, origem/destino) | 2020-present | — |
| CVM — Cadastro de Fundos de Investimento (~40k fundos, PL, taxa adm, gestor) | snapshot diário | 6 |
Ative com:
# .env
MCP_BRASIL_DATASETS=tse_candidatos,tse_bens,tse_votacaoVer guia de Datasets locais para detalhes de uso.
O server raiz também expõe 5 meta-tools:
listar_features,recomendar_tools,planejar_consulta,executar_loteelistar_datasets_disponiveis.
Chaves de API
API | Obrigatória? | Como obter |
Portal da Transparência | Opcional | |
DataJud/CNJ | Opcional | |
Anúncios Eleitorais (Meta) | Opcional | |
brapi.dev (B3) | Opcional | Token gratuito para índices e múltiplas ações |
Todas as outras (62) | Nenhuma chave | — |
Configure via variáveis de ambiente ou .env:
TRANSPARENCIA_API_KEY=sua-chave
DATAJUD_API_KEY=sua-chave
META_ACCESS_TOKEN=seu-tokenConfiguração
Variável | Default | Descrição |
| — | Chave do Portal da Transparência |
| — | Chave do DataJud/CNJ |
| — | Token da Meta Ad Library API |
|
| Modo de discovery: |
|
| Timeout HTTP em segundos |
|
| Máximo de retentativas HTTP |
| — | Lista CSV de datasets locais a ativar. Ex: |
|
| Diretório raiz do cache DuckDB |
|
|
|
|
| Timeout (s) do download de datasets grandes |
| — | Lista CSV de datasets com PII liberada (ex: |
Documentação
Página | Descrição |
Instalação e configuração em 2 minutos | |
Como o projeto funciona por dentro | |
Todas as 69 features e 525 tools | |
SIAPA + TSE 2014-2024 via SQL embedded | |
Meta-tools: planner, batch, discovery | |
Guia para contribuir com novas APIs | |
Variáveis de ambiente e opções | |
Referência da API de anúncios eleitorais da Meta | |
Discovery programático + sandbox Python (experimental) | |
Setup de dev, testes, lint, CI | |
Container Apps + Azure Files + warmup automático dos datasets |
Desenvolvimento
git clone https://github.com/Mcp-Brasil/mcp-brasil.git
cd mcp-brasil
make dev # Instalar dependências (prod + dev)
make test # Rodar todos os testes
make test-feature F=ibge # Testes de uma feature
make lint # Lint + format check
make ruff # Auto-fix lint + format
make types # mypy strict
make ci # lint + types + test
make run # Server stdio
make serve # Server HTTP :8000
make inspect # Listar tools/resources/promptsArquitetura
O projeto usa Package by Feature com Auto-Registry — cada feature é uma pasta auto-contida:
src/mcp_brasil/
├── server.py # Auto-registry (nunca editado manualmente)
├── _shared/ # Utilitários compartilhados
│ └── datasets/ # Infra DuckDB local
├── data/ # 51 features — REST passthrough
│ ├── ibge/
│ │ ├── __init__.py # FEATURE_META
│ │ ├── server.py # FastMCP instance
│ │ ├── tools.py # Lógica das tools
│ │ ├── client.py # HTTP async
│ │ ├── schemas.py # Pydantic models
│ │ └── constants.py # URLs, códigos
│ ├── bacen/
│ └── ...
├── datasets/ # 12 features — cache local DuckDB (opt-in via env)
│ ├── spu_siapa/ # SIAPA 813k imóveis
│ ├── tse_candidatos/ # TSE candidatos 2014-2024
│ └── ...
└── agentes/ # 1 feature — agentes inteligentes
└── redator/Três modalidades de feature coexistem:
data/— REST passthrough: HTTP async → Pydantic → tool formatadadatasets/— DuckDB embedded local: CSVs/ZIPs grandes com SQL, gated porMCP_BRASIL_DATASETS, cache em~/.cache/mcp-brasil/agentes/— Agentes inteligentes: tools + prompts + resources compondo fluxos complexos (ex: redação oficial)
Para adicionar uma nova feature, basta criar o diretório seguindo a convenção — o registry descobre automaticamente.
Contribuindo
Fork o repositório
Crie uma feature em
src/mcp_brasil/data/{feature}/ouagentes/{feature}/Exporte
FEATURE_METAno__init__.pyemcp: FastMCPnoserver.pyAdicione testes em
tests/data/{feature}/Rode
make cie abra um PR
Disclaimer
Este projeto integra um número significativo de APIs governamentais brasileiras, muitas com documentação inconsistente ou incompleta. Embora todo esforço tenha sido feito para garantir precisão, alguns endpoints podem retornar resultados inesperados ou ter cobertura parcial de parâmetros.
Este é um projeto open-source da comunidade — se encontrar algo quebrado ou que possa ser melhorado, abra uma issue ou envie um PR. O objetivo é tornar dados públicos brasileiros acessíveis via IA, juntos.
Todos os dados vêm de APIs oficiais do governo brasileiro — o server não gera, modifica ou editorializa nenhum dado. No entanto, modelos de IA que consomem este servidor podem alucinar, distorcer ou interpretar incorretamente respostas — VERIFIQUE NA FONTE OFICIAL antes de uso jornalístico, judicial, médico ou decisório.
Não-oficialidade
mcp-brasil é projeto independente. NÃO é serviço, programa ou parceria do Governo Federal, Ministérios, Agências, Tribunais ou de qualquer das instituições cujos dados acessa. Tampouco é endossado por Anthropic, OpenAI, GitHub, ou pelos modelos de IA clientes. A palavra "Brasil" no nome refere-se ao objeto (dados públicos brasileiros) e não a vinculação institucional.
Conformidade legal
Antes de operar este servidor — especialmente em cenários comerciais, com volume, em período eleitoral, ou envolvendo dados sensíveis (saúde, judicial, eleitoral) — leia obrigatoriamente:
SOURCES.md — licença e disclaimer de cada uma das 70 fontes
ACCEPTABLE_USE.md — Política de Uso Aceitável (vedações sob LGPD art. 11 §4, Lei 9.504/97, Res. CNJ 446/2022, etc.)
NOTICE — escopo da licença MIT e atribuições
Licença
Código deste repositório: MIT
Dados retornados pelas APIs: licenças variadas — ver SOURCES.md
Uso do servidor: sujeito à Política de Uso Aceitável
Atribuições e disclaimers: NOTICE
Star History
Available Tools
7 toolscall_toolA
Call a tool by name with the given arguments.
Use this to execute tools discovered via search_tools.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the tool to call | |
| arguments | No | Arguments to pass to the tool |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It merely restates the schema without describing side effects, return values, error conditions, or the fact that calling arbitrary tools may have destructive consequences. This is a significant transparency gap.
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?
The description is exactly two sentences, front-loaded with the primary action and followed by a usage hint. Every word earns its place, with no redundancy or fluff.
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?
The tool is simple, but with no output schema and no annotations, the description could have mentioned that the tool returns the called tool's output or that invalid names will error. The core functionality is clear, but some behavioral expectations are missing, so it is minimally viable rather than complete.
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%, with both parameters described. The description adds little beyond the schema, repeating 'by name with the given arguments' without explaining how arguments map to the called tool's parameters. Baseline 3 is appropriate.
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?
The description clearly states the action: 'Call a tool by name with the given arguments,' which specifies the verb and resource. It also differentiates from search_tools by noting the tool is for executing discovered tools, but it does not explicitly distinguish from the sibling executar_lote, so it falls short of a 5.
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?
The description provides clear usage context: 'Use this to execute tools discovered via search_tools.' This tells the agent when the tool is appropriate, but it does not mention exclusions or 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.
executar_loteA
Executa múltiplas tools em uma única chamada, em paralelo.
Use esta tool para evitar chamadas sequenciais quando precisar de dados de várias fontes ou de vários anos/parâmetros ao mesmo tempo.
Cada consulta deve ter o nome completo da tool (com namespace, ex: "camara_buscar_proposicao") e seus argumentos.
Args: consultas: Lista de consultas. Cada item é um objeto com: - "tool": nome completo da tool (ex: "camara_despesas_deputado") - "args": objeto com os argumentos da tool Exemplo: [ {"tool": "camara_despesas_deputado", "args": {"deputado_id": 204554, "ano": 2024}}, {"tool": "camara_despesas_deputado", "args": {"deputado_id": 204554, "ano": 2023}} ]
| Name | Required | Description | Default |
|---|---|---|---|
| consultas | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only mentions parallel execution and the need for full tool names, but does not disclose failure semantics, partial failure behavior, side effects of executing multiple tools, permissions, or result format. This is a significant gap for a batch execution tool that may invoke arbitrary tools with potential side effects.
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?
The description is well-structured and front-loaded with the core verb and purpose. Each section (when to use, required format, example) earns its place, and the example improves clarity without excessive verbosity.
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?
The description covers the essential invocation details and example, and the presence of an output schema reduces the need to explain return values. However, it omits constraints like maximum batch size or behavior on individual tool failures, which are relevant for safe and effective use of a batch execution tool. Overall it is quite complete for typical use.
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?
The input schema for 'consultas' is essentially opaque (no property descriptions), so the description fully compensates by defining the exact structure of each item (required 'tool' and 'args' keys) and providing a clear example. This adds substantial meaning beyond the schema.
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?
The description states 'Executa múltiplas tools em uma única chamada, em paralelo', clearly identifying the verb, resource, and parallel execution mode. It distinguishes itself from siblings like 'call_tool' by emphasizing batch execution of multiple tools in one call.
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?
It explicitly says when to use: 'para evitar chamadas sequenciais quando precisar de dados de várias fontes ou de vários anos/parâmetros ao mesmo tempo'. It does not explicitly name alternatives (e.g., 'call_tool') for single calls, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listar_datasets_disponiveisA
Lista os datasets locais (ADR-004) disponíveis e seu estado de cache.
Features em datasets/ dependem de cache local em DuckDB e só aparecem
quando listadas em MCP_BRASIL_DATASETS. Esta tool reporta todos
os datasets registrados no projeto (ativos e inativos), com tamanho
aproximado, fonte, e se o cache local já foi baixado.
Returns: Tabela markdown com id, habilitado, cached, linhas, tamanho, fonte.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses the tool's scope (all registered, including inactive datasets), that sizes are approximate, and that it reports cache download status. The dependency on MCP_BRASIL_DATASETS is explained. It implicitly indicates a read-only operation via 'lista', though it does not explicitly state this.
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?
The description is front-loaded with a clear purpose statement, followed by relevant context about the cache dependency, and ends with a structured return specification. Each sentence adds necessary information without fluff, making it concise and well-structured.
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?
The description covers the tool's purpose, scope, behavior (active/inactive, approximate size, cache state), and the environment variable dependency. It also specifies the return format in plain text, even though an output schema exists. Slightly more detail on prerequisites or explicit read-only nature would improve completeness, but it is adequate for a no-parameter listing tool.
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?
The tool has zero parameters, so the schema is empty. The description adds meaning by explaining that no input is needed and that the tool simply lists datasets and their cache state. Since there are no parameters, the baseline of 4 applies and the description adequately communicates the lack of inputs.
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?
The first sentence clearly states the verb and resource: 'Lista os datasets locais (ADR-004) disponíveis e seu estado de cache.' It further distinguishes itself from siblings like 'listar_features' by focusing on datasets and explicitly reporting all registered datasets (active and inactive).
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?
The description implies usage for checking dataset availability and cache status, noting that features depend on local cache. However, it does not explicitly state when to prefer this tool over alternatives such as 'listar_features', nor does it mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listar_featuresA
Lista todas as features (APIs) disponíveis no mcp-brasil.
Use esta tool para saber quais APIs governamentais estão conectadas e quais tools cada uma oferece.
Returns: Resumo das features ativas com descrição e status de autenticação.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It clearly indicates a read-only listing action and describes the returned content ('Resumo das features ativas com descrição e status de autenticação'), which is sufficient for a simple, non-mutating tool. It does not mention side effects because there are none.
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?
The description is concise and well-structured, with a clear opening statement, an explicit usage sentence, and a separate 'Returns:' section. Every sentence contributes useful information, and there is no waste.
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 tool with no parameters and a simple listing function, the description is complete. It explains what is listed, why to use it, and what is returned. The presence of an output schema means the description does not need to detail return values further.
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?
The tool has zero parameters, so the description does not need to elaborate on parameter semantics. The baseline for 0 params is 4, and no further information is required.
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?
The description clearly states the tool's function: 'Lista todas as features (APIs) disponíveis no mcp-brasil' using a specific verb and resource. It also distinguishes itself from siblings by explaining that it reveals which government APIs are connected and which tools each offers, setting it apart from 'listar_datasets_disponiveis' and 'search_tools'.
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 context is provided in 'Use esta tool para saber quais APIs governamentais estão conectadas e quais tools cada uma oferece.' This tells the agent when to use the tool, though it does not explicitly mention alternatives or situations to avoid, preventing a score of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
planejar_consultaA
Cria um plano de execução para consultas complexas.
Analisa a pergunta, identifica quais tools usar, em que ordem, e quais etapas dependem de outras. Útil para consultas que precisam de múltiplas chamadas combinadas.
Args: query: Pergunta em linguagem natural (ex: "compare os gastos do deputado X com a média").
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the tool's behavior in detail: it analyzes the question, identifies tools, order, and dependencies, which implies it only creates a plan and does not execute it. This is transparent and non-misleading.
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?
The description is concise and front-loaded, with a one-sentence purpose, a brief but informative explanation, and an Args section. Every sentence adds value, and the example is helpful without verbosity.
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 the single parameter, presence of an output schema, and no annotations, the description covers the purpose, usage context, parameter meaning, and provides an example. It is sufficient for an agent to select and invoke this tool correctly.
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?
The input schema only declares 'query' as a string with no description. The description compensates by explaining it as a natural language question and providing a concrete example, which fully disambiguates the parameter.
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?
The description states a specific action ('cria um plano de execução') for complex queries, and, further details explain it analyzes the question and determines tool order and dependencies. This clearly distinguishes it from sibling tools by emphasizing ordering and dependency analysis beyond mere tool recommendation.
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?
It explicitly states it is useful for queries that need multiple combined calls, which tells an agent when to use it. However, it does not mention when not to use it or explicitly compare it to alternatives like recomendar_tools, so it lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recomendar_toolsA
Recomenda tools relevantes a partir de uma pergunta em linguagem natural.
Usa IA para entender sua intenção e sugerir as tools mais adequadas do mcp-brasil, explicando quando e como usar cada uma.
Args: query: Pergunta ou descrição do que você precisa (ex: "quero dados sobre gastos do governo federal").
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It discloses that the tool uses AI to understand intent and suggests the most adequate tools from mcp-brasil, which implies a non-destructive read-only operation. However, it does not describe the output structure (though an output schema exists) or any limitations of the AI-based recommendation process.
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?
The description is concise and well-structured. It front-loads the core purpose in the first sentence, adds a brief clarifying sentence about the AI mechanism, and then presents the argument documentation in a clean, scannable format. No word is wasted.
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 simple one-parameter recommender, the description adequately covers the main functionality, the input format, and the source of recommendations (mcp-brasil). The presence of an output schema reduces the need to document return values. It could explicitly differentiate from 'search_tools', but overall it is sufficiently complete for an agent to select and invoke it.
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?
The input schema provides zero description for the single 'query' parameter, but the description compensates with an 'Args' section that explains the parameter meaning and gives a concrete example: 'quero dados sobre gastos do governo federal'. This fully covers the parameter's semantics.
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?
The description clearly states the tool's purpose: 'Recomenda tools relevantes a partir de uma pergunta em linguagem natural' (Recommends relevant tools from a natural language question). It uses a specific verb ('recomenda') and resource ('tools'), and distinguishes itself from siblings like 'search_tools' by emphasizing AI-based intent comprehension and providing explanations for each recommendation.
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?
The description does not provide any guidance on when to use this tool versus alternatives such as 'search_tools' or 'listar_features'. It mentions that the tool will explain 'quando e como usar cada uma' (when and how to use each recommended tool), but this refers to the output content, not to the circumstances under which an agent should invoke this tool itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_toolsA
Search for tools using natural language.
Returns matching tool definitions ranked by relevance, in the same format as list_tools.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural language query to search for tools |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states that it returns matching tool definitions ranked by relevance, which is a behavioral trait. It also mentions the format is same as list_tools, which is useful. However, it doesn't disclose any side effects, rate limits, or other behavioral details. Given the tool is a search operation, this is adequate but not rich.
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?
The description is concise, two sentences, and front-loaded with the purpose. Every sentence adds value: the first states what it does, the second clarifies the return format. No waste.
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?
The tool is simple with one parameter and an output schema. The description explains the return format (same as list_tools) and ranking by relevance. Given the simplicity and the presence of an output schema, the description is complete enough. It could mention that it's a read-only operation, but that's not critical.
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 documents the single parameter 'query' as a natural language query. The description adds no additional meaning beyond that. Baseline 3 is appropriate since the schema does the heavy lifting.
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?
The description clearly states the tool's purpose: searching for tools using natural language. It specifies the action (search) and the resource (tools), and distinguishes it from siblings like list_tools by mentioning the return format. However, it doesn't explicitly differentiate from other sibling tools like call_tool, but the purpose is clear.
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?
The description implies usage: when you need to find tools by natural language query. It mentions the return format is same as list_tools, which gives some context. However, it doesn't explicitly state when to use this vs alternatives, nor does it provide exclusions or alternative tool references. The guidance is minimal but not misleading.
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.
7 tool updates
v0.14.0- First observed
call_tool - First observed
executar_lote - First observed
listar_datasets_disponiveis - First observed
listar_features - First observed
planejar_consulta - First observed
recomendar_tools - First observed
search_tools
TDQS
Scored across 7 tools
There is noticeable overlap between recomendar_tools, planejar_consulta, and search_tools, as all accept natural language queries and return tool recommendations, albeit in different formats. listar_features and listar_datasets_disponiveis are distinct but share a similar prefix. The remaining tools are clearly separated.
Tool names mix Portuguese (listar, recomendar, planejar, executar) and English (search, call), creating an inconsistent impression. Although most follow a verb_noun pattern, the language switch is jarring and not predictable.
Seven tools is well-scoped for a meta-orchestration server. Each tool serves a distinct role in the discovery, planning, and execution workflow without unnecessary redundancy or excessive count.
The tool set covers the main workflow: listing features, discovering tools, planning queries, and executing them individually or in batch. Minor gaps exist, such as no direct tool to manage datasets or inspect feature details, but the core surface is functional.
Maintenance
Related MCP Connectors
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Brazilian public data API for AI agents. BCB, IBGE, CVM, B3, compliance. x402 payments on Base.
MCP server for Brazilian Federal Senate open data (legislative, administrative, e-Cidadania).
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server that provides real-time access to Brazilian agricultural data, including commodity prices, crop estimates, climate information, and deforestation rates. It integrates data from 19 public sources like CEPEA, CONAB, and IBGE to enable LLMs to analyze the Brazilian agribusiness sector.21027MIT
- AlicenseNot gradedqualityNot gradedmaintenanceConnects AI agents to 28 Brazilian public APIs, providing over 200 tools to access data on economy, legislation, transparency, and the judiciary. It enables complex queries and cross-referencing of government datasets like IBGE, the Central Bank, and the National Congress through natural language.MIT
- AlicenseNot gradedqualityDmaintenanceThis MCP server provides AI-optimized access to Brazil's largest open data platform, Base dos Dados, enabling dataset search and direct BigQuery SQL execution for Brazilian public datasets.1MIT
- AlicenseNot gradedqualityDmaintenanceMCP Server for accessing 36 Brazilian public data sources and 1 agent, enabling AI agents to query government data on economy, legislation, transparency, judiciary, elections, environment, health, and more.MIT