Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aradotso avatar

Mcp Brasil Public Apis

  • 835 installs
  • 66 repo stars
  • Updated July 9, 2026
  • aradotso/trending-skills

mcp-brasil-public-apis is an MCP integration skill that connects AI coding agents to 28 Brazilian public government APIs for developers who need natural-language access to economy, legislation, transparency, and judiciar

About

mcp-brasil-public-apis is a Claude Code skill by ara.so that installs and configures an MCP server bridging agents to 28 Brazilian public APIs spanning economy, legislation, transparency, judiciary, elections, environment, and health. Developers use it when they want to query IBGE, Banco Central, legislative records, or transparency portals from an agent without writing bespoke API clients for each source. Triggers include phrases like "use mcp-brasil," "query Brazilian public data," and "setup mcp server for Brazil APIs." The skill follows the Model Context Protocol so tools appear natively inside supported coding agents.

  • Exposes 213 tools, 55 resources, and 45 prompts from 28 Brazilian public APIs
  • 26 APIs require no API key; only 2 need free registration
  • Covers economy, legislation, transparency, judiciary, elections, environment, and health data
  • Works with Claude, Cursor, GPT, Copilot and other MCP-compatible agents
  • One-command install via pip or uv

Mcp Brasil Public Apis by the numbers

  • 835 all-time installs (skills.sh)
  • +9 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #1,254 of 16,659 AI & Agent Building skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/aradotso/trending-skills --skill mcp-brasil-public-apis

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs835
repo stars66
Security audit2 / 3 scanners passed
Last updatedJuly 9, 2026
Repositoryaradotso/trending-skills

How do you connect agents to Brazilian government APIs?

Give their AI coding agent instant natural-language access to 28 Brazilian public government data sources.

Who is it for?

Developers building Brazil-focused data agents who need IBGE, Banco Central, legislative, judiciary, or transparency portal access via MCP.

Skip if: Developers with no Brazil data requirements or those who only need non-government international APIs without MCP integration.

When should I use this skill?

The user asks to use mcp-brasil, connect to Brazilian government APIs, query IBGE or Banco Central data, or set up a Brazil public-data MCP server.

What you get

A configured MCP server exposing 28 Brazilian public API tools inside the coding agent.

  • Configured MCP server
  • Agent-callable tools for 28 Brazil APIs

By the numbers

  • Connects to 28 Brazilian public government APIs

Files

SKILL.mdMarkdownGitHub ↗

mcp-brasil: MCP Server for 28 Brazilian Public APIs

Skill by ara.so — Daily 2026 Skills collection.

mcp-brasil is a Model Context Protocol (MCP) server that exposes 213 tools, 55 resources, and 45 prompts across 28 Brazilian public APIs — letting AI agents (Claude, GPT, Copilot, Cursor, etc.) query government data in natural language. 26 APIs require no key; only 2 need free registrations.

---

Installation

# pip
pip install mcp-brasil

# uv (recommended)
uv add mcp-brasil

---

Quick Setup by Client

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "mcp-brasil": {
      "command": "uvx",
      "args": ["--from", "mcp-brasil", "python", "-m", "mcp_brasil.server"],
      "env": {
        "TRANSPARENCIA_API_KEY": "$TRANSPARENCIA_API_KEY",
        "DATAJUD_API_KEY": "$DATAJUD_API_KEY"
      }
    }
  }
}

VS Code / Cursor

Create .vscode/mcp.json in your project root:

{
  "servers": {
    "mcp-brasil": {
      "command": "uvx",
      "args": ["--from", "mcp-brasil", "python", "-m", "mcp_brasil.server"],
      "env": {
        "TRANSPARENCIA_API_KEY": "$TRANSPARENCIA_API_KEY",
        "DATAJUD_API_KEY": "$DATAJUD_API_KEY"
      }
    }
  }
}

Claude Code CLI

claude mcp add mcp-brasil -- uvx --from mcp-brasil python -m mcp_brasil.server

HTTP Transport (other clients)

fastmcp run mcp_brasil.server:mcp --transport http --port 8000
# Server at http://localhost:8000/mcp

---

Environment Variables

Create a .env file or export in your shell:

# Optional — 26 other APIs work without any keys
TRANSPARENCIA_API_KEY=your_key_here    # https://portaldatransparencia.gov.br/api-de-dados/cadastrar-email
DATAJUD_API_KEY=your_key_here          # https://datajud-wiki.cnj.jus.br/api-publica/acesso

# Tuning
MCP_BRASIL_TOOL_SEARCH=bm25            # bm25 | code_mode | none (default: bm25)
MCP_BRASIL_HTTP_TIMEOUT=30.0           # seconds
MCP_BRASIL_HTTP_MAX_RETRIES=3

---

API Coverage (28 Features, 213 Tools)

CategoryFeature KeyAPITools
EconomicibgeIBGE — states, municipalities, statistics9
EconomicbacenBanco Central — Selic, IPCA, FX, PIB, 190+ series9
LegislativecamaraCâmara dos Deputados — deputies, bills, votes, expenses10
LegislativesenadoSenado Federal — senators, bills, votes, committees26
TransparencytransparenciaPortal da Transparência — contracts, spending, sanctions18
TransparencytcuTCU — rulings, ineligible bidders8
TCE (states)tce_sp/rj/rs/sc/pe/ce/rn/pi/to9 State audit courts39
JudiciarydatajudDataJud/CNJ — court cases, movements7
JudiciaryjurisprudenciaSTF, STJ, TST — rulings, precedents6
ElectoraltseTSE — elections, candidates, campaign finance15
EnvironmentinpeINPE — wildfires, deforestation4
EnvironmentanaANA — hydrological stations, reservoirs3
HealthsaudeCNES/DataSUS — facilities, professionals, beds4
Oceanographytabua_maresTide tables for Brazilian ports7
ProcurementpncpPNCP — public contracts (Lei 14.133/2021)6
ProcurementdadosabertosComprasNet/SIASG8
UtilitiesbrasilapiCEP, CNPJ, DDD, banks, FX, FIPE, PIX16
Utilitiesdados_abertosdados.gov.br — dataset catalog4
Utilitiesdiario_oficialOfficial gazettes from 5,000+ cities4
UtilitiestransferegovParliamentary PIX transfers5
AI AgentredatorDraft official documents with real data5

---

Meta-Tools (Root Server)

Four special tools are always available regardless of feature:

ToolDescription
listar_featuresList all 28 features with descriptions
recomendar_toolsBM25 search — get relevant tools for a query
planejar_consultaBuild multi-API execution plan for a complex query
executar_loteRun multiple tool calls in parallel in one request

---

Development Commands

git clone https://github.com/jxnxts/mcp-brasil.git
cd mcp-brasil

make dev              # Install all dependencies (prod + dev)
make test             # Run all tests
make test-feature F=ibge   # Test a single feature
make lint             # Lint + format check
make ruff             # Auto-fix lint + format
make types            # mypy strict mode
make ci               # lint + types + test (full CI)
make run              # Start server (stdio transport)
make serve            # Start server (HTTP :8000)
make inspect          # List all tools/resources/prompts

---

Architecture: Package by Feature + Auto-Registry

src/mcp_brasil/
├── server.py              # Auto-discovers features — never edit manually
├── _shared/               # Shared HTTP client, rate limiting, BM25
├── data/                  # 27 API features
│   ├── ibge/
│   │   ├── __init__.py    # exports FEATURE_META
│   │   ├── server.py      # FastMCP instance (exports `mcp`)
│   │   ├── tools.py       # Tool implementations
│   │   ├── client.py      # Async HTTP via httpx
│   │   ├── schemas.py     # Pydantic v2 models
│   │   └── constants.py   # Base URLs, codes
│   ├── bacen/
│   └── ...
└── agentes/               # Intelligent agent features
    └── redator/

Auto-registry: The root server.py scans for FEATURE_META in __init__.py and mcp: FastMCP in server.py — no manual registration needed.

---

Adding a New Feature

mkdir src/mcp_brasil/data/myfeature
touch src/mcp_brasil/data/myfeature/{__init__.py,server.py,tools.py,client.py,schemas.py,constants.py}

__init__.py — Required export

from mcp_brasil._shared.types import FeatureMeta

FEATURE_META = FeatureMeta(
    name="myfeature",
    description="Short description of the API",
    tags=["category"],
    requires_key=False,
)

server.py — Required export

from fastmcp import FastMCP
from .tools import register_tools

mcp = FastMCP("myfeature")
register_tools(mcp)

client.py — Async HTTP pattern

import httpx
from mcp_brasil._shared.http import get_client

BASE_URL = "https://api.example.gov.br"

async def fetch_data(endpoint: str, params: dict) -> dict:
    async with get_client() as client:
        response = await client.get(f"{BASE_URL}/{endpoint}", params=params)
        response.raise_for_status()
        return response.json()

schemas.py — Pydantic v2 models

from pydantic import BaseModel, Field
from typing import Optional

class MyResult(BaseModel):
    id: str
    name: str
    value: Optional[float] = Field(None, description="Numeric value")

tools.py — Tool registration

from fastmcp import FastMCP
from .client import fetch_data
from .schemas import MyResult

def register_tools(mcp: FastMCP) -> None:

    @mcp.tool(description="Busca dados do endpoint X")
    async def buscar_dados(
        codigo: str,
        ano: int = 2024,
    ) -> list[MyResult]:
        """Retorna dados do endpoint X para o código fornecido."""
        raw = await fetch_data("endpoint-x", {"codigo": codigo, "ano": ano})
        return [MyResult(**item) for item in raw.get("data", [])]

tests/data/myfeature/test_tools.py — Test pattern

import pytest
from unittest.mock import AsyncMock, patch
from mcp_brasil.data.myfeature.tools import register_tools
from fastmcp import FastMCP

@pytest.fixture
def mcp():
    server = FastMCP("test-myfeature")
    register_tools(server)
    return server

@pytest.mark.asyncio
async def test_buscar_dados(mcp):
    mock_response = {"data": [{"id": "001", "name": "Test", "value": 42.0}]}
    with patch("mcp_brasil.data.myfeature.client.fetch_data", new_callable=AsyncMock) as mock:
        mock.return_value = mock_response
        # call via mcp tool invocation or directly
        from mcp_brasil.data.myfeature.tools import buscar_dados
        result = await buscar_dados(codigo="001")
        assert len(result) == 1
        assert result[0].name == "Test"

---

Common Usage Patterns

Pattern 1: Cross-reference with planejar_consulta

Ask the agent to plan a multi-API query:

"Crie um plano de consulta para analisar o deputado federal João Silva:
gastos, votações, proposições e financiamento de campanha."

The planejar_consulta meta-tool returns a structured execution plan combining camara, tse, and transparencia tools.

Pattern 2: Parallel execution with executar_lote

"Execute em paralelo: taxa Selic atual, IPCA dos últimos 12 meses, 
e câmbio USD/BRL de hoje."

executar_lote fires all three bacen tool calls concurrently.

Pattern 3: Smart discovery with recomendar_tools

"Quais tools devo usar para investigar contratos suspeitos em licitações municipais?"

BM25 search filters the 213 tools to return only relevant ones (e.g., tce_sp, pncp, tcu, transparencia).

Pattern 4: Direct tool calls in code

import asyncio
from mcp_brasil.data.bacen.tools import buscar_serie_temporal
from mcp_brasil.data.ibge.tools import buscar_municipios

async def main():
    # Selic rate last 12 months
    selic = await buscar_serie_temporal(codigo="432", ultimos=12)
    
    # All municipalities in São Paulo state
    municipios = await buscar_municipios(uf="SP")
    
    print(f"Selic entries: {len(selic)}")
    print(f"SP municipalities: {len(municipios)}")

asyncio.run(main())

Pattern 5: Using brasilapi for CNPJ/CEP lookup

from mcp_brasil.data.brasilapi.tools import consultar_cnpj, consultar_cep

async def lookup():
    empresa = await consultar_cnpj(cnpj="00000000000191")  # Banco do Brasil
    endereco = await consultar_cep(cep="01310100")         # Av. Paulista

---

Natural Language Query Examples

Once the server is connected to your AI client:

# Economic analysis
"Qual a tendência da taxa Selic nos últimos 12 meses? Compare com IPCA."

# Legislative research  
"Quais projetos de lei sobre IA tramitaram na Câmara em 2024? Quem foram os autores?"

# Transparency / anti-corruption
"Quais os 10 maiores contratos do governo federal em 2024?"

# Cross-state comparison
"Compare gastos per capita com saúde em SP e MG cruzando TCE-SP e IBGE."

# Judiciary
"Busque processos sobre licitação irregular no TCU. Quais as penalidades?"

# Electoral finance
"Quais os maiores doadores da campanha do candidato X?"

# Environment
"Quantos focos de queimada foram registrados no Cerrado em agosto 2024?"

# Document generation (redator feature)
"Redija um ofício solicitando informações sobre o contrato 001/2024 
com dados reais do Portal da Transparência."

---

Troubleshooting

Server not starting

# Verify installation
python -m mcp_brasil.server --help

# Check uvx finds the package
uvx --from mcp-brasil python -c "import mcp_brasil; print(mcp_brasil.__version__)"

API returning 401/403

  • transparencia and datajud silently degrade without keys — set TRANSPARENCIA_API_KEY and DATAJUD_API_KEY for full access
  • Keys are free: Transparência | DataJud

Too many tools visible (context overflow)

Set MCP_BRASIL_TOOL_SEARCH=bm25 (default) — only tools relevant to the current query are surfaced. Use code_mode to expose all tools, or none to disable filtering.

Timeout errors on slow government APIs

MCP_BRASIL_HTTP_TIMEOUT=60.0    # increase timeout
MCP_BRASIL_HTTP_MAX_RETRIES=5   # increase retries

Feature not auto-discovered

Ensure your feature folder exports both:

  • FEATURE_META in __init__.py
  • mcp: FastMCP instance in server.py

Run make inspect to verify your feature appears in the tool list.

Running tests for a specific feature

make test-feature F=bacen
make test-feature F=transparencia

---

Key Design Principles

1. Async everywherehttpx async client, all tools are async def 2. Pydantic v2 — all API responses validated through typed schemas 3. Rate limiting with backoff — built into _shared/http.py, transparent to feature code 4. Zero manual registration — add a folder → it's discovered automatically 5. BM25 smart filtering — prevents context window bloat from 213 tools 6. Graceful degradation — APIs requiring keys still work (with reduced limits) without them

Related skills

How it compares

Pick mcp-brasil-public-apis for Brazil government open-data inside agents; pick a generic REST client skill when you need one non-Brazil API without MCP tooling.

FAQ

How many APIs does mcp-brasil-public-apis expose?

mcp-brasil-public-apis connects AI agents to 28 Brazilian public APIs covering economy, legislation, transparency, judiciary, elections, environment, health, and related government data sources through an MCP server.

Which agents can use mcp-brasil-public-apis?

mcp-brasil-public-apis configures a Model Context Protocol server that supported AI coding agents can call with natural-language queries for Brazilian public data, including IBGE and Banco Central endpoints.

Is Mcp Brasil Public Apis safe to install?

skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

AI & Agent Buildingagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.