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 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](README.pt-BR.md)
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
 
@@ -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>;
@@ -1 +1 @@
1
- {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,GAGd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,2FAA2F;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;IACvD,aAAa,EAAE,2BAA2B;IAC1C,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE;IAC5D,WAAW,EAAE,SAAS;CACvB,CAAC,CAAC;AAKH,gFAAgF;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,gFAAgF;IACtF,GAAG,EAAE,IAAI;IACT,SAAS,EAAE,4EAA4E;IACvF,WAAW,EAAE,YAAY;CACjB,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,WAAW,EAAE;QACX,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW;KACzC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,8CAA8C;QACpD,QAAQ,EAAE,aAAa,CAAC,KAAK;KAC9B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS;KACvC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,8CAA8C;QACpD,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK;KACnC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM;KACpC;IACD,WAAW,EAAE;QACX,IAAI,EAAE,6CAA6C;QACnD,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW;KACzC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ;KACtC;IACD,SAAS,EAAE;QACT,IAAI,EAAE,sCAAsC;QAC5C,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS;KACvC;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI;KAClC;IACD,UAAU,EAAE;QACV,IAAI,EAAE,yCAAyC;QAC/C,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU;KACxC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM;KACpC;IACD,SAAS,EAAE;QACT,IAAI,EAAE,oCAAoC;QAC1C,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS;KACvC;CACO,CAAC;AAIX,0EAA0E;AAC1E,SAAS,WAAW,CAAC,WAA0B;IAC7C,MAAM,GAAG,GACP,WAAW,YAAY,IAAI;QACzB,CAAC,CAAC,sDAAsD;YACtD,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;QACpE,CAAC,CAAC,WAAW,CAAC;IAClB,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AAChC,CAAC;AAuBD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA6B;IAC5D,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC;IAEpD,OAAO,iBAAiB,CAAC,KAAK,CAAC;QAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;QACtF,UAAU,EAAE,IAAI,CAAC,GAAG;QACpB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,YAAY,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;QACtC,YAAY,EAAE,WAAW;QACzB,QAAQ,EAAE,iBAAiB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG,iBAAiB,WAAW,CAAC,WAAW,CAAC,GAAG;QACjG,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS;QACpC,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI;QACrD,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,SAAS,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI;KAC9C,CAAC,CAAC;AACL,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,2BAA2B,GACtC,yLAAyL,CAAC;AAE5L;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAiB,EACjB,SAAwC;IAExC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACtC,gDAAgD,CAAC,IAAI,CAAC,CAAC,CAAC,CACzD,CAAC;IACF,2EAA2E;IAC3E,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,OAAO,GAAG;QACd,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;KAChF,CAAC,IAAI,EAAE,CAAC;IACT,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED;;;;GAIG;AACH,MAAM,eAAe,GAA0D;IAC7E,MAAM,EAAE,gDAAgD;IACxD,UAAU,EAAE,sCAAsC;IAClD,YAAY,EAAE,0EAA0E;IACxF,YAAY,EAAE,uEAAuE;IACrF,SAAS,EACP,sNAAsN;IACxN,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,sBAAsB;IAC/B,aAAa,EACX,4NAA4N;CAC/N,CAAC;AAWF;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,MAAiB,EACjB,EAA4B,EAC5B,SAAS,GAAoC,EAAE;AAC/C,sGAAsG;AACtG,KAAK,GAAuB,EAAE,EAAE,WAAW;IAE3C,IAAI,KAAgB,CAAC;IACrB,IAAI,MAAM,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,iFAAiF;QACjF,MAAM,OAAO,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAe,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5F,CAAC;SAAM,IAAI,MAAM,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAoB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IACnF,CAAC;SAAM,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QACzC,KAAK,GAAG,CAAC,CAAC,YAAY,CACpB,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACnD,KAAK;YACL,uBAAuB,CACrB,KAAkB,EAClB,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,EACvB,EAAE,EACF,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,CACzD;SACF,CAAC,CACH,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAC1D,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,CACa,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAuC,MAAS;IAC7E,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,UAAU,EAAE,qBAAqB,CAAC,QAAQ,CACxC,uGAAuG,CACxG;QACD,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CAAC,gEAAgE,CAAC;KAC9E,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,oBAAoB,CAAC,CAAa;IAIhD,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAAC,CAAa;IAC9C,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ibge-br-mcp",
3
- "version": "5.5.0",
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.2.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.3.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.1.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
- [![npm version](https://img.shields.io/npm/v/ibge-br-mcp.svg)](https://www.npmjs.com/package/ibge-br-mcp)
4
- [![npm downloads](https://img.shields.io/npm/dm/ibge-br-mcp.svg)](https://www.npmjs.com/package/ibge-br-mcp)
5
- [![node](https://img.shields.io/node/v/ibge-br-mcp)](https://www.npmjs.com/package/ibge-br-mcp)
6
- [![MCP Registry](https://img.shields.io/badge/MCP-Registry-blue)](https://registry.modelcontextprotocol.io)
7
- [![LobeHub](https://lobehub.com/badge/mcp/sidneybissoli-ibge-br-mcp)](https://lobehub.com/mcp/sidneybissoli-ibge-br-mcp)
8
- [![smithery badge](https://smithery.ai/badge/sidneybissoli/ibge-br-mcp)](https://smithery.ai/server/sidneybissoli/ibge-br-mcp)
9
- [![ibge-br-mcp MCP server](https://glama.ai/mcp/servers/@SidneyBissoli/ibge-br-mcp/badges/score.svg)](https://glama.ai/mcp/servers/@SidneyBissoli/ibge-br-mcp)
10
- [![CI](https://github.com/SidneyBissoli/ibge-br-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/SidneyBissoli/ibge-br-mcp/actions/workflows/ci.yml)
11
- [![Coverage](https://img.shields.io/badge/coverage-%E2%89%A588%25-brightgreen.svg)](https://github.com/SidneyBissoli/ibge-br-mcp/blob/main/vitest.config.ts)
12
- [![GitHub stars](https://img.shields.io/github/stars/SidneyBissoli/ibge-br-mcp?style=flat&logo=github)](https://github.com/SidneyBissoli/ibge-br-mcp)
13
- [![GitHub Sponsors](https://img.shields.io/github/sponsors/SidneyBissoli?logo=githubsponsors&label=Sponsor&color=db61a2)](https://github.com/sponsors/SidneyBissoli)
14
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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)