ab-ibge-mcp-server 1.0.0 → 2.1.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 CHANGED
@@ -2,24 +2,36 @@
2
2
 
3
3
  Servidor MCP (Model Context Protocol) para as **APIs públicas do IBGE**, permitindo que agentes de IA como Claude acessem dados estatísticos, geográficos e econômicos do Brasil em tempo real.
4
4
 
5
- ## Ferramentas Disponíveis (17 tools)
5
+ **✨ Versão 2.0.1** Agora com cache inteligente, API de Nomes e suporte multi-variável!
6
+
7
+ ---
8
+
9
+ **Sponsored by [Aeon Bridge Co.](https://aeonbridge.com)** 🌉
10
+ Building the future of AI-powered data integration.
11
+ Contact: [contact@aeonbridge.com](mailto:contact@aeonbridge.com)
12
+
13
+ ---
14
+
15
+ ## ✨ Ferramentas Disponíveis (27+ tools)
6
16
 
7
17
  ### 📍 Localidades
8
18
  | Tool | Descrição |
9
19
  |------|-----------|
10
20
  | `ibge_listar_regioes` | Lista as 5 regiões geográficas com seus estados |
11
21
  | `ibge_listar_estados` | Lista todos os 27 estados com sigla, ID e região |
12
- | `ibge_listar_municipios` | Lista municípios de um estado (com busca por nome) |
13
- | `ibge_buscar_municipio` | Busca município por ID IBGE (7 dígitos) |
22
+ | `ibge_listar_municipios` | Lista municípios de um estado (busca flexível sem acentos) |
23
+ | `ibge_buscar_municipio` | Busca município por nome em todo Brasil (suporta "Sao Paulo") |
14
24
 
15
25
  ### 📊 SIDRA (Sistema de Recuperação Automática)
16
26
  | Tool | Descrição |
17
27
  |------|-----------|
18
28
  | `ibge_sidra_pesquisar_tabelas` | Pesquisa tabelas por assunto (ex: "PIB", "agricultura") |
19
29
  | `ibge_sidra_metadados_tabela` | Metadados de uma tabela (variáveis, períodos, localidades) |
20
- | `ibge_sidra_consultar_tabela` | Consulta dados de qualquer tabela SIDRA |
30
+ | `ibge_sidra_consultar_tabela` | Consulta dados com **múltiplas variáveis** simultaneamente |
31
+ | `ibge_periodos_tabela` | Lista períodos disponíveis de uma tabela |
21
32
  | `ibge_ipca` | Inflação IPCA mensal com série histórica |
22
- | `ibge_pib_municipios` | PIB dos municípios ou estados |
33
+ | `ibge_pib_municipios` | PIB dos municípios (tabela 5938) |
34
+ | `ibge_pib_estados` | **NOVO** — PIB dos estados com ranking nacional |
23
35
 
24
36
  ### 📈 Indicadores Econômicos
25
37
  | Tool | Descrição |
@@ -27,13 +39,20 @@ Servidor MCP (Model Context Protocol) para as **APIs públicas do IBGE**, permit
27
39
  | `ibge_indicador_economico` | IPCA, IPCA acumulado, desemprego, rendimento, INPC |
28
40
  | `ibge_listar_indicadores` | Lista todos os indicadores disponíveis |
29
41
 
30
- ### 👥 Censo Demográfico 2022
42
+ ### 👥 Censo e População
31
43
  | Tool | Descrição |
32
44
  |------|-----------|
33
45
  | `ibge_populacao_municipio` | População de um município pelo Censo 2022 |
34
46
  | `ibge_populacao_estados` | Ranking de população de todos os estados |
35
47
  | `ibge_densidade_demografica` | Densidade demográfica (hab/km²) por estado |
36
48
  | `ibge_populacao_censo2022` | Dados populacionais do Censo com filtros avançados |
49
+ | `ibge_estimativas_populacionais` | **NOVO** — Estimativas anuais (2001-2024+) para municípios e estados |
50
+
51
+ ### 🏷️ API de Nomes (Censo)
52
+ | Tool | Descrição |
53
+ |------|-----------|
54
+ | `ibge_nomes_frequencia` | **NOVO** — Frequência histórica de um nome (ex: "João") por década |
55
+ | `ibge_nomes_ranking` | **NOVO** — Top 20 nomes mais populares do Brasil ou por UF |
37
56
 
38
57
  ### 🗺️ Malha e Notícias
39
58
  | Tool | Descrição |
@@ -104,25 +123,43 @@ Reinicie o Claude Desktop. O ícone 🔌 aparecerá indicando que o servidor est
104
123
  Usuário: "Qual o estado mais populoso do Brasil?"
105
124
  Agente: ibge_populacao_estados() → São Paulo com 44,4 milhões de habitantes (21,7% do total)
106
125
 
107
- Usuário: "Compare a inflação de 2023 e 2024 mês a mês"
126
+ Usuário: "Quantas pessoas se chamam Maria no Brasil?"
127
+ Agente: ibge_nomes_frequencia(nome="Maria") → 11,7 milhões de pessoas registradas
128
+
129
+ Usuário: "Quais os nomes masculinos mais populares na década de 1990?"
130
+ Agente: ibge_nomes_ranking(sexo="M", decada=1990) → Top 20 com frequência
131
+
132
+ Usuário: "Qual o PIB de São Paulo em 2021?"
133
+ Agente: ibge_pib_estados(ano=2021, uf_id=35) → R$ 2,7 trilhões (31% do PIB nacional)
134
+
135
+ Usuário: "População estimada do Brasil em 2024"
136
+ Agente: ibge_estimativas_populacionais(ano=2024, localidade="BR") → 212,6 milhões
137
+
138
+ Usuário: "Compare inflação de 2023 e 2024 mês a mês"
108
139
  Agente: ibge_indicador_economico(indicador="IPCA", periodos="202301-202412")
109
140
 
110
- Usuário: "Liste todas as cidades de SC com 'Floriano' no nome"
111
- Agente: ibge_listar_municipios(uf="SC", busca="Floriano")
141
+ Usuário: "Liste todas as cidades de SC com 'Floriano' (sem acento)"
142
+ Agente: ibge_listar_municipios(uf="SC", busca="Floriano") → Florianópolis encontrada!
143
+
144
+ Usuário: "Busque 'Sao Paulo' (sem acento)"
145
+ Agente: ibge_buscar_municipio(nome="Sao Paulo") → São Paulo-SP encontrado (normalização automática)
112
146
 
113
147
  Usuário: "Qual a densidade demográfica do DF vs SP?"
114
148
  Agente: ibge_densidade_demografica() → DF: 529.2 hab/km², SP: 177.3 hab/km²
115
149
 
116
- Usuário: "Me dados de PIB dos estados do Nordeste"
117
- Agente: ibge_sidra_consultar_tabela(tabela="5938", localidades="N3[21,22,23,24,25,26,27,28,29]")
150
+ Usuário: "Consulte IPCA e INPC simultaneamente"
151
+ Agente: ibge_sidra_consultar_tabela(tabela="1419", variaveis="63|44") → Múltiplas variáveis em uma chamada
118
152
  ```
119
153
 
120
- ## 🔧 Tecnologias
154
+ ## 🔧 Tecnologias e Performance
121
155
 
122
156
  - **TypeScript** com tipagem estrita
123
157
  - **MCP SDK** (@modelcontextprotocol/sdk)
124
158
  - **APIs do IBGE** — 100% públicas, sem autenticação necessária
125
159
  - **Zod** para validação de inputs
160
+ - **Cache in-memory** com TTL inteligente (até 7 dias para dados imutáveis)
161
+ - **Retry automático** com exponential backoff para maior confiabilidade
162
+ - **Busca sem acentos** — aceita "Sao Paulo", "Florianopolis", etc.
126
163
 
127
164
  ## 📚 APIs do IBGE Utilizadas
128
165
 
@@ -132,3 +169,26 @@ Agente: ibge_sidra_consultar_tabela(tabela="5938", localidades="N3[21,22,23,24,2
132
169
  | SIDRA | v3 | `servicodados.ibge.gov.br/api/v3/agregados` |
133
170
  | Malha Geográfica | v2 | `servicodados.ibge.gov.br/api/v2/malhas` |
134
171
  | Notícias | v3 | `servicodados.ibge.gov.br/api/v3/noticias` |
172
+
173
+ ## 🤝 Sponsorship
174
+
175
+ This project is proudly **sponsored by [Aeon Bridge Co.](https://aeonbridge.com)** 🌉
176
+
177
+ Aeon Bridge Co. is a technology company focused on building innovative solutions for AI-powered data integration and intelligent systems. We bridge the gap between complex data sources and modern AI agents, making information accessible and actionable.
178
+
179
+ **Learn more:** [https://aeonbridge.com](https://aeonbridge.com)
180
+ **Contact:** [contact@aeonbridge.com](mailto:contact@aeonbridge.com)
181
+
182
+ ---
183
+
184
+ ## 📄 License
185
+
186
+ MIT License - See [LICENSE](LICENSE) file for details.
187
+
188
+ ## 🙏 Contributing
189
+
190
+ Contributions are welcome! Please feel free to submit issues or pull requests.
191
+
192
+ ---
193
+
194
+ **Made with ❤️ by the Aeon Bridge team**
package/dist/index.js CHANGED
@@ -9,6 +9,8 @@ const malha_noticias_js_1 = require("./tools/malha-noticias.js");
9
9
  const indicadores_js_1 = require("./tools/indicadores.js");
10
10
  const censo_js_1 = require("./tools/censo.js");
11
11
  const cnae_js_1 = require("./tools/cnae.js");
12
+ const nomes_js_1 = require("./tools/nomes.js");
13
+ const paises_js_1 = require("./tools/paises.js");
12
14
  const server = new mcp_js_1.McpServer({
13
15
  name: "ibge-mcp-server",
14
16
  version: "1.0.0",
@@ -19,10 +21,12 @@ const server = new mcp_js_1.McpServer({
19
21
  (0, indicadores_js_1.registerIndicadoresTools)(server);
20
22
  (0, censo_js_1.registerCensoTools)(server);
21
23
  (0, cnae_js_1.registerCnaeTools)(server);
24
+ (0, nomes_js_1.registerNomesTools)(server);
25
+ (0, paises_js_1.registerPaisesTools)(server);
22
26
  async function main() {
23
27
  const transport = new stdio_js_1.StdioServerTransport();
24
28
  await server.connect(transport);
25
- console.error("✅ IBGE MCP Server iniciado — 22+ ferramentas disponíveis");
29
+ console.error("✅ IBGE MCP Server iniciado — 32 ferramentas disponíveis");
26
30
  }
27
31
  main().catch((err) => {
28
32
  console.error("❌ Erro:", err);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,oEAAoE;AACpE,wEAAiF;AACjF,2DAAkE;AAClE,+CAAsD;AACtD,iEAAkE;AAClE,2DAAkE;AAClE,+CAAsD;AACtD,6CAAoD;AAEpD,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC;IAC3B,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,IAAA,yCAAwB,EAAC,MAAM,CAAC,CAAC;AACjC,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;AAC3B,IAAA,yCAAqB,EAAC,MAAM,CAAC,CAAC;AAC9B,IAAA,yCAAwB,EAAC,MAAM,CAAC,CAAC;AACjC,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;AAC3B,IAAA,2BAAiB,EAAC,MAAM,CAAC,CAAC;AAE1B,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC5E,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,oEAAoE;AACpE,wEAAiF;AACjF,2DAAkE;AAClE,+CAAsD;AACtD,iEAAkE;AAClE,2DAAkE;AAClE,+CAAsD;AACtD,6CAAoD;AACpD,+CAAsD;AACtD,iDAAwD;AAExD,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC;IAC3B,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,IAAA,yCAAwB,EAAC,MAAM,CAAC,CAAC;AACjC,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;AAC3B,IAAA,yCAAqB,EAAC,MAAM,CAAC,CAAC;AAC9B,IAAA,yCAAwB,EAAC,MAAM,CAAC,CAAC;AACjC,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;AAC3B,IAAA,2BAAiB,EAAC,MAAM,CAAC,CAAC;AAC1B,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;AAC3B,IAAA,+BAAmB,EAAC,MAAM,CAAC,CAAC;AAE5B,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC3E,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ declare class SimpleCache {
2
+ private store;
3
+ get<T>(key: string): T | null;
4
+ set<T>(key: string, data: T, ttlMs: number): void;
5
+ clear(): void;
6
+ size(): number;
7
+ }
8
+ export declare const cache: SimpleCache;
9
+ export declare const TTL: {
10
+ readonly LOCALIDADES: number;
11
+ readonly NOMES: number;
12
+ readonly SIDRA_METADATA: number;
13
+ readonly SIDRA_DATA: number;
14
+ readonly INDICADORES: number;
15
+ readonly NOTICIAS: number;
16
+ };
17
+ export {};
18
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/services/cache.ts"],"names":[],"mappings":"AAQA,cAAM,WAAW;IACf,OAAO,CAAC,KAAK,CAA0C;IAEvD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAY7B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOjD,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,MAAM;CAGf;AAED,eAAO,MAAM,KAAK,aAAoB,CAAC;AAGvC,eAAO,MAAM,GAAG;;;;;;;CAON,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ // services/cache.ts
3
+ // In-memory cache with TTL for IBGE API responses
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.TTL = exports.cache = void 0;
6
+ class SimpleCache {
7
+ store = new Map();
8
+ get(key) {
9
+ const entry = this.store.get(key);
10
+ if (!entry)
11
+ return null;
12
+ if (Date.now() > entry.expiresAt) {
13
+ this.store.delete(key);
14
+ return null;
15
+ }
16
+ return entry.data;
17
+ }
18
+ set(key, data, ttlMs) {
19
+ this.store.set(key, {
20
+ data,
21
+ expiresAt: Date.now() + ttlMs,
22
+ });
23
+ }
24
+ clear() {
25
+ this.store.clear();
26
+ }
27
+ size() {
28
+ return this.store.size;
29
+ }
30
+ }
31
+ exports.cache = new SimpleCache();
32
+ // TTL constants based on IBGE data update frequency
33
+ exports.TTL = {
34
+ LOCALIDADES: 24 * 60 * 60 * 1000, // 24 hours - rarely changes
35
+ NOMES: 7 * 24 * 60 * 60 * 1000, // 7 days - census data, never changes
36
+ SIDRA_METADATA: 6 * 60 * 60 * 1000, // 6 hours
37
+ SIDRA_DATA: 60 * 60 * 1000, // 1 hour - economic indicators update monthly
38
+ INDICADORES: 60 * 60 * 1000, // 1 hour
39
+ NOTICIAS: 30 * 60 * 1000, // 30 minutes
40
+ };
41
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/services/cache.ts"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,kDAAkD;;;AAOlD,MAAM,WAAW;IACP,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEvD,GAAG,CAAI,GAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC,IAAS,CAAC;IACzB,CAAC;IAED,GAAG,CAAI,GAAW,EAAE,IAAO,EAAE,KAAa;QACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF;AAEY,QAAA,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;AAEvC,oDAAoD;AACvC,QAAA,GAAG,GAAG;IACjB,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAG,4BAA4B;IAC/D,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAK,sCAAsC;IACzE,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU;IAC9C,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAU,8CAA8C;IAClF,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAS,SAAS;IAC7C,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAY,aAAa;CACzC,CAAC"}
@@ -8,7 +8,7 @@ export declare class IBGEApiError extends Error {
8
8
  readonly endpoint?: string | undefined;
9
9
  constructor(message: string, status?: number | undefined, endpoint?: string | undefined);
10
10
  }
11
- export declare function ibgeFetch<T>(url: string): Promise<T>;
11
+ export declare function ibgeFetch<T>(url: string, cacheTtl?: number): Promise<T>;
12
12
  export declare function formatToolError(err: unknown): string;
13
13
  export declare function truncateIfNeeded(text: string, maxChars?: number): string;
14
14
  //# sourceMappingURL=ibge-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ibge-client.d.ts","sourceRoot":"","sources":["../../src/services/ibge-client.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,QAAQ;;;;CAIX,CAAC;AAEX,qBAAa,YAAa,SAAQ,KAAK;aAGnB,MAAM,CAAC,EAAE,MAAM;aACf,QAAQ,CAAC,EAAE,MAAM;gBAFjC,OAAO,EAAE,MAAM,EACC,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,QAAQ,CAAC,EAAE,MAAM,YAAA;CAKpC;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAkC1D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAKpD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAQ,GAAG,MAAM,CAMvE"}
1
+ {"version":3,"file":"ibge-client.d.ts","sourceRoot":"","sources":["../../src/services/ibge-client.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ;;;;CAIX,CAAC;AAEX,qBAAa,YAAa,SAAQ,KAAK;aAGnB,MAAM,CAAC,EAAE,MAAM;aACf,QAAQ,CAAC,EAAE,MAAM;gBAFjC,OAAO,EAAE,MAAM,EACC,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,QAAQ,CAAC,EAAE,MAAM,YAAA;CAKpC;AA0ED,wBAAsB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAkB7E;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAKpD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAQ,GAAG,MAAM,CAMvE"}
@@ -6,6 +6,7 @@ exports.IBGEApiError = exports.IBGE_API = void 0;
6
6
  exports.ibgeFetch = ibgeFetch;
7
7
  exports.formatToolError = formatToolError;
8
8
  exports.truncateIfNeeded = truncateIfNeeded;
9
+ const cache_js_1 = require("./cache.js");
9
10
  exports.IBGE_API = {
10
11
  v1: "https://servicodados.ibge.gov.br/api/v1",
11
12
  v2: "https://servicodados.ibge.gov.br/api/v2",
@@ -22,30 +23,73 @@ class IBGEApiError extends Error {
22
23
  }
23
24
  }
24
25
  exports.IBGEApiError = IBGEApiError;
25
- async function ibgeFetch(url) {
26
- const controller = new AbortController();
27
- const timeout = setTimeout(() => controller.abort(), 15000);
28
- try {
29
- const response = await fetch(url, {
30
- signal: controller.signal,
31
- headers: { Accept: "application/json" },
32
- });
33
- clearTimeout(timeout);
34
- if (!response.ok) {
35
- throw new IBGEApiError(`IBGE API retornou status ${response.status}: ${response.statusText}`, response.status, url);
26
+ async function sleep(ms) {
27
+ return new Promise((resolve) => setTimeout(resolve, ms));
28
+ }
29
+ async function fetchWithRetry(url, retries = 3, baseDelay = 500) {
30
+ let lastError;
31
+ for (let attempt = 0; attempt < retries; attempt++) {
32
+ const controller = new AbortController();
33
+ const timeout = setTimeout(() => controller.abort(), 15000);
34
+ try {
35
+ const response = await fetch(url, {
36
+ signal: controller.signal,
37
+ headers: { Accept: "application/json" },
38
+ });
39
+ clearTimeout(timeout);
40
+ // Retry on 503/504 (server errors)
41
+ if (response.status === 503 || response.status === 504) {
42
+ if (attempt < retries - 1) {
43
+ const delay = baseDelay * Math.pow(2, attempt);
44
+ await sleep(delay);
45
+ continue;
46
+ }
47
+ }
48
+ if (!response.ok) {
49
+ throw new IBGEApiError(`IBGE API retornou status ${response.status}: ${response.statusText}`, response.status, url);
50
+ }
51
+ const data = (await response.json());
52
+ return data;
53
+ }
54
+ catch (err) {
55
+ clearTimeout(timeout);
56
+ if (err instanceof IBGEApiError) {
57
+ lastError = err;
58
+ if (err.status !== 503 && err.status !== 504) {
59
+ throw err; // Don't retry on non-retryable errors
60
+ }
61
+ }
62
+ else if (err instanceof Error && err.name === "AbortError") {
63
+ lastError = new IBGEApiError("Timeout: a API do IBGE demorou mais de 15s", undefined, url);
64
+ }
65
+ else {
66
+ lastError = new IBGEApiError(`Erro ao conectar com a API do IBGE: ${err instanceof Error ? err.message : String(err)}`, undefined, url);
67
+ }
68
+ // If not last attempt and error is retryable, continue
69
+ if (attempt < retries - 1) {
70
+ const delay = baseDelay * Math.pow(2, attempt);
71
+ await sleep(delay);
72
+ continue;
73
+ }
36
74
  }
37
- const data = (await response.json());
38
- return data;
39
75
  }
40
- catch (err) {
41
- clearTimeout(timeout);
42
- if (err instanceof IBGEApiError)
43
- throw err;
44
- if (err instanceof Error && err.name === "AbortError") {
45
- throw new IBGEApiError("Timeout: a API do IBGE demorou mais de 15s", undefined, url);
76
+ throw lastError || new IBGEApiError("Erro desconhecido após retries", undefined, url);
77
+ }
78
+ async function ibgeFetch(url, cacheTtl) {
79
+ // Check cache first if TTL is provided
80
+ if (cacheTtl !== undefined) {
81
+ const cached = cache_js_1.cache.get(url);
82
+ if (cached !== null) {
83
+ return cached;
46
84
  }
47
- throw new IBGEApiError(`Erro ao conectar com a API do IBGE: ${err instanceof Error ? err.message : String(err)}`, undefined, url);
48
85
  }
86
+ // Fetch with retry
87
+ const data = await fetchWithRetry(url);
88
+ // Store in cache if TTL is provided
89
+ if (cacheTtl !== undefined) {
90
+ cache_js_1.cache.set(url, data, cacheTtl);
91
+ }
92
+ return data;
49
93
  }
50
94
  function formatToolError(err) {
51
95
  if (err instanceof IBGEApiError) {
@@ -1 +1 @@
1
- {"version":3,"file":"ibge-client.js","sourceRoot":"","sources":["../../src/services/ibge-client.ts"],"names":[],"mappings":";AAAA,0BAA0B;AAC1B,uDAAuD;;;AAmBvD,8BAkCC;AAED,0CAKC;AAED,4CAMC;AAlEY,QAAA,QAAQ,GAAG;IACtB,EAAE,EAAE,yCAAyC;IAC7C,EAAE,EAAE,yCAAyC;IAC7C,EAAE,EAAE,yCAAyC;CACrC,CAAC;AAEX,MAAa,YAAa,SAAQ,KAAK;IAGnB;IACA;IAHlB,YACE,OAAe,EACC,MAAe,EACf,QAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,WAAM,GAAN,MAAM,CAAS;QACf,aAAQ,GAAR,QAAQ,CAAS;QAGjC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AATD,oCASC;AAEM,KAAK,UAAU,SAAS,CAAI,GAAW;IAC5C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;SACxC,CAAC,CAAC;QAEH,YAAY,CAAC,OAAO,CAAC,CAAC;QAEtB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,YAAY,CACpB,4BAA4B,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,EACrE,QAAQ,CAAC,MAAM,EACf,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,GAAG,YAAY,YAAY;YAAE,MAAM,GAAG,CAAC;QAC3C,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACtD,MAAM,IAAI,YAAY,CAAC,4CAA4C,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,IAAI,YAAY,CACpB,uCAAuC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACzF,SAAS,EACT,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,GAAY;IAC1C,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;QAChC,OAAO,wBAAwB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACnG,CAAC;IACD,OAAO,oBAAoB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK;IAC7D,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;QACvB,qDAAqD,IAAI,CAAC,MAAM,iEAAiE,CAClI,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ibge-client.js","sourceRoot":"","sources":["../../src/services/ibge-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"censo.d.ts","sourceRoot":"","sources":["../../src/tools/censo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkBpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiJ1D"}
1
+ {"version":3,"file":"censo.d.ts","sourceRoot":"","sources":["../../src/tools/censo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBpE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqO1D"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerCensoTools = registerCensoTools;
4
4
  const zod_1 = require("zod");
5
5
  const ibge_client_js_1 = require("../services/ibge-client.js");
6
+ const cache_js_1 = require("../services/cache.js");
6
7
  function formatNum(v) {
7
8
  return v.toLocaleString("pt-BR");
8
9
  }
@@ -68,7 +69,7 @@ Retorna ranking de população com % do total nacional.`,
68
69
  }, async ({ uf_id }) => {
69
70
  try {
70
71
  const localidade = uf_id ? `N3[${uf_id}]` : "N3[all]";
71
- const url = `${ibge_client_js_1.IBGE_API.v3}/agregados/9514/periodos/2022/variaveis/93?localidades=${localidade}&view=flat`;
72
+ const url = `${ibge_client_js_1.IBGE_API.v3}/agregados/9514/periodos/2022/variaveis/93?localidades=${localidade}`;
72
73
  const dados = await (0, ibge_client_js_1.ibgeFetch)(url);
73
74
  const series = getSerie(dados);
74
75
  if (series.length === 0)
@@ -106,8 +107,8 @@ Retorna população, área em km² e densidade por estado, ordenados por densida
106
107
  try {
107
108
  const localidade = uf_id ? `N3[${uf_id}]` : "N3[all]";
108
109
  const [dadosPop, dadosArea] = await Promise.all([
109
- (0, ibge_client_js_1.ibgeFetch)(`${ibge_client_js_1.IBGE_API.v3}/agregados/9514/periodos/2022/variaveis/93?localidades=${localidade}&view=flat`),
110
- (0, ibge_client_js_1.ibgeFetch)(`${ibge_client_js_1.IBGE_API.v3}/agregados/9517/periodos/2022/variaveis/82?localidades=${localidade}&view=flat`).catch(() => []),
110
+ (0, ibge_client_js_1.ibgeFetch)(`${ibge_client_js_1.IBGE_API.v3}/agregados/9514/periodos/2022/variaveis/93?localidades=${localidade}`),
111
+ (0, ibge_client_js_1.ibgeFetch)(`${ibge_client_js_1.IBGE_API.v3}/agregados/9517/periodos/2022/variaveis/82?localidades=${localidade}`).catch(() => []),
111
112
  ]);
112
113
  const pop = getSerie(dadosPop);
113
114
  const area = getSerie(dadosArea);
@@ -132,5 +133,76 @@ Retorna população, área em km² e densidade por estado, ordenados por densida
132
133
  return { content: [{ type: "text", text: (0, ibge_client_js_1.formatToolError)(err) }] };
133
134
  }
134
135
  });
136
+ server.registerTool("ibge_estimativas_populacionais", {
137
+ title: "Estimativas Populacionais Anuais",
138
+ description: `Consulta estimativas de população para anos entre censos (2001-2024+).
139
+ As estimativas são usadas pelo TCU para repasse de verbas e são atualizadas anualmente.
140
+
141
+ Args:
142
+ - ano (obrigatório): Ano da estimativa (ex: 2024, 2023, 2022...)
143
+ - localidade (opcional): "BR" (Brasil), "estados" (todos estados), ou código IBGE específico
144
+ - municipio_id (opcional): Código IBGE de 7 dígitos para consulta de município específico
145
+
146
+ Use para dados mais recentes que o Censo 2022 ou para anos intermediários.
147
+ Exemplo: População estimada de 2024, população de município não finalizado no censo.`,
148
+ inputSchema: zod_1.z.object({
149
+ ano: zod_1.z.number().int().min(2001).max(2030).describe("Ano da estimativa"),
150
+ localidade: zod_1.z.enum(["BR", "estados"]).optional().describe("BR=Brasil, estados=todos estados"),
151
+ municipio_id: zod_1.z.number().int().positive().optional().describe("Código IBGE do município (7 dígitos)"),
152
+ }),
153
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
154
+ }, async (args) => {
155
+ try {
156
+ const { ano, localidade, municipio_id } = args;
157
+ let nivel = "N1[all]"; // Brasil por padrão
158
+ if (localidade === "estados") {
159
+ nivel = "N3[all]";
160
+ }
161
+ else if (municipio_id) {
162
+ nivel = `N6[${municipio_id}]`;
163
+ }
164
+ const url = `${ibge_client_js_1.IBGE_API.v3}/agregados/6579/periodos/${ano}/variaveis/9324?localidades=${nivel}`;
165
+ const dados = await (0, ibge_client_js_1.ibgeFetch)(url, cache_js_1.TTL.SIDRA_DATA);
166
+ const series = getSerie(dados);
167
+ if (series.length === 0) {
168
+ return {
169
+ content: [{
170
+ type: "text",
171
+ text: `Dados não encontrados para o ano ${ano}.\n\nVerifique se o ano está disponível na base do IBGE (geralmente 2001-2024).`
172
+ }]
173
+ };
174
+ }
175
+ if (municipio_id || localidade === undefined) {
176
+ // Resultado único
177
+ const item = series[0];
178
+ return {
179
+ content: [{
180
+ type: "text",
181
+ text: `## ${item.nome} — Estimativa ${ano}\n\n**População estimada:** ${formatNum(item.valor)} habitantes\n\n_Fonte: IBGE Estimativas de População (Tabela 6579)_`
182
+ }]
183
+ };
184
+ }
185
+ // Múltiplas localidades
186
+ const total = series.reduce((acc, s) => acc + s.valor, 0);
187
+ series.sort((a, b) => b.valor - a.valor);
188
+ const linhas = series.map((s, i) => {
189
+ const pct = localidade === "estados" ? ` (${((s.valor / total) * 100).toFixed(2)}%)` : "";
190
+ return `${i + 1}. **${s.nome}**: ${formatNum(s.valor)} hab${pct}`;
191
+ });
192
+ const titulo = localidade === "estados" ? "por Estado" : "Brasil";
193
+ return {
194
+ content: [{
195
+ type: "text",
196
+ text: (0, ibge_client_js_1.truncateIfNeeded)(`## Estimativa de População ${titulo} — ${ano}\n\n` +
197
+ (localidade === "estados" ? `**Brasil:** ${formatNum(total)} habitantes\n\n` : "") +
198
+ linhas.join("\n") +
199
+ `\n\n_Fonte: IBGE Estimativas de População (Tabela 6579)_`)
200
+ }]
201
+ };
202
+ }
203
+ catch (err) {
204
+ return { content: [{ type: "text", text: (0, ibge_client_js_1.formatToolError)(err) }] };
205
+ }
206
+ });
135
207
  }
136
208
  //# sourceMappingURL=censo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"censo.js","sourceRoot":"","sources":["../../src/tools/censo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"censo.js","sourceRoot":"","sources":["../../src/tools/censo.ts"],"names":[],"mappings":";;AAoBA,gDAqOC;AAvPD,6BAAwB;AACxB,+DAAoG;AACpG,mDAA2C;AAG3C,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAuB;IACvC,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;IACzD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxB,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI;QACvB,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE;QACnB,KAAK,EAAE,UAAU,CAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAY,IAAI,GAAG,CAAC;KAChE,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,kBAAkB,CAAC,MAAiB;IAElD,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,KAAK,EAAE,qCAAqC;QAC5C,WAAW,EAAE;;;;;;;;;kEAS+C;QAC5D,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;SAC3F,CAAC;QACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACvG,EACD,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,yBAAQ,CAAC,EAAE,6DAA6D,YAAY,GAAG,CAAC;YACvG,MAAM,KAAK,GAAG,MAAM,IAAA,0BAAS,EAAmB,GAAG,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,YAAY,gCAAgC,EAAE,CAAC,EAAE,CAAC;YAC/G,CAAC;YACD,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAW,CAAC,CAAC;YAChE,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM,EAAE,IAAI,EAChB,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,yCAAyC,SAAS,CAAC,GAAG,CAAC,uDAAuD;qBAC5I,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAA,gCAAe,EAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACrE,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,oCAAoC;QAC3C,WAAW,EAAE;;;;;;;;sDAQmC;QAChD,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;SACtG,CAAC;QACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACvG,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,MAAM,GAAG,GAAG,GAAG,yBAAQ,CAAC,EAAE,0DAA0D,UAAU,EAAE,CAAC;YACjG,MAAM,KAAK,GAAG,MAAM,IAAA,0BAAS,EAAmB,GAAG,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,EAAE,CAAC;YAEhG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAE1D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjD,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YACxE,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAA,iCAAgB,EAClC,uDAAuD,SAAS,CAAC,KAAK,CAAC,iBAAiB;4BACxF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,4CAA4C,CACjE;qBACF,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAA,gCAAe,EAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACrE,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE;;;;;gFAK6D;QAC1E,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SAC1F,CAAC;QACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACvG,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,IAAA,0BAAS,EACP,GAAG,yBAAQ,CAAC,EAAE,0DAA0D,UAAU,EAAE,CACrF;gBACD,IAAA,0BAAS,EACP,GAAG,yBAAQ,CAAC,EAAE,0DAA0D,UAAU,EAAE,CACrF,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAsB,CAAC;aACtC,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,SAA6B,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE1D,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACnC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAEnC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAChC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;gBACjE,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC3D,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,QAAQ,IAAI,IAAI,CAAC;YACpF,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAA,iCAAgB,EAClC,sDAAsD;4BACtD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,8BAA8B,CACnD;qBACF,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAA,gCAAe,EAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACrE,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gCAAgC,EAChC;QACE,KAAK,EAAE,kCAAkC;QACzC,WAAW,EAAE;;;;;;;;;qFASkE;QAC/E,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACvE,UAAU,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YAC7F,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;SACtG,CAAC;QACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACvG,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;YAE/C,IAAI,KAAK,GAAG,SAAS,CAAC,CAAC,oBAAoB;YAC3C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;iBAAM,IAAI,YAAY,EAAE,CAAC;gBACxB,KAAK,GAAG,MAAM,YAAY,GAAG,CAAC;YAChC,CAAC;YAED,MAAM,GAAG,GAAG,GAAG,yBAAQ,CAAC,EAAE,4BAA4B,GAAG,+BAA+B,KAAK,EAAE,CAAC;YAChG,MAAM,KAAK,GAAG,MAAM,IAAA,0BAAS,EAAmB,GAAG,EAAE,cAAG,CAAC,UAAU,CAAC,CAAC;YAErE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,oCAAoC,GAAG,iFAAiF;yBAC/H,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,IAAI,YAAY,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7C,kBAAkB;gBAClB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,iBAAiB,GAAG,+BAA+B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,qEAAqE;yBACnK,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,wBAAwB;YACxB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAEzC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjC,MAAM,GAAG,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1F,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;YACpE,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;YAElE,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAA,iCAAgB,EACpB,8BAA8B,MAAM,MAAM,GAAG,MAAM;4BACnD,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;4BAClF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;4BACjB,0DAA0D,CAC3D;qBACF,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAA,gCAAe,EAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACrE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -4,8 +4,8 @@ exports.registerIndicadoresTools = registerIndicadoresTools;
4
4
  const zod_1 = require("zod");
5
5
  const ibge_client_js_1 = require("../services/ibge-client.js");
6
6
  const INDICADORES = {
7
- IPCA: { tabela: "1737", variavel: "63", nome: "IPCA - Variação Mensal", unidade: "%" },
8
- IPCA_ACUMULADO: { tabela: "1737", variavel: "69", nome: "IPCA - Acumulado 12 meses", unidade: "%" },
7
+ IPCA: { tabela: "1419", variavel: "63", nome: "IPCA - Variação Mensal", unidade: "%" },
8
+ IPCA_ACUMULADO: { tabela: "1419", variavel: "2266", nome: "IPCA - Acumulado 12 meses", unidade: "%" },
9
9
  DESEMPREGO: { tabela: "6381", variavel: "4099", nome: "PNAD - Taxa de Desocupação", unidade: "%" },
10
10
  RENDIMENTO: { tabela: "6403", variavel: "5929", nome: "PNAD - Rendimento Médio per capita", unidade: "R$" },
11
11
  INPC: { tabela: "1736", variavel: "44", nome: "INPC - Variação Mensal", unidade: "%" },
@@ -1 +1 @@
1
- {"version":3,"file":"indicadores.js","sourceRoot":"","sources":["../../src/tools/indicadores.ts"],"names":[],"mappings":";;AAcA,4DAyEC;AArFD,6BAAwB;AACxB,+DAAoG;AAGpG,MAAM,WAAW,GAAwF;IACvG,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,GAAG,EAAE;IACtF,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,GAAG,EAAE;IACnG,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,GAAG,EAAE;IAClG,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,oCAAoC,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3G,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,GAAG,EAAE;CACvF,CAAC;AAEF,SAAgB,wBAAwB,CAAC,MAAiB;IAExD,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,KAAK,EAAE,+BAA+B;QACtC,WAAW,EAAE;;;;;;;;iEAQ8C;QAC3D,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACpB,SAAS,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YACjF,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;SAC1C,CAAC;QACF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACvG,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YACnC,kFAAkF;YAClF,MAAM,YAAY,GAAG,QAAQ;iBAC1B,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;iBAC5B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;iBACvD,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,GAAG,yBAAQ,CAAC,EAAE,cAAc,GAAG,CAAC,MAAM,aAAa,YAAY,cAAc,GAAG,CAAC,QAAQ,gCAAgC,CAAC;YACtI,MAAM,KAAK,GAAG,MAAM,IAAA,0BAAS,EAAmB,GAAG,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,SAAS,gBAAgB,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;YAE9H,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YAE7E,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAA,iCAAgB,EAClC,MAAM,GAAG,CAAC,IAAI,MAAM;4BACpB,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;4BAClF,wBAAwB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,GAAG,CAAC,MAAM,GAAG,CACxF;qBACF,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAA,gCAAe,EAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACrE,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,mHAAmH;QAChI,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACxG,EACD,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAC5C,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,GAAG,CACpE,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM,EAAE,IAAI,EAChB,4CAA4C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,2CAA2C;iBAC3G,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"indicadores.js","sourceRoot":"","sources":["../../src/tools/indicadores.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"localidades.d.ts","sourceRoot":"","sources":["../../src/tools/localidades.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4HhE"}
1
+ {"version":3,"file":"localidades.d.ts","sourceRoot":"","sources":["../../src/tools/localidades.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoIhE"}
@@ -75,8 +75,12 @@ Retorna: id (7 dígitos), nome, microrregião. Use o id em consultas SIDRA de mu
75
75
  const uf_nome = municipios[0]?.microrregiao?.mesorregiao?.UF?.nome ?? uf;
76
76
  let lista = municipios.map((m) => municipioToSimples(m, uf_sigla, uf_nome));
77
77
  if (nome_filtro) {
78
- const f = nome_filtro.toLowerCase();
79
- lista = lista.filter((m) => m.nome.toLowerCase().includes(f));
78
+ // Normalizar acentos para busca flexível (São Paulo = Sao Paulo)
79
+ const filtroNorm = nome_filtro.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
80
+ lista = lista.filter((m) => {
81
+ const nomeNorm = m.nome.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
82
+ return nomeNorm.includes(filtroNorm);
83
+ });
80
84
  }
81
85
  lista.sort((a, b) => a.nome.localeCompare(b.nome));
82
86
  const texto = lista.map((m) => `• [${m.id}] ${m.nome}${m.microrregiao ? ` (${m.microrregiao})` : ""}`).join("\n");
@@ -105,9 +109,13 @@ Retorna: código IBGE, nome, UF, mesorregião de todos os municípios encontrado
105
109
  ? `${ibge_client_js_1.IBGE_API.v1}/localidades/estados/${uf}/municipios`
106
110
  : `${ibge_client_js_1.IBGE_API.v1}/localidades/municipios`;
107
111
  const municipios = await (0, ibge_client_js_1.ibgeFetch)(url);
108
- const filtro = nome.toLowerCase();
112
+ // Normalizar acentos para busca flexível (São Paulo = Sao Paulo)
113
+ const filtroNorm = nome.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
109
114
  const encontrados = municipios
110
- .filter((m) => m.nome.toLowerCase().includes(filtro))
115
+ .filter((m) => {
116
+ const nomeNorm = m.nome.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
117
+ return nomeNorm.includes(filtroNorm);
118
+ })
111
119
  .map((m) => municipioToSimples(m))
112
120
  .sort((a, b) => a.nome.localeCompare(b.nome));
113
121
  if (encontrados.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"localidades.js","sourceRoot":"","sources":["../../src/tools/localidades.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localidades.js","sourceRoot":"","sources":["../../src/tools/localidades.ts"],"names":[],"mappings":"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"}