MCP Server for IBGE (Brazilian Institute of Geography and Statistics) APIs. π§π· Leia em PortuguΓͺs This server implements the Model Context Protocol (MCP) to provide access to IBGE's public APIs, enabling AI assistants to query geographic, demographic, and statistical data from Brazil. - 23 specialized tools covering all major IBGE data domains - 227 automated tests with 97%+ core coverage - Autom
Add this skill
npx mdskills install SidneyBissoli/ibge-br-mcpComprehensive MCP server with 23 well-documented tools for Brazilian geographic and statistical data
1# ibge-br-mcp23[](https://www.npmjs.com/package/ibge-br-mcp)4[](https://www.npmjs.com/package/ibge-br-mcp)5[](https://github.com/SidneyBissoli/ibge-br-mcp)6[](https://github.com/SidneyBissoli/ibge-br-mcp)7[](https://opensource.org/licenses/MIT)8[](https://smithery.ai/server/sidneybissoli/ibge-br-mcp)910MCP Server for IBGE (Brazilian Institute of Geography and Statistics) APIs.11π§π· [Leia em PortuguΓͺs](README.pt-BR.md)1213This server implements the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) to provide access to IBGE's public APIs, enabling AI assistants to query geographic, demographic, and statistical data from Brazil.1415## Features1617- **23 specialized tools** covering all major IBGE data domains18- **227 automated tests** with 97%+ core coverage19- **Automatic caching** with configurable TTL for optimal performance20- **Retry mechanism** with exponential backoff for network resilience21- **Comprehensive validation** for all input parameters22- **Standardized error handling** with helpful suggestions23- **Full TypeScript support** with strict typing2425## Available Tools2627### Localities & Geography28| Tool | Description |29|:-----|:------------|30| `ibge_estados` | List Brazilian states with region filtering |31| `ibge_municipios` | List municipalities by state or search by name |32| `ibge_localidade` | Get details of a locality by IBGE code |33| `ibge_geocodigo` | Decode IBGE codes or search codes by name |34| `ibge_vizinhos` | Find neighboring municipalities |3536### Statistical Data (SIDRA)37| Tool | Description |38|:-----|:------------|39| `ibge_sidra` | Query SIDRA tables (Census, PNAD, GDP, etc.) |40| `ibge_sidra_tabelas` | List and search available SIDRA tables |41| `ibge_sidra_metadados` | Get table metadata (variables, periods, levels) |42| `ibge_pesquisas` | List IBGE research surveys and their tables |4344### Economic & Social Indicators45| Tool | Description |46|:-----|:------------|47| `ibge_indicadores` | Economic and social indicators (GDP, IPCA, unemployment) |48| `ibge_censo` | Census data (1970-2022) with 16 themes |49| `ibge_comparar` | Compare indicators across localities with rankings |5051### Municipal Data (Cidades@)52| Tool | Description |53|:-----|:------------|54| `ibge_cidades` | Municipal indicators (population, HDI, GDP per capita, etc.) |5556### International Data57| Tool | Description |58|:-----|:------------|59| `ibge_paises` | Country data following UN M49 methodology |6061### Demographics62| Tool | Description |63|:-----|:------------|64| `ibge_populacao` | Real-time Brazilian population projection |65| `ibge_nomes` | Name frequency and rankings in Brazil |6667### Classifications68| Tool | Description |69|:-----|:------------|70| `ibge_cnae` | CNAE (National Classification of Economic Activities) |7172### Maps & Geographic Meshes73| Tool | Description |74|:-----|:------------|75| `ibge_malhas` | Geographic meshes (GeoJSON, TopoJSON, SVG) |76| `ibge_malhas_tema` | Thematic meshes (biomes, Legal Amazon, semi-arid) |7778### External Data (BCB & Health)79| Tool | Description |80|:-----|:------------|81| `bcb` | Central Bank data (SELIC, IPCA, exchange rates) |82| `datasaude` | Health indicators via IBGE/DataSUS |8384### News & Calendar85| Tool | Description |86|:-----|:------------|87| `ibge_noticias` | IBGE news and press releases |88| `ibge_calendario` | IBGE release and collection calendar |8990## Installation9192### Prerequisites9394- Node.js 18.x or higher95- npm or yarn9697### From npm (recommended)9899```bash100npm install -g ibge-br-mcp101```102103### From source104105```bash106# Clone the repository107git clone https://github.com/SidneyBissoli/ibge-br-mcp.git108cd ibge-br-mcp109110# Install dependencies111npm install112113# Build the project114npm run build115```116117## Configuration118119### Claude Desktop120121Add to your Claude Desktop configuration file (`claude_desktop_config.json`):122123```json124{125 "mcpServers": {126 "ibge-br-mcp": {127 "command": "npx",128 "args": ["ibge-br-mcp"]129 }130 }131}132```133134Or if installed from source:135136```json137{138 "mcpServers": {139 "ibge-br-mcp": {140 "command": "node",141 "args": ["/path/to/ibge-br-mcp/dist/index.js"]142 }143 }144}145```146147### Claude Code148149```json150{151 "mcpServers": {152 "ibge-br-mcp": {153 "command": "npx",154 "args": ["ibge-br-mcp"]155 }156 }157}158```159160## Tool Usage Examples161162### ibge_estados163164List all Brazilian states.165166```167# List all states168ibge_estados169170# States in Northeast region171ibge_estados(regiao="NE")172173# States sorted by abbreviation174ibge_estados(ordenar="sigla")175```176177### ibge_municipios178179List Brazilian municipalities.180181```182# Municipalities of SΓ£o Paulo state183ibge_municipios(uf="SP")184185# Search municipalities by name186ibge_municipios(busca="Campinas")187188# Municipalities in MG containing "Belo"189ibge_municipios(uf="MG", busca="Belo")190```191192### ibge_cidades193194Query municipal indicators (similar to Cidades@ portal).195196```197# Panorama of SΓ£o Paulo198ibge_cidades(tipo="panorama", municipio="3550308")199200# Population history201ibge_cidades(tipo="historico", municipio="3550308", indicador="populacao")202203# List available research204ibge_cidades(tipo="pesquisas")205```206207**Available indicators:** populacao, area, densidade, pib_per_capita, idh, escolarizacao, mortalidade, salario_medio, receitas, despesas208209### ibge_paises210211Query international country data.212213```214# List all countries215ibge_paises(tipo="listar")216217# Brazil details218ibge_paises(tipo="detalhes", pais="BR")219220# Search countries221ibge_paises(tipo="buscar", busca="Argentina")222223# Countries in Americas224ibge_paises(tipo="listar", regiao="americas")225```226227**Regions:** americas, europa, africa, asia, oceania228229### ibge_sidra230231Query SIDRA tables (IBGE's Automatic Recovery System).232233```234# Brazil population in 2023235ibge_sidra(tabela="6579", periodos="2023")236237# Population by state238ibge_sidra(tabela="6579", nivel_territorial="3", periodos="2023")239240# Census 2022 for SΓ£o Paulo municipality241ibge_sidra(tabela="9514", nivel_territorial="6", localidades="3550308")242```243244**Common tables:**245| Code | Description |246|-----:|:------------|247| 6579 | Population estimates (annual) |248| 9514 | Census 2022 population |249| 4714 | Unemployment rate (PNAD) |250| 6706 | GDP at current prices |251252**Territorial levels:**253| Code | Level |254|-----:|:------|255| 1 | Brazil |256| 2 | Region (North, Northeast, etc.) |257| 3 | State (UF) |258| 6 | Municipality |259| 7 | Metropolitan Region |260| 106 | Health Region |261| 127 | Legal Amazon |262| 128 | Semi-arid |263264### ibge_censo265266Query Census data (1970-2022).267268```269# Population Census 2022270ibge_censo(ano="2022", tema="populacao")271272# Historical population series273ibge_censo(ano="todos", tema="populacao")274275# Literacy by state in 2010276ibge_censo(ano="2010", tema="alfabetizacao", nivel_territorial="3")277```278279**Available themes:** populacao, alfabetizacao, domicilios, idade_sexo, religiao, cor_raca, rendimento, migracao, educacao, trabalho280281### ibge_indicadores282283Query economic and social indicators.284285```286# GDP287ibge_indicadores(indicador="pib")288289# IPCA last 12 months290ibge_indicadores(indicador="ipca", periodos="last 12")291292# Unemployment by state293ibge_indicadores(indicador="desemprego", nivel_territorial="3")294295# List all indicators296ibge_indicadores(indicador="listar")297```298299**Available indicators:**300| Category | Indicators |301|:---------|:-----------|302| Economic | pib, pib_variacao, pib_per_capita, industria, comercio, servicos |303| Prices | ipca, ipca_acumulado, inpc |304| Labor | desemprego, ocupacao, rendimento, informalidade |305| Population | populacao, densidade |306| Agriculture | agricultura, pecuaria |307308### ibge_nomes309310Query name frequency and rankings.311312```313# Frequency of "Maria"314ibge_nomes(tipo="frequencia", nomes="Maria")315316# Compare names317ibge_nomes(tipo="frequencia", nomes="JoΓ£o,JosΓ©,Pedro")318319# Ranking of names in 2000s320ibge_nomes(tipo="ranking", decada=2000)321322# Female names ranking323ibge_nomes(tipo="ranking", sexo="F")324```325326### ibge_malhas327328Get geographic meshes (maps).329330```331# Brazil with states332ibge_malhas(localidade="BR", resolucao="2")333334# SΓ£o Paulo with municipalities335ibge_malhas(localidade="SP", resolucao="5")336337# Specific municipality338ibge_malhas(localidade="3550308")339340# SVG format341ibge_malhas(localidade="BR", formato="svg")342```343344**Resolution levels:**345| Value | Internal Divisions |346|:-----:|:-------------------|347| 0 | No divisions (outline only) |348| 2 | States |349| 5 | Municipalities |350351### bcb352353Query Central Bank of Brazil data.354355```356# SELIC last 12 months357bcb(indicador="selic", ultimos=12)358359# IPCA for 2023360bcb(indicador="ipca", dataInicio="01/01/2023", dataFim="31/12/2023")361362# Dollar exchange rate last 30 days363bcb(indicador="dolar_venda", ultimos=30)364```365366**Available indicators:** selic, cdi, tr, ipca, ipca_acum, igpm, inpc, dolar_compra, dolar_venda, euro, desemprego367368### datasaude369370Query health indicators via IBGE/DataSUS.371372```373# Infant mortality in Brazil374datasaude(indicador="mortalidade_infantil")375376# Life expectancy by state377datasaude(indicador="esperanca_vida", nivel_territorial="3")378379# List indicators380datasaude(indicador="listar")381```382383**Available indicators:** mortalidade_infantil, esperanca_vida, nascidos_vivos, obitos, fecundidade, saneamento_agua, saneamento_esgoto, plano_saude384385## APIs Used386387### IBGE APIs388389- **Localities**: `servicodados.ibge.gov.br/api/v1/localidades`390- **Names**: `servicodados.ibge.gov.br/api/v2/censos/nomes`391- **Aggregates/SIDRA**: `servicodados.ibge.gov.br/api/v3/agregados`392- **SIDRA API**: `apisidra.ibge.gov.br/values`393- **Meshes**: `servicodados.ibge.gov.br/api/v3/malhas`394- **News**: `servicodados.ibge.gov.br/api/v3/noticias`395- **Population**: `servicodados.ibge.gov.br/api/v1/projecoes/populacao`396- **CNAE**: `servicodados.ibge.gov.br/api/v2/cnae`397- **Calendar**: `servicodados.ibge.gov.br/api/v3/calendario`398- **Countries**: `servicodados.ibge.gov.br/api/v1/paises`399- **Research**: `servicodados.ibge.gov.br/api/v1/pesquisas`400401### External APIs402403- **Central Bank (BCB)**: `api.bcb.gov.br/dados/serie/bcdata.sgs` - Interest rates, exchange rates, inflation404405## Development406407```bash408# Build409npm run build410411# Watch mode412npm run watch413414# Run tests415npm test416417# Run tests in watch mode418npm run test:watch419420# Lint421npm run lint422423# Format424npm run format425426# Test with MCP inspector427npm run inspector428```429430## Project Structure431432```433ibge-br-mcp/434βββ src/435β βββ index.ts # Main MCP server436β βββ types.ts # TypeScript types437β βββ config.ts # Configuration and constants438β βββ cache.ts # Request caching system439β βββ retry.ts # Retry with exponential backoff440β βββ errors.ts # Standardized error handling441β βββ validation.ts # Input validation helpers442β βββ metrics.ts # Metrics and logging443β βββ utils/444β β βββ formatters.ts # Formatting utilities445β βββ tools/446β βββ index.ts # Tool exports447β βββ estados.ts # ibge_estados448β βββ municipios.ts # ibge_municipios449β βββ localidade.ts # ibge_localidade450β βββ geocodigo.ts # ibge_geocodigo451β βββ censo.ts # ibge_censo452β βββ populacao.ts # ibge_populacao453β βββ sidra.ts # ibge_sidra454β βββ sidra-tabelas.ts # ibge_sidra_tabelas455β βββ sidra-metadados.ts# ibge_sidra_metadados456β βββ indicadores.ts # ibge_indicadores457β βββ cnae.ts # ibge_cnae458β βββ calendario.ts # ibge_calendario459β βββ comparar.ts # ibge_comparar460β βββ malhas.ts # ibge_malhas461β βββ malhas-tema.ts # ibge_malhas_tema462β βββ vizinhos.ts # ibge_vizinhos463β βββ bcb.ts # bcb464β βββ datasaude.ts # datasaude465β βββ pesquisas.ts # ibge_pesquisas466β βββ nomes.ts # ibge_nomes467β βββ noticias.ts # ibge_noticias468β βββ paises.ts # ibge_paises469β βββ cidades.ts # ibge_cidades470βββ tests/ # Test files471βββ dist/ # Compiled files472βββ package.json473βββ tsconfig.json474βββ vitest.config.ts475βββ README.md476```477478## Testing479480The project includes a comprehensive test suite with 227 tests covering:481482- Validation functions483- Retry mechanism484- Formatting utilities485- Error handling486- Cache operations487- Integration tests with mocks488489```bash490npm test491```492493## Quality Assurance494495This project maintains high code quality standards:496497- **227 automated tests** covering validation, caching, retry logic, formatting, and integrations498- **97%+ test coverage** on core modules (cache, validation, errors, types)499- **ESLint** for code linting with zero warnings500- **Prettier** for consistent code formatting501- **TypeScript strict mode** for type safety502- **Automated CI/CD** via GitHub Actions503504Run tests locally:505```bash506# Run all tests507npm test508509# Run tests with coverage510npm run test:coverage511512# Run linter513npm run lint514```515516## License517518MIT519520## Author521522Sidney Bissoli523524## References525526- [IBGE - Data Service](https://servicodados.ibge.gov.br/api/docs/)527- [SIDRA - IBGE Automatic Recovery System](https://sidra.ibge.gov.br/)528- [Model Context Protocol](https://modelcontextprotocol.io/)529- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)530
Full transparency β inspect the skill content before installing.