ibge-br-mcp 5.1.0 → 5.1.1
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/dist/vocabulario.d.ts +14 -28
- package/dist/vocabulario.d.ts.map +1 -1
- package/dist/vocabulario.js +32 -104
- package/dist/vocabulario.js.map +1 -1
- package/package.json +2 -2
package/dist/vocabulario.d.ts
CHANGED
|
@@ -64,15 +64,11 @@
|
|
|
64
64
|
* carro/frota (0 — frota é do Denatran), imc (0), matrícula como cadastro
|
|
65
65
|
* (0 — o IBGE mede "frequenta escola", não matrícula, que é do Inep).
|
|
66
66
|
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* Mesma receita de `src/ilostat/vocabulary.ts` (ilo-mcp-server 0.6.0) e
|
|
74
|
-
* `src/uis/vocabulary.ts` (uis-mcp-server 0.3.0); terceiro servidor com ela —
|
|
75
|
-
* candidata a subir para `@sbissoli/mcp-search`.
|
|
67
|
+
* A MECÂNICA (normalização dos dois lados, AND por palavra com stopwords do
|
|
68
|
+
* pt-BR fora, singular sem caco, OR das grafias do IBGE, a nota dita e a ponta
|
|
69
|
+
* inversa para o índice de `search`) mora em `@sbissoli/mcp-search` desde a
|
|
70
|
+
* 0.5.0 — cinco servidores a carregavam em cópia; aqui fica só a tabela. Os
|
|
71
|
+
* nomes exportados são os de sempre (em português), para quem chama não mudar.
|
|
76
72
|
*/
|
|
77
73
|
export interface EntradaVocabulario {
|
|
78
74
|
/** Como o usuário escreve (um token, normalizado: minúsculo, sem acento). */
|
|
@@ -81,36 +77,26 @@ export interface EntradaVocabulario {
|
|
|
81
77
|
readonly fonte: readonly string[];
|
|
82
78
|
}
|
|
83
79
|
export declare const VOCABULARIO: readonly EntradaVocabulario[];
|
|
84
|
-
/** Sem acento, caixa baixa, espaços colapsados — os dois lados da busca passam por aqui. */
|
|
85
|
-
export declare function normalizar(texto: string): string;
|
|
86
|
-
/** Os termos efetivos da busca: normalizados, sem stopword, sem vazio. */
|
|
87
|
-
export declare function termosDaBusca(busca: string): string[];
|
|
88
|
-
/**
|
|
89
|
-
* Um termo e as substrings que o representam na busca (o próprio termo primeiro).
|
|
90
|
-
* A expansão só acrescenta alternativas em OR: o que casava antes segue casando.
|
|
91
|
-
*/
|
|
92
|
-
export declare function expandirTermo(termo: string): string[];
|
|
93
80
|
export interface TermoExpandido {
|
|
94
81
|
readonly termo: string;
|
|
95
82
|
readonly padroes: readonly string[];
|
|
96
83
|
/** A tabela (não a mera flexão de plural) mudou o que se procura. */
|
|
97
84
|
readonly traduzido: boolean;
|
|
98
85
|
}
|
|
86
|
+
/** Sem acento, caixa baixa, espaços colapsados — os dois lados da busca passam por aqui. */
|
|
87
|
+
export declare const normalizar: (text: string) => string;
|
|
88
|
+
/** Os termos efetivos da busca: normalizados, sem stopword, sem vazio. */
|
|
89
|
+
export declare const termosDaBusca: (query: string) => string[];
|
|
90
|
+
/** Um termo e as substrings que o representam na busca (o próprio termo primeiro). */
|
|
91
|
+
export declare const expandirTermo: (term: string) => string[];
|
|
99
92
|
/** A busca inteira, termo a termo, pronta para virar filtro. */
|
|
100
93
|
export declare function expandirBusca(busca: string): TermoExpandido[];
|
|
101
|
-
/**
|
|
102
|
-
* A frase que conta ao chamador que a palavra dele não é a do IBGE — sem isto
|
|
103
|
-
* a tradução é invisível e o resultado parece vir do que ele escreveu.
|
|
104
|
-
*/
|
|
94
|
+
/** A frase que conta ao chamador que a palavra dele não é a do IBGE. */
|
|
105
95
|
export declare function notasDeVocabulario(expandidos: readonly TermoExpandido[]): string[];
|
|
106
96
|
/** Um nome (já normalizado) casa o termo expandido? */
|
|
107
97
|
export declare function casaTermo(nomeNormalizado: string, expandido: TermoExpandido): boolean;
|
|
108
98
|
/** Um nome (já normalizado) casa TODOS os termos da busca expandida? */
|
|
109
99
|
export declare function casaBusca(nomeNormalizado: string, expandidos: readonly TermoExpandido[]): boolean;
|
|
110
|
-
/**
|
|
111
|
-
|
|
112
|
-
* agregado — keywords do índice de `search`, que ranqueia por relevância em
|
|
113
|
-
* vez de casar substring.
|
|
114
|
-
*/
|
|
115
|
-
export declare function palavrasPerguntadas(nome: string): string[];
|
|
100
|
+
/** A ponta inversa: as palavras com que se PERGUNTA por este nome — keywords do índice de `search`. */
|
|
101
|
+
export declare const palavrasPerguntadas: (name: string) => string[];
|
|
116
102
|
//# sourceMappingURL=vocabulario.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vocabulario.d.ts","sourceRoot":"","sources":["../src/vocabulario.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"vocabulario.d.ts","sourceRoot":"","sources":["../src/vocabulario.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AAIH,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,kBAAkB,EAgCpD,CAAC;AAQF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,qEAAqE;IACrE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAaD,4FAA4F;AAC5F,eAAO,MAAM,UAAU,0BAAwB,CAAC;AAChD,0EAA0E;AAC1E,eAAO,MAAM,aAAa,6BAAyB,CAAC;AACpD,sFAAsF;AACtF,eAAO,MAAM,aAAa,4BAAyB,CAAC;AACpD,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAE7D;AACD,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,EAAE,CAElF;AACD,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAErF;AACD,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO,CAEjG;AACD,uGAAuG;AACvG,eAAO,MAAM,mBAAmB,4BAA4B,CAAC"}
|
package/dist/vocabulario.js
CHANGED
|
@@ -64,16 +64,13 @@
|
|
|
64
64
|
* carro/frota (0 — frota é do Denatran), imc (0), matrícula como cadastro
|
|
65
65
|
* (0 — o IBGE mede "frequenta escola", não matrícula, que é do Inep).
|
|
66
66
|
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* Mesma receita de `src/ilostat/vocabulary.ts` (ilo-mcp-server 0.6.0) e
|
|
74
|
-
* `src/uis/vocabulary.ts` (uis-mcp-server 0.3.0); terceiro servidor com ela —
|
|
75
|
-
* candidata a subir para `@sbissoli/mcp-search`.
|
|
67
|
+
* A MECÂNICA (normalização dos dois lados, AND por palavra com stopwords do
|
|
68
|
+
* pt-BR fora, singular sem caco, OR das grafias do IBGE, a nota dita e a ponta
|
|
69
|
+
* inversa para o índice de `search`) mora em `@sbissoli/mcp-search` desde a
|
|
70
|
+
* 0.5.0 — cinco servidores a carregavam em cópia; aqui fica só a tabela. Os
|
|
71
|
+
* nomes exportados são os de sempre (em português), para quem chama não mudar.
|
|
76
72
|
*/
|
|
73
|
+
import { createVocabulary } from "@sbissoli/mcp-search";
|
|
77
74
|
export const VOCABULARIO = [
|
|
78
75
|
{ perguntado: "desemprego", fonte: ["desocupa"] },
|
|
79
76
|
{ perguntado: "desempregado", fonte: ["desocupa"] },
|
|
@@ -107,112 +104,43 @@ export const VOCABULARIO = [
|
|
|
107
104
|
{ perguntado: "expectativa", fonte: ["expectativa", "esperanca"] },
|
|
108
105
|
{ perguntado: "quarto", fonte: ["quarto", "dormitorio"] },
|
|
109
106
|
];
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
"do",
|
|
126
|
-
"das",
|
|
127
|
-
"dos",
|
|
128
|
-
"e",
|
|
129
|
-
"em",
|
|
130
|
-
"no",
|
|
131
|
-
"na",
|
|
132
|
-
"nos",
|
|
133
|
-
"nas",
|
|
134
|
-
"ao",
|
|
135
|
-
"aos",
|
|
136
|
-
"por",
|
|
137
|
-
"para",
|
|
138
|
-
"com",
|
|
139
|
-
"sem",
|
|
140
|
-
"que",
|
|
141
|
-
"ou",
|
|
142
|
-
]);
|
|
107
|
+
const vocabulario = createVocabulary({
|
|
108
|
+
entries: VOCABULARIO.map((e) => ({ asked: e.perguntado, source: e.fonte })),
|
|
109
|
+
locale: "pt-BR",
|
|
110
|
+
sourceName: "o IBGE",
|
|
111
|
+
});
|
|
112
|
+
const emPortugues = (e) => ({
|
|
113
|
+
termo: e.term,
|
|
114
|
+
padroes: e.patterns,
|
|
115
|
+
traduzido: e.translated,
|
|
116
|
+
});
|
|
117
|
+
const emIngles = (e) => ({
|
|
118
|
+
term: e.termo,
|
|
119
|
+
patterns: e.padroes,
|
|
120
|
+
translated: e.traduzido,
|
|
121
|
+
});
|
|
143
122
|
/** Sem acento, caixa baixa, espaços colapsados — os dois lados da busca passam por aqui. */
|
|
144
|
-
export
|
|
145
|
-
return texto.normalize("NFD").replace(/[̀-ͯ]/g, "").toLowerCase().replace(/\s+/g, " ").trim();
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Forma singular de um termo já normalizado — a substring mais curta casa o
|
|
149
|
-
* plural também. Só as regras do português que não fabricam caco: "ões/ães"
|
|
150
|
-
* → "ão" (já sem acento: "oes"→"ao"), "ais/eis/ois" → "al/el/ol" e o "s" final.
|
|
151
|
-
*/
|
|
152
|
-
function singulares(termo) {
|
|
153
|
-
if (termo.length > 4 && (termo.endsWith("oes") || termo.endsWith("aes")))
|
|
154
|
-
return [`${termo.slice(0, -3)}ao`];
|
|
155
|
-
if (termo.length > 4 && /(ais|eis|ois)$/.test(termo))
|
|
156
|
-
return [`${termo.slice(0, -2)}l`];
|
|
157
|
-
if (termo.length > 3 && termo.endsWith("s") && !termo.endsWith("ss"))
|
|
158
|
-
return [termo.slice(0, -1)];
|
|
159
|
-
return [];
|
|
160
|
-
}
|
|
123
|
+
export const normalizar = vocabulario.normalize;
|
|
161
124
|
/** Os termos efetivos da busca: normalizados, sem stopword, sem vazio. */
|
|
162
|
-
export
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
return ficam.length ? ficam : todos;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Um termo e as substrings que o representam na busca (o próprio termo primeiro).
|
|
169
|
-
* A expansão só acrescenta alternativas em OR: o que casava antes segue casando.
|
|
170
|
-
*/
|
|
171
|
-
export function expandirTermo(termo) {
|
|
172
|
-
const t = normalizar(termo);
|
|
173
|
-
const saida = [
|
|
174
|
-
t,
|
|
175
|
-
...(POR_PERGUNTADO.get(t) ?? []),
|
|
176
|
-
...singulares(t).flatMap((s) => [s, ...(POR_PERGUNTADO.get(s) ?? [])]),
|
|
177
|
-
];
|
|
178
|
-
return [...new Set(saida)];
|
|
179
|
-
}
|
|
125
|
+
export const termosDaBusca = vocabulario.queryTerms;
|
|
126
|
+
/** Um termo e as substrings que o representam na busca (o próprio termo primeiro). */
|
|
127
|
+
export const expandirTermo = vocabulario.expandTerm;
|
|
180
128
|
/** A busca inteira, termo a termo, pronta para virar filtro. */
|
|
181
129
|
export function expandirBusca(busca) {
|
|
182
|
-
return
|
|
183
|
-
const padroes = expandirTermo(termo);
|
|
184
|
-
const traduzido = POR_PERGUNTADO.has(termo) || singulares(termo).some((s) => POR_PERGUNTADO.has(s));
|
|
185
|
-
return { termo, padroes, traduzido };
|
|
186
|
-
});
|
|
130
|
+
return vocabulario.expandQuery(busca).map(emPortugues);
|
|
187
131
|
}
|
|
188
|
-
/**
|
|
189
|
-
* A frase que conta ao chamador que a palavra dele não é a do IBGE — sem isto
|
|
190
|
-
* a tradução é invisível e o resultado parece vir do que ele escreveu.
|
|
191
|
-
*/
|
|
132
|
+
/** A frase que conta ao chamador que a palavra dele não é a do IBGE. */
|
|
192
133
|
export function notasDeVocabulario(expandidos) {
|
|
193
|
-
return expandidos
|
|
194
|
-
.filter((e) => e.traduzido)
|
|
195
|
-
.map((e) => {
|
|
196
|
-
const outros = e.padroes.filter((p) => p !== e.termo);
|
|
197
|
-
return `"${e.termo}" também foi buscado como ${outros.join(", ")} — a palavra que o IBGE usa.`;
|
|
198
|
-
});
|
|
134
|
+
return vocabulario.vocabularyNotes(expandidos.map(emIngles));
|
|
199
135
|
}
|
|
200
136
|
/** Um nome (já normalizado) casa o termo expandido? */
|
|
201
137
|
export function casaTermo(nomeNormalizado, expandido) {
|
|
202
|
-
return
|
|
138
|
+
return vocabulario.matchesTerm(nomeNormalizado, emIngles(expandido));
|
|
203
139
|
}
|
|
204
140
|
/** Um nome (já normalizado) casa TODOS os termos da busca expandida? */
|
|
205
141
|
export function casaBusca(nomeNormalizado, expandidos) {
|
|
206
|
-
return
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* A ponta inversa da tabela: as palavras com que se PERGUNTA por este nome de
|
|
210
|
-
* agregado — keywords do índice de `search`, que ranqueia por relevância em
|
|
211
|
-
* vez de casar substring.
|
|
212
|
-
*/
|
|
213
|
-
export function palavrasPerguntadas(nome) {
|
|
214
|
-
const n = normalizar(nome);
|
|
215
|
-
const saida = VOCABULARIO.filter((e) => e.fonte.some((f) => n.includes(f))).map((e) => e.perguntado);
|
|
216
|
-
return [...new Set(saida)];
|
|
142
|
+
return vocabulario.matchesQuery(nomeNormalizado, expandidos.map(emIngles));
|
|
217
143
|
}
|
|
144
|
+
/** A ponta inversa: as palavras com que se PERGUNTA por este nome — keywords do índice de `search`. */
|
|
145
|
+
export const palavrasPerguntadas = vocabulario.askedWordsFor;
|
|
218
146
|
//# sourceMappingURL=vocabulario.js.map
|
package/dist/vocabulario.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vocabulario.js","sourceRoot":"","sources":["../src/vocabulario.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"vocabulario.js","sourceRoot":"","sources":["../src/vocabulario.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.1.
|
|
3
|
+
"version": "5.1.1",
|
|
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",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@modelcontextprotocol/server": "^2.0.0",
|
|
62
62
|
"@sbissoli/mcp-provenance": "^0.1.0",
|
|
63
|
-
"@sbissoli/mcp-search": "^0.
|
|
63
|
+
"@sbissoli/mcp-search": "^0.5.0",
|
|
64
64
|
"@sbissoli/mcp-stats": "^0.3.0",
|
|
65
65
|
"zod": "^4.5.4"
|
|
66
66
|
},
|