ibge-br-mcp 5.5.0 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/provenance.d.ts +8 -0
- package/dist/provenance.d.ts.map +1 -1
- package/dist/provenance.js +1 -0
- package/dist/provenance.js.map +1 -1
- package/package.json +4 -4
- package/README.pt-BR.md +0 -679
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
Ask an LLM _"what was Belo Horizonte's population in the 2022 Census?"_ and you get a plausible number from its training data: maybe right, maybe outdated, with no source. `ibge-br-mcp` instead has your assistant query the official **IBGE** APIs in real time — returning the exact figure together with the table and period it came from.
|
|
19
19
|
|
|
20
|
-
🇧🇷 [Leia em Português](
|
|
20
|
+
🇧🇷 [Leia em Português](LEIA-ME.md)
|
|
21
21
|
|
|
22
22
|
This server implements the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) to give AI assistants live, structured access to Brazil's public geographic, demographic, economic, and health data — sourced from the IBGE APIs (including health indicators served through IBGE's SIDRA system).
|
|
23
23
|
|
package/dist/provenance.d.ts
CHANGED
|
@@ -190,6 +190,14 @@ export declare function comProveniencia<T extends z.ZodObject<z.ZodRawShape>>(sc
|
|
|
190
190
|
}, z.core.$strict>>;
|
|
191
191
|
citation: z.ZodString;
|
|
192
192
|
license: z.ZodNullable<z.ZodString>;
|
|
193
|
+
field_sources: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
194
|
+
fields: z.ZodArray<z.ZodString>;
|
|
195
|
+
source_url: z.ZodString;
|
|
196
|
+
dataset_id: z.ZodNullable<z.ZodString>;
|
|
197
|
+
data_vintage: z.ZodNullable<z.ZodString>;
|
|
198
|
+
retrieved_at: z.ZodNullable<z.ZodString>;
|
|
199
|
+
served_from_cache: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
200
|
+
}, z.core.$strict>>>;
|
|
193
201
|
}, z.core.$strict>;
|
|
194
202
|
attribution: z.ZodArray<z.ZodString>;
|
|
195
203
|
}, z.core.$strip>;
|
package/dist/provenance.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,kBAAkB,EAGlB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,0BAA0B,CAAC;AAKlC,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,sDAK5B,CAAC;AAEH,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAE7C,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,QAAwC,CAAC;AACzE,eAAO,MAAM,oBAAoB,QAAyC,CAAC;AAE3E;;;;;GAKG;AACH,eAAO,MAAM,YAAY;aACvB,EAAE;aACF,IAAI,EAAE,gFAAgF;aACtF,GAAG;aACH,SAAS,EAAE,4EAA4E;aACvF,WAAW,EAAE,YAAY;CACjB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,WAAW;aACtB,WAAW;iBACT,IAAI,EAAE,2BAA2B;iBACjC,QAAQ;;aAEV,KAAK;iBACH,IAAI,EAAE,8CAA8C;iBACpD,QAAQ;;aAEV,SAAS;iBACP,IAAI,EAAE,iCAAiC;iBACvC,QAAQ;;aAEV,KAAK;iBACH,IAAI,EAAE,8CAA8C;iBACpD,QAAQ;;aAEV,MAAM;iBACJ,IAAI,EAAE,kCAAkC;iBACxC,QAAQ;;aAEV,WAAW;iBACT,IAAI,EAAE,6CAA6C;iBACnD,QAAQ;;aAEV,QAAQ;iBACN,IAAI,EAAE,wBAAwB;iBAC9B,QAAQ;;aAEV,SAAS;iBACP,IAAI,EAAE,sCAAsC;iBAC5C,QAAQ;;aAEV,IAAI;iBACF,IAAI,EAAE,iBAAiB;iBACvB,QAAQ;;aAEV,UAAU;iBACR,IAAI,EAAE,yCAAyC;iBAC/C,QAAQ;;aAEV,MAAM;iBACJ,IAAI,EAAE,sBAAsB;iBAC5B,QAAQ;;aAEV,SAAS;iBACP,IAAI,EAAE,oCAAoC;iBAC1C,QAAQ;;CAEF,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAC;AAajD,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,KAAK,EAAE,SAAS,CAAC;IACjB,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,QAAQ,EAAE,MAAM,CAAC;IACjB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,UAAU,CAqB1E;AAED,wFAAwF;AACxF,eAAO,MAAM,2BAA2B,2MACmJ,CAAC;AAE5L;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACvC,MAAM,GAAG,IAAI,CAYf;
|
|
1
|
+
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"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"}
|
package/dist/provenance.js
CHANGED
|
@@ -183,6 +183,7 @@ const DESCRICOES_IBGE = {
|
|
|
183
183
|
retrieval: "Diagnóstico de origem desta chamada (contrato v1.1): idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)",
|
|
184
184
|
citation: "Citação pronta para uso",
|
|
185
185
|
license: "Regime legal do dado",
|
|
186
|
+
field_sources: "Proveniência por sub-fonte (contrato v1.2): presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração",
|
|
186
187
|
};
|
|
187
188
|
/**
|
|
188
189
|
* Grafts descriptions onto a zod schema, node by node, from the JSON Schema
|
package/dist/provenance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ibge-br-mcp",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.6.0",
|
|
4
4
|
"mcpName": "io.github.SidneyBissoli/ibge-br-mcp",
|
|
5
5
|
"description": "MCP server giving AI assistants live, sourced access to Brazilian public data — geography, census, economy and health — from the official IBGE APIs. Exact figures with provenance, not approximations.",
|
|
6
6
|
"type": "module",
|
|
@@ -61,17 +61,17 @@
|
|
|
61
61
|
"license": "MIT",
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"@modelcontextprotocol/server": "^2.0.0",
|
|
64
|
-
"@sbissoli/mcp-provenance": "^0.
|
|
64
|
+
"@sbissoli/mcp-provenance": "^0.3.0",
|
|
65
65
|
"@sbissoli/mcp-search": "^0.9.0",
|
|
66
66
|
"@sbissoli/mcp-stats": "^0.3.0",
|
|
67
|
-
"@sbissoli/mcp-upstream": "^0.
|
|
67
|
+
"@sbissoli/mcp-upstream": "^0.4.0",
|
|
68
68
|
"zod": "^4.5.4"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@eslint/js": "^10.0.1",
|
|
72
72
|
"@modelcontextprotocol/client": "^2.0.0",
|
|
73
73
|
"@sbissoli/mcp-evals": "^0.1.0",
|
|
74
|
-
"@sbissoli/mcp-surface": "^0.
|
|
74
|
+
"@sbissoli/mcp-surface": "^0.3.0",
|
|
75
75
|
"@types/node": "^26.5.1",
|
|
76
76
|
"@vitest/coverage-v8": "^5.0.0",
|
|
77
77
|
"eslint": "^10.9.1",
|
package/README.pt-BR.md
DELETED
|
@@ -1,679 +0,0 @@
|
|
|
1
|
-
# ibge-br-mcp
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/ibge-br-mcp)
|
|
4
|
-
[](https://www.npmjs.com/package/ibge-br-mcp)
|
|
5
|
-
[](https://www.npmjs.com/package/ibge-br-mcp)
|
|
6
|
-
[](https://registry.modelcontextprotocol.io)
|
|
7
|
-
[](https://lobehub.com/mcp/sidneybissoli-ibge-br-mcp)
|
|
8
|
-
[](https://smithery.ai/server/sidneybissoli/ibge-br-mcp)
|
|
9
|
-
[](https://glama.ai/mcp/servers/@SidneyBissoli/ibge-br-mcp)
|
|
10
|
-
[](https://github.com/SidneyBissoli/ibge-br-mcp/actions/workflows/ci.yml)
|
|
11
|
-
[](https://github.com/SidneyBissoli/ibge-br-mcp/blob/main/vitest.config.ts)
|
|
12
|
-
[](https://github.com/SidneyBissoli/ibge-br-mcp)
|
|
13
|
-
[](https://github.com/sponsors/SidneyBissoli)
|
|
14
|
-
[](https://opensource.org/licenses/MIT)
|
|
15
|
-
|
|
16
|
-
**Dados públicos brasileiros ao vivo e exatos para o seu assistente de IA — com procedência, não chute.**
|
|
17
|
-
|
|
18
|
-
Pergunte a um LLM _"qual era a população de Belo Horizonte no Censo 2022?"_ e você recebe um número plausível, tirado do treino: talvez certo, talvez desatualizado, sem fonte. O `ibge-br-mcp` faz o seu assistente consultar as APIs oficiais do **IBGE** em tempo real — devolvendo o valor exato junto com a tabela e o período de onde ele veio.
|
|
19
|
-
|
|
20
|
-
🇺🇸 [Read in English](README.md)
|
|
21
|
-
|
|
22
|
-
Este servidor implementa o [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) para dar aos assistentes de IA acesso ao vivo e estruturado aos dados públicos geográficos, demográficos, econômicos e de saúde do Brasil — vindos das APIs do IBGE (inclusive os indicadores de saúde, servidos pelo SIDRA do IBGE).
|
|
23
|
-
|
|
24
|
-
## Veja na prática
|
|
25
|
-
|
|
26
|
-
Pergunte ao seu assistente, em português:
|
|
27
|
-
|
|
28
|
-
- *"Qual era a população de Belo Horizonte no Censo 2022?"* → `ibge_cidades` / `ibge_censo`
|
|
29
|
-
- *"Liste os municípios do Espírito Santo."* → `ibge_municipios`
|
|
30
|
-
- *"Compare o PIB das capitais do Sudeste."* → `ibge_comparar`
|
|
31
|
-
|
|
32
|
-
As respostas vêm ao vivo das APIs oficiais do IBGE — valores exatos com a tabela e o período de onde vieram, não números chutados do treino.
|
|
33
|
-
|
|
34
|
-
Quer ver uma análise inteira, e não uma resposta só? A
|
|
35
|
-
[**demo ponta a ponta**](docs/demo.pt-BR.md) percorre uma pergunta real — *qual
|
|
36
|
-
estado mais cresceu entre os Censos de 2010 e 2022, e o que puxou o crescimento*
|
|
37
|
-
— da primeira chamada à conclusão, com cada número como ele voltou. Os
|
|
38
|
-
[**exemplos práticos**](examples/README.pt-BR.md) são sete receitas mais curtas,
|
|
39
|
-
entre elas ranquear os 5.570 municípios numa chamada só.
|
|
40
|
-
|
|
41
|
-
## Recursos
|
|
42
|
-
|
|
43
|
-
- **23 ferramentas** cobrindo todos os principais domínios de dados do IBGE — 21 `ibge_*` de dados mais `search`/`fetch` para o Deep Research do ChatGPT
|
|
44
|
-
- **Resources de referência & prompts de análise** (catálogos MCP + templates prontos)
|
|
45
|
-
- **565 testes automatizados** — 88% de cobertura geral, 92% nas tools
|
|
46
|
-
- **Cache automático** com TTL configurável para performance otimizada
|
|
47
|
-
- **Mecanismo de retry** com backoff exponencial para resiliência de rede
|
|
48
|
-
- **Validação abrangente** para todos os parâmetros de entrada
|
|
49
|
-
- **Tratamento de erros padronizado** com sugestões úteis
|
|
50
|
-
- **Suporte completo a TypeScript** com tipagem estrita
|
|
51
|
-
|
|
52
|
-
📖 **Artigo:** [Como achar a tabela certa no SIDRA — e como saber que é a certa](docs/artigo-sidra-tabela-certa.pt-BR.md) — os três passos da busca, os metadados que decidem, um exemplo completo com dado de 2022 e as quatro armadilhas que mais custam caro. Também publicado no site: [sidneybissoli.com](https://sidneybissoli.com/blog/posts/sidra-tabela-certa/).
|
|
53
|
-
|
|
54
|
-
🔌 **Tutorial:** [Consultando o SIDRA por MCP no Claude e no ChatGPT](https://sidneybissoli.com/blog/posts/sidra-via-mcp/) — como conectar este servidor no claude.ai, Claude Desktop, Claude Code, ChatGPT (modo desenvolvedor e Deep Research), Cursor, VS Code e Gemini CLI, e uma consulta real de ponta a ponta com o bloco de procedência que ele devolve. [In English](https://sidneybissoli.com/en/blog/posts/sidra-via-mcp/).
|
|
55
|
-
|
|
56
|
-
## Procedência dos dados
|
|
57
|
-
|
|
58
|
-
Desde a v3.3.0 toda resposta bem-sucedida carrega um **bloco de procedência**
|
|
59
|
-
([contrato do portfólio v1.0](https://www.npmjs.com/package/@sbissoli/mcp-provenance)),
|
|
60
|
-
de modo que cada número é citavel, auditável e reproduzível. O bloco sai por
|
|
61
|
-
três canais:
|
|
62
|
-
|
|
63
|
-
1. `structuredContent.provenance` (analisável, visível ao modelo) — exatamente
|
|
64
|
-
seis chaves: `source` (a API do IBGE consultada), `source_url` (URL canônica
|
|
65
|
-
que reproduz a consulta), `data_vintage` (período de referência quando a
|
|
66
|
-
fonte publica um; `null` caso contrário), `retrieved_at` (o instante REAL da
|
|
67
|
-
extração na origem, preservado através do cache, horário de Brasília),
|
|
68
|
-
`citation` ("Fonte: IBGE — [pesquisa/tabela], [URL], extraído em [data].") e
|
|
69
|
-
`license` — mais `attribution`, a lista canônica de URLs de origem.
|
|
70
|
-
2. `_meta` sob `br.com.sidneybissoli.ibge/provenance` e `.../attribution`
|
|
71
|
-
(espelho fora de banda para auditoria/UI, custo zero em tokens do modelo).
|
|
72
|
-
3. Um rodapé de texto compacto anexado ao Markdown, para clientes só-texto.
|
|
73
|
-
|
|
74
|
-
As APIs do IBGE não declaram licença própria; o regime jurídico é o arcabouço
|
|
75
|
-
brasileiro de dados abertos — Lei 12.527/2011 (LAI) e Decreto 8.777/2016
|
|
76
|
-
(reuso irrestrito, uso livre, obrigação limitada a creditar a fonte). Respostas
|
|
77
|
-
em modo estatístico (`estatisticas=true`) e `ibge_comparar` vêm marcadas como
|
|
78
|
-
`derived`, com nota explicativa no bloco canônico, porque os agregados são
|
|
79
|
-
calculados no servidor a partir dos valores brutos do IBGE.
|
|
80
|
-
|
|
81
|
-
## Ferramentas Disponíveis
|
|
82
|
-
|
|
83
|
-
### Localidades e Geografia
|
|
84
|
-
| Ferramenta | Descrição |
|
|
85
|
-
|:-----------|:----------|
|
|
86
|
-
| `ibge_estados` | Lista estados brasileiros com filtro por região |
|
|
87
|
-
| `ibge_municipios` | Lista municípios por estado ou busca por nome |
|
|
88
|
-
| `ibge_localidade` | Obtém detalhes de uma localidade pelo código IBGE |
|
|
89
|
-
| `ibge_geocodigo` | Decodifica códigos IBGE ou busca códigos por nome |
|
|
90
|
-
| `ibge_vizinhos` | Encontra municípios vizinhos |
|
|
91
|
-
|
|
92
|
-
### Dados Estatísticos (SIDRA)
|
|
93
|
-
| Ferramenta | Descrição |
|
|
94
|
-
|:-----------|:----------|
|
|
95
|
-
| `ibge_sidra` | Consulta tabelas SIDRA (Censo, PNAD, PIB, etc.) |
|
|
96
|
-
| `ibge_sidra_tabelas` | Lista e busca tabelas SIDRA disponíveis (sem distinção de acento; a palavra de todo dia é traduzida para a do IBGE, e a resposta diz que traduziu) |
|
|
97
|
-
| `ibge_sidra_metadados` | Obtém metadados de tabelas (variáveis, períodos, níveis) |
|
|
98
|
-
| `ibge_pesquisas` | Lista pesquisas do IBGE e suas tabelas |
|
|
99
|
-
|
|
100
|
-
### Indicadores Econômicos e Sociais
|
|
101
|
-
| Ferramenta | Descrição |
|
|
102
|
-
|:-----------|:----------|
|
|
103
|
-
| `ibge_indicadores` | Indicadores econômicos e sociais (PIB, IPCA, desemprego) |
|
|
104
|
-
| `ibge_censo` | Dados censitários (1970-2022) com 16 temas |
|
|
105
|
-
| `ibge_comparar` | Compara indicadores entre localidades com rankings |
|
|
106
|
-
|
|
107
|
-
### Dados Municipais (Cidades@)
|
|
108
|
-
| Ferramenta | Descrição |
|
|
109
|
-
|:-----------|:----------|
|
|
110
|
-
| `ibge_cidades` | Indicadores municipais (população, IDH, PIB per capita, etc.) |
|
|
111
|
-
|
|
112
|
-
### Dados Internacionais
|
|
113
|
-
| Ferramenta | Descrição |
|
|
114
|
-
|:-----------|:----------|
|
|
115
|
-
| `ibge_paises` | Dados de países seguindo metodologia ONU M49 |
|
|
116
|
-
|
|
117
|
-
### Demografia
|
|
118
|
-
| Ferramenta | Descrição |
|
|
119
|
-
|:-----------|:----------|
|
|
120
|
-
| `ibge_nomes` | Frequência e rankings de nomes no Brasil |
|
|
121
|
-
|
|
122
|
-
### Classificações
|
|
123
|
-
| Ferramenta | Descrição |
|
|
124
|
-
|:-----------|:----------|
|
|
125
|
-
| `ibge_cnae` | CNAE (Classificação Nacional de Atividades Econômicas) |
|
|
126
|
-
|
|
127
|
-
### Mapas e Malhas Geográficas
|
|
128
|
-
| Ferramenta | Descrição |
|
|
129
|
-
|:-----------|:----------|
|
|
130
|
-
| `ibge_malhas` | Malhas geográficas (GeoJSON, TopoJSON, SVG) |
|
|
131
|
-
| `ibge_malhas_tema` | O que um recorte temático contém (biomas, Amazônia Legal, semiárido, zona costeira, faixa de fronteira, regiões metropolitanas, RIDEs) + a URL para baixar a geometria |
|
|
132
|
-
|
|
133
|
-
### Saúde
|
|
134
|
-
| Ferramenta | Descrição |
|
|
135
|
-
|:-----------|:----------|
|
|
136
|
-
| `ibge_datasaude` | Indicadores de saúde via SIDRA do IBGE |
|
|
137
|
-
|
|
138
|
-
### Notícias e Calendário
|
|
139
|
-
| Ferramenta | Descrição |
|
|
140
|
-
|:-----------|:----------|
|
|
141
|
-
| `ibge_noticias` | Notícias e releases do IBGE |
|
|
142
|
-
| `ibge_calendario` | Calendário de divulgações e coletas do IBGE |
|
|
143
|
-
|
|
144
|
-
### Deep Research do ChatGPT
|
|
145
|
-
| Ferramenta | Descrição |
|
|
146
|
-
|:-----------|:----------|
|
|
147
|
-
| `search` | Busca no catálogo do IBGE (tabelas SIDRA, municípios, indicadores conhecidos) — contrato Deep Research da OpenAI |
|
|
148
|
-
| `fetch` | Devolve um documento do catálogo (metadados da tabela, hierarquia + população do município, série do indicador) com a URL pública para citação |
|
|
149
|
-
|
|
150
|
-
As duas são as únicas ferramentas sem o prefixo `ibge_`: os nomes são fixados pelo contrato da OpenAI. Para consultar dados, continue usando as `ibge_*`.
|
|
151
|
-
|
|
152
|
-
## Qual ferramenta usar?
|
|
153
|
-
|
|
154
|
-
Com 23 ferramentas, várias podem tocar no mesmo assunto. Guia rápido para as sobreposições comuns:
|
|
155
|
-
|
|
156
|
-
### População e demografia
|
|
157
|
-
|
|
158
|
-
| Você quer… | Use |
|
|
159
|
-
|:-----------|:----|
|
|
160
|
-
| Painel de um único município/UF (população, IDH, PIB…) | `ibge_cidades` |
|
|
161
|
-
| Dados censitários ou série histórica (1970–2022) | `ibge_censo` |
|
|
162
|
-
| Ranquear/comparar 2–10 localidades num indicador | `ibge_comparar` |
|
|
163
|
-
| Série temporal de indicador macro (PIB, IPCA, desemprego…) | `ibge_indicadores` |
|
|
164
|
-
| Uma tabela SIDRA específica / controle fino | `ibge_sidra` |
|
|
165
|
-
| O maior/menor/média/mediana de uma tabela inteira | `ibge_sidra`/`ibge_censo`/`ibge_indicadores`/`ibge_datasaude` com `estatisticas=true` |
|
|
166
|
-
|
|
167
|
-
### Indicadores econômicos
|
|
168
|
-
|
|
169
|
-
| Você quer… | Use |
|
|
170
|
-
|:-----------|:----|
|
|
171
|
-
| IPCA, INPC, PIB, desemprego (IBGE, fonte primária) | `ibge_indicadores` |
|
|
172
|
-
|
|
173
|
-
### Localidades e códigos
|
|
174
|
-
|
|
175
|
-
| Você quer… | Use |
|
|
176
|
-
|:-----------|:----|
|
|
177
|
-
| Listar/buscar municípios | `ibge_municipios` |
|
|
178
|
-
| Listar estados | `ibge_estados` |
|
|
179
|
-
| Resolver nome→código em qualquer nível, ou decodificar a estrutura de um código | `ibge_geocodigo` |
|
|
180
|
-
| Ficha completa de uma localidade da qual você já tem o código | `ibge_localidade` |
|
|
181
|
-
| Municípios vizinhos | `ibge_vizinhos` |
|
|
182
|
-
|
|
183
|
-
### Fluxo SIDRA
|
|
184
|
-
|
|
185
|
-
Descobrir → inspecionar → consultar: `ibge_pesquisas` / `ibge_sidra_tabelas` (achar a tabela) → `ibge_sidra_metadados` (sua estrutura) → `ibge_sidra` (consultar). Para dados comuns, os atalhos acima (`ibge_censo`, `ibge_indicadores`, `ibge_comparar`, `ibge_cidades`) costumam ser mais fáceis.
|
|
186
|
-
|
|
187
|
-
### Pergunte com as suas palavras, não com as do IBGE
|
|
188
|
-
|
|
189
|
-
O IBGE nomeia as tabelas no português estatístico oficial, e `ibge_sidra_tabelas` casava o que
|
|
190
|
-
você escreveu contra o nome da tabela por substring pura, acento incluído — então `populacao`
|
|
191
|
-
(sem til, como todo mundo digita) devolvia **zero**, e a palavra de todo dia para um conceito que
|
|
192
|
-
o IBGE chama de outro nome também. Medido nos 9.336 agregados da API de Agregados (16/09/2026)
|
|
193
|
-
e consertado na 5.1.0: os dois lados são normalizados, toda palavra precisa casar (AND) e a
|
|
194
|
-
palavra de todo dia é expandida para a do IBGE — a resposta diz isso em `notas_vocabulario`, e
|
|
195
|
-
zero resultado vem com a saída.
|
|
196
|
-
|
|
197
|
-
| você pergunta | achava | o IBGE escreve | acha |
|
|
198
|
-
| --- | ---: | --- | ---: |
|
|
199
|
-
| `populacao`, `ocupacao`, `instrucao`, `saude`, `area`, `agua` | 0 | população, ocupação, instrução, saúde, área, água | 520, 364, 698, 518, 956, 256 |
|
|
200
|
-
| `desemprego` | 4 | desocupação | 33 |
|
|
201
|
-
| `renda` | 72 | rendimento | 1.126 |
|
|
202
|
-
| `inflação` | 0 | IPCA, INPC, preços | 37, 15, 75 |
|
|
203
|
-
| `moradia`, `casa` | 14, 101 | domicílio | 3.606 |
|
|
204
|
-
| `cidade` | 110 | município | 455 |
|
|
205
|
-
| `natalidade`, `mortes` | 0, 1 | nascidos vivos, óbitos | 84, 33 |
|
|
206
|
-
| `gênero` | 40 | sexo | 2.020 |
|
|
207
|
-
| `negros` | 0 | cor ou raça | 1.134 |
|
|
208
|
-
| `universidade`, `faculdade` | 0 | ensino superior | 12 |
|
|
209
|
-
| `luz`, `fábrica`, `tabagismo`, `convênio`, `idosos` | 0 | energia elétrica, indústria, fumante, plano de saúde, 60 anos | 43, 248, 94, 101, 89 |
|
|
210
|
-
|
|
211
|
-
Só entra par **medido** (`src/vocabulario.ts`, com as contagens no cabeçalho): a palavra
|
|
212
|
-
perguntada ausente do catálogo, a palavra do IBGE presente. O que o IBGE não publica como
|
|
213
|
-
agregado fica de fora e segue devolvendo zero — `turismo`, `aposentadoria`, `frota` — porque
|
|
214
|
-
apelido para dado inexistente promete o que a fonte não tem. A mesma tabela alimenta o índice de
|
|
215
|
-
`search` (Deep Research), que recebe a palavra de todo dia como keyword da tabela cujo nome traz
|
|
216
|
-
a palavra do IBGE.
|
|
217
|
-
|
|
218
|
-
### Mapas (malhas)
|
|
219
|
-
|
|
220
|
-
| Você quer… | Use |
|
|
221
|
-
|:-----------|:----|
|
|
222
|
-
| Contornos administrativos (Brasil/região/UF/município) | `ibge_malhas` |
|
|
223
|
-
| Áreas temáticas (biomas, Amazônia Legal, semiárido, regiões metropolitanas) | `ibge_malhas_tema` (WFS do IBGE Geosserviços — a API de Malhas não publica esses recortes) |
|
|
224
|
-
|
|
225
|
-
## Instalação
|
|
226
|
-
|
|
227
|
-
### Pré-requisitos
|
|
228
|
-
|
|
229
|
-
- Node.js 22.x ou superior (`engines.node`)
|
|
230
|
-
- npm ou yarn
|
|
231
|
-
|
|
232
|
-
### Via npm (recomendado)
|
|
233
|
-
|
|
234
|
-
```bash
|
|
235
|
-
npm install -g ibge-br-mcp
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
### A partir do código-fonte
|
|
239
|
-
|
|
240
|
-
```bash
|
|
241
|
-
# Clone o repositório
|
|
242
|
-
git clone https://github.com/SidneyBissoli/ibge-br-mcp.git
|
|
243
|
-
cd ibge-br-mcp
|
|
244
|
-
|
|
245
|
-
# Instale as dependências
|
|
246
|
-
npm install
|
|
247
|
-
|
|
248
|
-
# Compile o projeto
|
|
249
|
-
npm run build
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
## Configuração
|
|
253
|
-
|
|
254
|
-
### Endpoint remoto (sem instalar)
|
|
255
|
-
|
|
256
|
-
O servidor também está hospedado, com as mesmas ferramentas, em Streamable HTTP e sem chave:
|
|
257
|
-
|
|
258
|
-
```
|
|
259
|
-
https://ibge.sidneybissoli.com/mcp
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
Serve para qualquer cliente que aceite servidor MCP remoto — conector personalizado no claude.ai (Configurações → Conectores → Adicionar conector personalizado), `claude mcp add --transport http ibge https://ibge.sidneybissoli.com/mcp` no Claude Code, app no ChatGPT, `mcp.json` do Cursor e do VS Code. O passo a passo de cada cliente está no [tutorial](https://sidneybissoli.com/blog/posts/sidra-via-mcp/). As seções abaixo cobrem a forma local, via `npx`.
|
|
263
|
-
|
|
264
|
-
### Claude Desktop
|
|
265
|
-
|
|
266
|
-
Adicione ao seu arquivo de configuração do Claude Desktop (`claude_desktop_config.json`):
|
|
267
|
-
|
|
268
|
-
```json
|
|
269
|
-
{
|
|
270
|
-
"mcpServers": {
|
|
271
|
-
"ibge-br-mcp": {
|
|
272
|
-
"command": "npx",
|
|
273
|
-
"args": ["-y", "ibge-br-mcp"]
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
Ou se instalado a partir do código-fonte:
|
|
280
|
-
|
|
281
|
-
```json
|
|
282
|
-
{
|
|
283
|
-
"mcpServers": {
|
|
284
|
-
"ibge-br-mcp": {
|
|
285
|
-
"command": "node",
|
|
286
|
-
"args": ["/caminho/para/ibge-br-mcp/dist/index.js"]
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
### Claude Code
|
|
293
|
-
|
|
294
|
-
```json
|
|
295
|
-
{
|
|
296
|
-
"mcpServers": {
|
|
297
|
-
"ibge-br-mcp": {
|
|
298
|
-
"command": "npx",
|
|
299
|
-
"args": ["-y", "ibge-br-mcp"]
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
### ChatGPT (Deep Research)
|
|
306
|
-
|
|
307
|
-
O Deep Research do ChatGPT (e o Company Knowledge, e os workflows de pesquisa da API Responses) só usa um servidor MCP que exponha exatamente `search` e `fetch` — este servidor expõe as duas, além das `ibge_*`. Aponte o conector para o endpoint hospedado, sem chave:
|
|
308
|
-
|
|
309
|
-
```
|
|
310
|
-
https://ibge.sidneybissoli.com/mcp
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
`search` ranqueia a consulta contra tabelas SIDRA, municípios e indicadores conhecidos e devolve `{ id, title, url }`; `fetch` devolve o documento em Markdown legível com a URL pública canônica (sidra.ibge.gov.br ou cidades.ibge.gov.br), que é o que o ChatGPT cita. As duas carregam o mesmo bloco de proveniência das demais ferramentas. No modo desenvolvedor do ChatGPT (Configurações → Segurança e login → Modo desenvolvedor) qualquer ferramenta pode ser chamada — para dados, as `ibge_*` continuam sendo as certas.
|
|
314
|
-
|
|
315
|
-
## Exemplos de Uso das Ferramentas
|
|
316
|
-
|
|
317
|
-
### ibge_estados
|
|
318
|
-
|
|
319
|
-
Lista todos os estados brasileiros.
|
|
320
|
-
|
|
321
|
-
```
|
|
322
|
-
# Listar todos os estados
|
|
323
|
-
ibge_estados
|
|
324
|
-
|
|
325
|
-
# Estados da região Nordeste
|
|
326
|
-
ibge_estados(regiao="NE")
|
|
327
|
-
|
|
328
|
-
# Estados ordenados por sigla
|
|
329
|
-
ibge_estados(ordenar="sigla")
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
### ibge_municipios
|
|
333
|
-
|
|
334
|
-
Lista municípios brasileiros.
|
|
335
|
-
|
|
336
|
-
```
|
|
337
|
-
# Municípios do estado de São Paulo
|
|
338
|
-
ibge_municipios(uf="SP")
|
|
339
|
-
|
|
340
|
-
# Buscar municípios por nome
|
|
341
|
-
ibge_municipios(busca="Campinas")
|
|
342
|
-
|
|
343
|
-
# Municípios de MG contendo "Belo"
|
|
344
|
-
ibge_municipios(uf="MG", busca="Belo")
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
### ibge_cidades
|
|
348
|
-
|
|
349
|
-
Consulta indicadores municipais (similar ao portal Cidades@).
|
|
350
|
-
|
|
351
|
-
```
|
|
352
|
-
# Panorama de São Paulo
|
|
353
|
-
ibge_cidades(tipo="panorama", municipio="3550308")
|
|
354
|
-
|
|
355
|
-
# Histórico populacional
|
|
356
|
-
ibge_cidades(tipo="historico", municipio="3550308", indicador="populacao")
|
|
357
|
-
|
|
358
|
-
# Listar pesquisas disponíveis
|
|
359
|
-
ibge_cidades(tipo="pesquisas")
|
|
360
|
-
```
|
|
361
|
-
|
|
362
|
-
**Indicadores disponíveis:** populacao, area, densidade, pib_per_capita, idh, escolarizacao, mortalidade, salario_medio, receitas, despesas
|
|
363
|
-
|
|
364
|
-
### ibge_paises
|
|
365
|
-
|
|
366
|
-
Consulta dados internacionais de países.
|
|
367
|
-
|
|
368
|
-
```
|
|
369
|
-
# Listar todos os países
|
|
370
|
-
ibge_paises(tipo="listar")
|
|
371
|
-
|
|
372
|
-
# Detalhes do Brasil
|
|
373
|
-
ibge_paises(tipo="detalhes", pais="BR")
|
|
374
|
-
|
|
375
|
-
# Buscar países
|
|
376
|
-
ibge_paises(tipo="buscar", busca="Argentina")
|
|
377
|
-
|
|
378
|
-
# Países das Américas
|
|
379
|
-
ibge_paises(tipo="listar", regiao="americas")
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
**Regiões:** americas, europa, africa, asia, oceania
|
|
383
|
-
|
|
384
|
-
### ibge_sidra
|
|
385
|
-
|
|
386
|
-
Consulta tabelas SIDRA (Sistema IBGE de Recuperação Automática).
|
|
387
|
-
|
|
388
|
-
```
|
|
389
|
-
# População do Brasil em 2023
|
|
390
|
-
ibge_sidra(tabela="6579", periodos="2023")
|
|
391
|
-
|
|
392
|
-
# População por estado
|
|
393
|
-
ibge_sidra(tabela="6579", nivel_territorial="3", periodos="2023")
|
|
394
|
-
|
|
395
|
-
# Censo 2022 para o município de São Paulo
|
|
396
|
-
ibge_sidra(tabela="9514", nivel_territorial="6", localidades="3550308")
|
|
397
|
-
```
|
|
398
|
-
|
|
399
|
-
**Tabelas comuns:**
|
|
400
|
-
| Código | Descrição |
|
|
401
|
-
|-------:|:----------|
|
|
402
|
-
| 6579 | Estimativas populacionais (anual) |
|
|
403
|
-
| 9514 | População Censo 2022 |
|
|
404
|
-
| 4714 | Taxa de desemprego (PNAD) |
|
|
405
|
-
| 6706 | PIB a preços correntes |
|
|
406
|
-
|
|
407
|
-
**Níveis territoriais:**
|
|
408
|
-
| Código | Nível |
|
|
409
|
-
|-------:|:------|
|
|
410
|
-
| 1 | Brasil |
|
|
411
|
-
| 2 | Região (Norte, Nordeste, etc.) |
|
|
412
|
-
| 3 | Estado (UF) |
|
|
413
|
-
| 6 | Município |
|
|
414
|
-
| 7 | Região Metropolitana |
|
|
415
|
-
| 106 | Região de Saúde |
|
|
416
|
-
| 127 | Amazônia Legal |
|
|
417
|
-
| 128 | Semiárido |
|
|
418
|
-
|
|
419
|
-
**Modo estatístico** (também em `ibge_censo`, `ibge_indicadores`,
|
|
420
|
-
`ibge_datasaude`): para perguntas de maior/menor/média/mediana/distribuição/
|
|
421
|
-
ranking, passe `estatisticas=true` — o servidor computa a distribuição completa
|
|
422
|
-
(mínimo/máximo/média/mediana/desvio-padrão/percentis rotulados) sobre **todos**
|
|
423
|
-
os registros, antes da paginação, e devolve rankings `top`/`bottom` (`topN`,
|
|
424
|
-
padrão 10). `agruparPor="<rótulo da coluna>"` ranqueia os grupos por soma
|
|
425
|
-
decrescente, cada um com sua mini-distribuição.
|
|
426
|
-
|
|
427
|
-
```
|
|
428
|
-
# Qual estado tem a maior população estimada?
|
|
429
|
-
ibge_sidra(tabela="6579", nivel_territorial="3", estatisticas=true)
|
|
430
|
-
|
|
431
|
-
# Distribuição da população do Censo 2022 agrupada por UF
|
|
432
|
-
ibge_censo(ano="2022", tema="populacao", nivel_territorial="3", estatisticas=true, agruparPor="Unidade da Federação")
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
### ibge_censo
|
|
436
|
-
|
|
437
|
-
Consulta dados censitários (1970-2022).
|
|
438
|
-
|
|
439
|
-
```
|
|
440
|
-
# População Censo 2022
|
|
441
|
-
ibge_censo(ano="2022", tema="populacao")
|
|
442
|
-
|
|
443
|
-
# Série histórica de população
|
|
444
|
-
ibge_censo(ano="todos", tema="populacao")
|
|
445
|
-
|
|
446
|
-
# Alfabetização por estado em 2010
|
|
447
|
-
ibge_censo(ano="2010", tema="alfabetizacao", nivel_territorial="3")
|
|
448
|
-
```
|
|
449
|
-
|
|
450
|
-
**Temas disponíveis:** populacao, alfabetizacao, domicilios, idade_sexo, religiao, cor_raca, rendimento, migracao, educacao, trabalho
|
|
451
|
-
|
|
452
|
-
### ibge_indicadores
|
|
453
|
-
|
|
454
|
-
Consulta indicadores econômicos e sociais.
|
|
455
|
-
|
|
456
|
-
```
|
|
457
|
-
# PIB
|
|
458
|
-
ibge_indicadores(indicador="pib")
|
|
459
|
-
|
|
460
|
-
# IPCA últimos 12 meses
|
|
461
|
-
ibge_indicadores(indicador="ipca", periodos="last 12")
|
|
462
|
-
|
|
463
|
-
# Desemprego por estado
|
|
464
|
-
ibge_indicadores(indicador="desemprego", nivel_territorial="3")
|
|
465
|
-
|
|
466
|
-
# Listar todos os indicadores
|
|
467
|
-
ibge_indicadores(indicador="listar")
|
|
468
|
-
```
|
|
469
|
-
|
|
470
|
-
**Indicadores disponíveis:**
|
|
471
|
-
| Categoria | Indicadores |
|
|
472
|
-
|:----------|:------------|
|
|
473
|
-
| Econômicos | pib, pib_variacao, pib_per_capita, industria, comercio, servicos |
|
|
474
|
-
| Preços | ipca, ipca_acumulado, inpc |
|
|
475
|
-
| Trabalho | desemprego, ocupacao, rendimento, informalidade |
|
|
476
|
-
| População | populacao, densidade |
|
|
477
|
-
| Agropecuária | agricultura, pecuaria |
|
|
478
|
-
|
|
479
|
-
### ibge_nomes
|
|
480
|
-
|
|
481
|
-
Consulta frequência e rankings de nomes.
|
|
482
|
-
|
|
483
|
-
```
|
|
484
|
-
# Frequência de "Maria"
|
|
485
|
-
ibge_nomes(tipo="frequencia", nomes="Maria")
|
|
486
|
-
|
|
487
|
-
# Comparar nomes
|
|
488
|
-
ibge_nomes(tipo="frequencia", nomes="João,José,Pedro")
|
|
489
|
-
|
|
490
|
-
# Ranking de nomes nos anos 2000
|
|
491
|
-
ibge_nomes(tipo="ranking", decada=2000)
|
|
492
|
-
|
|
493
|
-
# Ranking de nomes femininos
|
|
494
|
-
ibge_nomes(tipo="ranking", sexo="F")
|
|
495
|
-
```
|
|
496
|
-
|
|
497
|
-
### ibge_malhas
|
|
498
|
-
|
|
499
|
-
Obtém malhas geográficas (mapas).
|
|
500
|
-
|
|
501
|
-
```
|
|
502
|
-
# Brasil com estados
|
|
503
|
-
ibge_malhas(localidade="BR", resolucao="2")
|
|
504
|
-
|
|
505
|
-
# São Paulo com municípios
|
|
506
|
-
ibge_malhas(localidade="SP", resolucao="5")
|
|
507
|
-
|
|
508
|
-
# Município específico
|
|
509
|
-
ibge_malhas(localidade="3550308")
|
|
510
|
-
|
|
511
|
-
# Formato SVG
|
|
512
|
-
ibge_malhas(localidade="BR", formato="svg")
|
|
513
|
-
```
|
|
514
|
-
|
|
515
|
-
**Níveis de resolução:**
|
|
516
|
-
| Valor | Divisões Internas |
|
|
517
|
-
|:-----:|:------------------|
|
|
518
|
-
| 0 | Sem divisões (apenas contorno) |
|
|
519
|
-
| 2 | Estados |
|
|
520
|
-
| 5 | Municípios |
|
|
521
|
-
|
|
522
|
-
### ibge_datasaude
|
|
523
|
-
|
|
524
|
-
Consulta indicadores de saúde servidos pelo SIDRA do IBGE (alguns originalmente do DataSUS, ex.: óbitos e nascidos vivos).
|
|
525
|
-
|
|
526
|
-
```
|
|
527
|
-
# Mortalidade infantil no Brasil
|
|
528
|
-
ibge_datasaude(indicador="mortalidade_infantil")
|
|
529
|
-
|
|
530
|
-
# Expectativa de vida por estado
|
|
531
|
-
ibge_datasaude(indicador="esperanca_vida", nivel_territorial="3")
|
|
532
|
-
|
|
533
|
-
# Listar indicadores
|
|
534
|
-
ibge_datasaude(indicador="listar")
|
|
535
|
-
```
|
|
536
|
-
|
|
537
|
-
**Indicadores disponíveis:** mortalidade_infantil, esperanca_vida, nascidos_vivos, obitos, fecundidade, saneamento_agua, saneamento_esgoto, plano_saude
|
|
538
|
-
|
|
539
|
-
## APIs Utilizadas
|
|
540
|
-
|
|
541
|
-
### APIs do IBGE
|
|
542
|
-
|
|
543
|
-
- **Localidades**: `servicodados.ibge.gov.br/api/v1/localidades`
|
|
544
|
-
- **Nomes**: `servicodados.ibge.gov.br/api/v2/censos/nomes`
|
|
545
|
-
- **Agregados/SIDRA**: `servicodados.ibge.gov.br/api/v3/agregados` (as tabelas do SIDRA são lidas aqui com `view=flat`; o `apisidra.ibge.gov.br` está atrás de um desafio do Cloudflare só para navegador desde 15/09/2026)
|
|
546
|
-
- **Malhas**: `servicodados.ibge.gov.br/api/v3/malhas`
|
|
547
|
-
- **Notícias**: `servicodados.ibge.gov.br/api/v3/noticias`
|
|
548
|
-
- **População**: `servicodados.ibge.gov.br/api/v1/projecoes/populacao`
|
|
549
|
-
- **CNAE**: `servicodados.ibge.gov.br/api/v2/cnae`
|
|
550
|
-
- **Calendário**: `servicodados.ibge.gov.br/api/v3/calendario`
|
|
551
|
-
- **Países**: `servicodados.ibge.gov.br/api/v1/paises`
|
|
552
|
-
- **Pesquisas**: `servicodados.ibge.gov.br/api/v1/pesquisas`
|
|
553
|
-
|
|
554
|
-
## Desenvolvimento
|
|
555
|
-
|
|
556
|
-
```bash
|
|
557
|
-
# Compilar
|
|
558
|
-
npm run build
|
|
559
|
-
|
|
560
|
-
# Modo watch
|
|
561
|
-
npm run watch
|
|
562
|
-
|
|
563
|
-
# Executar testes
|
|
564
|
-
npm test
|
|
565
|
-
|
|
566
|
-
# Executar testes em modo watch
|
|
567
|
-
npm run test:watch
|
|
568
|
-
|
|
569
|
-
# Executar testes com cobertura
|
|
570
|
-
npm run test:coverage
|
|
571
|
-
|
|
572
|
-
# Linter
|
|
573
|
-
npm run lint
|
|
574
|
-
|
|
575
|
-
# Formatar código
|
|
576
|
-
npm run format
|
|
577
|
-
|
|
578
|
-
# Testar com MCP inspector
|
|
579
|
-
npm run inspector
|
|
580
|
-
```
|
|
581
|
-
|
|
582
|
-
## Estrutura do Projeto
|
|
583
|
-
|
|
584
|
-
```
|
|
585
|
-
ibge-br-mcp/
|
|
586
|
-
├── src/
|
|
587
|
-
│ ├── index.ts # Servidor MCP principal
|
|
588
|
-
│ ├── types.ts # Tipos TypeScript
|
|
589
|
-
│ ├── config.ts # Configuração e constantes
|
|
590
|
-
│ ├── cache.ts # Sistema de cache de requisições
|
|
591
|
-
│ ├── retry.ts # Retry com backoff exponencial
|
|
592
|
-
│ ├── errors.ts # Tratamento de erros padronizado
|
|
593
|
-
│ ├── validation.ts # Helpers de validação de entrada
|
|
594
|
-
│ ├── metrics.ts # Métricas e logging
|
|
595
|
-
│ ├── utils/
|
|
596
|
-
│ │ └── formatters.ts # Utilitários de formatação
|
|
597
|
-
│ └── tools/
|
|
598
|
-
│ ├── index.ts # Exports das ferramentas
|
|
599
|
-
│ ├── estados.ts # ibge_estados
|
|
600
|
-
│ ├── municipios.ts # ibge_municipios
|
|
601
|
-
│ ├── localidade.ts # ibge_localidade
|
|
602
|
-
│ ├── geocodigo.ts # ibge_geocodigo
|
|
603
|
-
│ ├── censo.ts # ibge_censo
|
|
604
|
-
│ ├── sidra.ts # ibge_sidra
|
|
605
|
-
│ ├── sidra-tabelas.ts # ibge_sidra_tabelas
|
|
606
|
-
│ ├── sidra-metadados.ts# ibge_sidra_metadados
|
|
607
|
-
│ ├── indicadores.ts # ibge_indicadores
|
|
608
|
-
│ ├── cnae.ts # ibge_cnae
|
|
609
|
-
│ ├── calendario.ts # ibge_calendario
|
|
610
|
-
│ ├── comparar.ts # ibge_comparar
|
|
611
|
-
│ ├── malhas.ts # ibge_malhas
|
|
612
|
-
│ ├── malhas-tema.ts # ibge_malhas_tema
|
|
613
|
-
│ ├── vizinhos.ts # ibge_vizinhos
|
|
614
|
-
│ ├── datasaude.ts # ibge_datasaude
|
|
615
|
-
│ ├── pesquisas.ts # ibge_pesquisas
|
|
616
|
-
│ ├── nomes.ts # ibge_nomes
|
|
617
|
-
│ ├── noticias.ts # ibge_noticias
|
|
618
|
-
│ ├── paises.ts # ibge_paises
|
|
619
|
-
│ └── cidades.ts # ibge_cidades
|
|
620
|
-
├── tests/ # Arquivos de teste
|
|
621
|
-
├── dist/ # Arquivos compilados
|
|
622
|
-
├── package.json
|
|
623
|
-
├── tsconfig.json
|
|
624
|
-
├── vitest.config.ts
|
|
625
|
-
└── README.md
|
|
626
|
-
```
|
|
627
|
-
|
|
628
|
-
## Testes
|
|
629
|
-
|
|
630
|
-
O projeto inclui uma suíte de testes abrangente com 565 testes cobrindo:
|
|
631
|
-
|
|
632
|
-
- Funções de validação
|
|
633
|
-
- Mecanismo de retry
|
|
634
|
-
- Utilitários de formatação
|
|
635
|
-
- Tratamento de erros
|
|
636
|
-
- Operações de cache
|
|
637
|
-
- Testes de integração com mocks
|
|
638
|
-
|
|
639
|
-
```bash
|
|
640
|
-
npm test
|
|
641
|
-
```
|
|
642
|
-
|
|
643
|
-
## Garantia de Qualidade
|
|
644
|
-
|
|
645
|
-
Este projeto mantém altos padrões de qualidade de código:
|
|
646
|
-
|
|
647
|
-
- **565 testes automatizados** cobrindo validação, cache, retry, formatação e integrações
|
|
648
|
-
- **88% de cobertura de testes no total** — os módulos cache e validation acima de 97%
|
|
649
|
-
- **ESLint** para linting de código sem warnings
|
|
650
|
-
- **Prettier** para formatação consistente
|
|
651
|
-
- **TypeScript modo strict** para segurança de tipos
|
|
652
|
-
- **CI/CD automatizado** via GitHub Actions
|
|
653
|
-
|
|
654
|
-
Execute os testes localmente:
|
|
655
|
-
```bash
|
|
656
|
-
# Rodar todos os testes
|
|
657
|
-
npm test
|
|
658
|
-
|
|
659
|
-
# Rodar testes com cobertura
|
|
660
|
-
npm run test:coverage
|
|
661
|
-
|
|
662
|
-
# Rodar linter
|
|
663
|
-
npm run lint
|
|
664
|
-
```
|
|
665
|
-
|
|
666
|
-
## Licença
|
|
667
|
-
|
|
668
|
-
MIT
|
|
669
|
-
|
|
670
|
-
## Autor
|
|
671
|
-
|
|
672
|
-
Sidney da Silva Pereira Bissoli
|
|
673
|
-
|
|
674
|
-
## Referências
|
|
675
|
-
|
|
676
|
-
- [IBGE - Serviço de Dados](https://servicodados.ibge.gov.br/api/docs/)
|
|
677
|
-
- [SIDRA - Sistema IBGE de Recuperação Automática](https://sidra.ibge.gov.br/)
|
|
678
|
-
- [Model Context Protocol](https://modelcontextprotocol.io/)
|
|
679
|
-
- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)
|