Natal IBGE MCP Server
Provides AI models with direct access to official IBGE Censo 2022 and PIB data for Natal (RN), including neighborhood-level demographics, sanitation, and comparisons.
README
Natal IBGE MCP Server
O Natal IBGE MCP Server é um servidor implementado seguindo o padrão Model Context Protocol (MCP) da Anthropic. Ele disponibiliza a modelos de Inteligência Artificial (como Claude, GPT-4o, Gemini, etc.) acesso estruturado e direto a dados oficiais do Censo Demográfico 2022 e do PIB para a cidade de Natal (RN) — código IBGE 2408102.
O servidor combina consultas dinâmicas às APIs públicas agregadas do IBGE/SIDRA com dados extremamente granulares a nível de bairros fornecidos por planilhas locais preprocessadas, tornando-se uma ferramenta indispensável para análises econômicas, demográficas e habitacionais da capital potiguar.
Requisitos
- Node.js (Versão recomendada: >= 18)
- NPM (incluso com o Node)
Instalação e Configuração
1. Clonar e Instalar o Servidor
Clone este repositório no seu computador e instale as dependências:
git clone <url-do-repositorio>
cd mcp-ibge-natal
npm install
npm run build
2. Adicionar ao Claude Desktop
Abra o arquivo de configuração do seu Claude Desktop (claude_desktop_config.json). No macOS, ele fica em:
~/Library/Application Support/Claude/claude_desktop_config.json
Adicione a seguinte configuração no objeto "mcpServers":
{
"mcpServers": {
"mcp-ibge-natal": {
"command": "node",
"args": ["/Users/fabiofariasfigueiroa/Desktop/mcp-ibge-natal/build/index.js"]
}
}
}
3. Adicionar ao Cursor IDE
- Abra o Cursor e vá nas configurações (
Settings->Features->MCP). - Clique em + Add New MCP Server.
- Configure os seguintes valores:
- Name:
mcp-ibge-natal - Type:
stdio - Command:
node "/Users/fabiofariasfigueiroa/Desktop/mcp-ibge-natal/build/index.js"
- Name:
- Clique em Save.
Atualizar dados por bairro
Os arquivos CSV em data/ são gerados a partir de fontes públicas do IBGE, utilizando os scripts de extração disponíveis no projeto:
python3 scripts/extract_natal_bairros.py # população, domicílios e esgotamento por bairro
python3 scripts/extract_natal_renda.py # renda do responsável pelo domicílio por bairro
Requer Python 3 instalado na máquina.
Como os dados são provenientes do Censo 2022 (estáticos), não é necessário rodar os scripts novamente a menos que as fontes sejam atualizadas. Execute-os apenas quando houver uma nova versão dos dados de origem.
Sobre a renda por bairro: o dado granular é o rendimento do responsável pelo domicílio (chefe), do release IBGE "Agregados por Setores Censitários — Rendimento do Responsável". É um universo distinto da tool municipal
get_average_income(que cobre todas as pessoas de 14+ anos ocupadas), portanto os números por bairro não são diretamente comparáveis com o municipal.
Ferramentas Disponíveis (MCP Tools)
| Nome da Ferramenta | Descrição | Parâmetros |
|---|---|---|
get_total_population |
População total residente de Natal (Censo 2022). | Nenhum |
get_population_by_age_group |
Pirâmide/faixa etária com proporção (%) por faixa. | Nenhum |
get_population_history |
Série histórica das estimativas populacionais. | Nenhum |
get_gdp_pib |
PIB a preços correntes de Natal (2022). | Nenhum |
compare_gdp_neighbors |
Comparativo de PIB: Natal vs. Parnamirim, São Gonçalo do Amarante e Mossoró. | Nenhum |
get_average_income |
Renda nominal média e mediana mensal dos trabalhadores (Censo 2022). | Nenhum |
get_households_count |
Total de domicílios particulares permanentes ocupados. | Nenhum |
get_density_area |
Área territorial (km²) e densidade demográfica (hab/km²). | Nenhum |
get_city_sanitation |
Panorama do esgotamento sanitário do município. | Nenhum |
get_literacy_rate |
Taxa de alfabetização das pessoas de 15+ anos (Censo 2022). | Nenhum |
list_neighborhoods |
Lista os 36 bairros com população, área, densidade, moradores/dom. e renda média do responsável. | Nenhum |
get_neighborhood_demographics |
Demografia e ocupação de domicílios de um bairro. | query (nome ou código) |
get_neighborhood_sanitation |
Detalhamento do esgotamento e % de adequação por bairro. | query (nome ou código) |
get_neighborhood_income |
Renda média e mediana mensal do responsável pelo domicílio em um bairro, com ranking (Censo 2022). | query (nome ou código) |
rank_neighborhoods_by_income |
Ranqueia os bairros pela renda média do responsável (maiores ou menores). | order (top/bottom), limit |
compare_neighborhoods |
Tabelas comparativas lado a lado entre bairros (demografia, saneamento e renda). | bairros (array, mín. 2) |
Exemplos de Perguntas
Depois de configurar o servidor MCP, você pode conversar com o assistente e fazer perguntas como:
- "Qual o PIB de Natal comparado a Parnamirim, São Gonçalo do Amarante e Mossoró?"
- "Como é a pirâmide etária de Natal?"
- "Qual a taxa de alfabetização de Natal?"
- "Quais os 3 bairros mais populosos de Natal e suas densidades?"
- "Compare o saneamento (esgotamento adequado) entre Pajuçara e Lagoa Azul."
- "Qual a média de moradores por domicílio no bairro Petrópolis?"
- "Qual a renda do responsável pelo domicílio no bairro Tirol?"
- "Quais os 5 bairros de Natal com menor renda do responsável?"
- "Compare renda, saneamento e densidade entre Tirol e Guarapés."
Estrutura de Pastas
├── data/
│ ├── bairros_natal.csv # Dados demográficos locais por bairro
│ ├── esgotamento_por_bairro_natal.csv # Dados de esgoto locais por bairro
│ └── renda_por_bairro_natal.csv # Renda do responsável pelo domicílio por bairro
├── scripts/
│ ├── extract_natal_bairros.py # Extração de população/domicílios/esgoto por bairro
│ ├── extract_natal_renda.py # Extração da renda do responsável por bairro
│ └── verify.js # Script de verificação da integração MCP
├── src/
│ └── index.ts # Implementação principal do servidor MCP (TypeScript)
├── build/
│ └── index.js # Servidor compilado (JavaScript executável)
├── package.json # Dependências e scripts do projeto
├── tsconfig.json # Configuração do compilador TypeScript
└── README.md # Documentação de referência
Licença
Este projeto está licenciado sob a licença MIT. Desenvolvido para facilitar o acesso à informação pública e fomentar a cultura de Letramento de Dados.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.