@mcpassure/mcp-anvisa-bulario 0.0.1 → 2.0.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.
Files changed (128) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +196 -0
  3. package/README.md +192 -5
  4. package/dist/bootstrap.d.ts +11 -0
  5. package/dist/bootstrap.d.ts.map +1 -0
  6. package/dist/bootstrap.js +120 -0
  7. package/dist/bootstrap.js.map +1 -0
  8. package/dist/cache/sqlite-cache.d.ts +13 -0
  9. package/dist/cache/sqlite-cache.d.ts.map +1 -0
  10. package/dist/cache/sqlite-cache.js +58 -0
  11. package/dist/cache/sqlite-cache.js.map +1 -0
  12. package/dist/cache/types.d.ts +17 -0
  13. package/dist/cache/types.d.ts.map +1 -0
  14. package/dist/cache/types.js +7 -0
  15. package/dist/cache/types.js.map +1 -0
  16. package/dist/config.d.ts +15 -0
  17. package/dist/config.d.ts.map +1 -0
  18. package/dist/config.js +16 -0
  19. package/dist/config.js.map +1 -0
  20. package/dist/db/dataset.d.ts +15 -0
  21. package/dist/db/dataset.d.ts.map +1 -0
  22. package/dist/db/dataset.js +168 -0
  23. package/dist/db/dataset.js.map +1 -0
  24. package/dist/db/schema.d.ts +11 -0
  25. package/dist/db/schema.d.ts.map +1 -0
  26. package/dist/db/schema.js +48 -0
  27. package/dist/db/schema.js.map +1 -0
  28. package/dist/domain/repository.d.ts +53 -0
  29. package/dist/domain/repository.d.ts.map +1 -0
  30. package/dist/domain/repository.js +68 -0
  31. package/dist/domain/repository.js.map +1 -0
  32. package/dist/domain/types.d.ts +2 -0
  33. package/dist/domain/types.d.ts.map +1 -0
  34. package/dist/domain/types.js +2 -0
  35. package/dist/domain/types.js.map +1 -0
  36. package/dist/index.d.ts +3 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +38 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/prompts/handlers.d.ts +24 -0
  41. package/dist/prompts/handlers.d.ts.map +1 -0
  42. package/dist/prompts/handlers.js +267 -0
  43. package/dist/prompts/handlers.js.map +1 -0
  44. package/dist/prompts/index.d.ts +4 -0
  45. package/dist/prompts/index.d.ts.map +1 -0
  46. package/dist/prompts/index.js +35 -0
  47. package/dist/prompts/index.js.map +1 -0
  48. package/dist/prompts/schemas.d.ts +22 -0
  49. package/dist/prompts/schemas.d.ts.map +1 -0
  50. package/dist/prompts/schemas.js +15 -0
  51. package/dist/prompts/schemas.js.map +1 -0
  52. package/dist/resources/handlers.d.ts +5 -0
  53. package/dist/resources/handlers.d.ts.map +1 -0
  54. package/dist/resources/handlers.js +145 -0
  55. package/dist/resources/handlers.js.map +1 -0
  56. package/dist/resources/index.d.ts +4 -0
  57. package/dist/resources/index.d.ts.map +1 -0
  58. package/dist/resources/index.js +48 -0
  59. package/dist/resources/index.js.map +1 -0
  60. package/dist/schemas/tools.d.ts +134 -0
  61. package/dist/schemas/tools.d.ts.map +1 -0
  62. package/dist/schemas/tools.js +106 -0
  63. package/dist/schemas/tools.js.map +1 -0
  64. package/dist/server.d.ts +4 -0
  65. package/dist/server.d.ts.map +1 -0
  66. package/dist/server.js +25 -0
  67. package/dist/server.js.map +1 -0
  68. package/dist/sources/anvisa-api.d.ts +25 -0
  69. package/dist/sources/anvisa-api.d.ts.map +1 -0
  70. package/dist/sources/anvisa-api.js +153 -0
  71. package/dist/sources/anvisa-api.js.map +1 -0
  72. package/dist/sources/anvisa-dados-abertos.d.ts +12 -0
  73. package/dist/sources/anvisa-dados-abertos.d.ts.map +1 -0
  74. package/dist/sources/anvisa-dados-abertos.js +27 -0
  75. package/dist/sources/anvisa-dados-abertos.js.map +1 -0
  76. package/dist/sources/anvisa-portal.d.ts +12 -0
  77. package/dist/sources/anvisa-portal.d.ts.map +1 -0
  78. package/dist/sources/anvisa-portal.js +27 -0
  79. package/dist/sources/anvisa-portal.js.map +1 -0
  80. package/dist/sources/types.d.ts +56 -0
  81. package/dist/sources/types.d.ts.map +1 -0
  82. package/dist/sources/types.js +2 -0
  83. package/dist/sources/types.js.map +1 -0
  84. package/dist/tools/buscar-por-classe-terapeutica.d.ts +4 -0
  85. package/dist/tools/buscar-por-classe-terapeutica.d.ts.map +1 -0
  86. package/dist/tools/buscar-por-classe-terapeutica.js +30 -0
  87. package/dist/tools/buscar-por-classe-terapeutica.js.map +1 -0
  88. package/dist/tools/buscar-por-nome.d.ts +4 -0
  89. package/dist/tools/buscar-por-nome.d.ts.map +1 -0
  90. package/dist/tools/buscar-por-nome.js +25 -0
  91. package/dist/tools/buscar-por-nome.js.map +1 -0
  92. package/dist/tools/buscar-por-principio-ativo.d.ts +4 -0
  93. package/dist/tools/buscar-por-principio-ativo.d.ts.map +1 -0
  94. package/dist/tools/buscar-por-principio-ativo.js +25 -0
  95. package/dist/tools/buscar-por-principio-ativo.js.map +1 -0
  96. package/dist/tools/consultar-bula.d.ts +14 -0
  97. package/dist/tools/consultar-bula.d.ts.map +1 -0
  98. package/dist/tools/consultar-bula.js +60 -0
  99. package/dist/tools/consultar-bula.js.map +1 -0
  100. package/dist/tools/filtrar-por-tarja.d.ts +4 -0
  101. package/dist/tools/filtrar-por-tarja.d.ts.map +1 -0
  102. package/dist/tools/filtrar-por-tarja.js +29 -0
  103. package/dist/tools/filtrar-por-tarja.js.map +1 -0
  104. package/dist/tools/listar-apresentacoes.d.ts +11 -0
  105. package/dist/tools/listar-apresentacoes.d.ts.map +1 -0
  106. package/dist/tools/listar-apresentacoes.js +52 -0
  107. package/dist/tools/listar-apresentacoes.js.map +1 -0
  108. package/dist/tools/shared.d.ts +106 -0
  109. package/dist/tools/shared.d.ts.map +1 -0
  110. package/dist/tools/shared.js +74 -0
  111. package/dist/tools/shared.js.map +1 -0
  112. package/dist/utils/backoff.d.ts +8 -0
  113. package/dist/utils/backoff.d.ts.map +1 -0
  114. package/dist/utils/backoff.js +37 -0
  115. package/dist/utils/backoff.js.map +1 -0
  116. package/dist/utils/http.d.ts +24 -0
  117. package/dist/utils/http.d.ts.map +1 -0
  118. package/dist/utils/http.js +23 -0
  119. package/dist/utils/http.js.map +1 -0
  120. package/dist/utils/meta.d.ts +8 -0
  121. package/dist/utils/meta.d.ts.map +1 -0
  122. package/dist/utils/meta.js +13 -0
  123. package/dist/utils/meta.js.map +1 -0
  124. package/dist/utils/playwright-http.d.ts +2 -0
  125. package/dist/utils/playwright-http.d.ts.map +1 -0
  126. package/dist/utils/playwright-http.js +4 -0
  127. package/dist/utils/playwright-http.js.map +1 -0
  128. package/package.json +68 -6
@@ -0,0 +1,23 @@
1
+ /**
2
+ * http.ts — stub (v2.0)
3
+ *
4
+ * O HttpClient baseado em Playwright foi removido em v2.0.
5
+ * A fonte de dados agora é o CSV dados.anvisa.gov.br via SQLite local.
6
+ *
7
+ * Este arquivo existe apenas para backward compatibility de imports.
8
+ * Será removido em v2.1.
9
+ */
10
+ /**
11
+ * HttpClient stub — removido em v2.0.
12
+ * Mantido apenas para evitar erros de import em código legado.
13
+ * @deprecated Use BularioDatasetSource em vez de HttpClient.
14
+ */
15
+ export class HttpClient {
16
+ // biome-ignore lint/suspicious/noExplicitAny: stub — aceita qualquer arg para compatibilidade
17
+ constructor(..._args) { }
18
+ get(_path, _params) {
19
+ return Promise.reject(new Error("HttpClient foi removido em v2.0. Use BularioDatasetSource (SQLite)."));
20
+ }
21
+ async close() { }
22
+ }
23
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACrB,8FAA8F;IAC9F,YAAY,GAAG,KAAY,IAAG,CAAC;IAE/B,GAAG,CAAC,KAAa,EAAE,OAAgC;QACjD,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,qEAAqE,CAAC,CACjF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,KAAmB,CAAC;CAChC"}
@@ -0,0 +1,8 @@
1
+ import type { Meta } from "../domain/repository.js";
2
+ export declare function buildMeta(params: {
3
+ dataBase: string;
4
+ fonte: string;
5
+ modo: "cache_local" | "online";
6
+ degradedThresholdDays?: number;
7
+ }): Meta;
8
+ //# sourceMappingURL=meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/utils/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,wBAAgB,SAAS,CAAC,MAAM,EAAE;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,GAAG,QAAQ,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,GAAG,IAAI,CAWP"}
@@ -0,0 +1,13 @@
1
+ export function buildMeta(params) {
2
+ const threshold = params.degradedThresholdDays ?? 30;
3
+ const parsed = Date.parse(params.dataBase);
4
+ const defasagem_dias = Number.isNaN(parsed) ? 0 : Math.floor((Date.now() - parsed) / 86_400_000);
5
+ return {
6
+ data_da_base: params.dataBase,
7
+ fonte: params.fonte,
8
+ defasagem_dias,
9
+ modo: params.modo,
10
+ status: defasagem_dias > threshold ? "stale" : "ok",
11
+ };
12
+ }
13
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/utils/meta.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,MAKzB;IACC,MAAM,SAAS,GAAG,MAAM,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC;IACjG,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,QAAQ;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc;QACd,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KACpD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { HttpClient } from "./http.js";
2
+ //# sourceMappingURL=playwright-http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright-http.d.ts","sourceRoot":"","sources":["../../src/utils/playwright-http.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ // Consolidado em ./http.ts — este arquivo será removido na próxima limpeza.
2
+ // Re-export pra manter qualquer import legacy funcionando temporariamente.
3
+ export { HttpClient } from "./http.js";
4
+ //# sourceMappingURL=playwright-http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright-http.js","sourceRoot":"","sources":["../../src/utils/playwright-http.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2EAA2E;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,70 @@
1
- {
1
+ {
2
2
  "name": "@mcpassure/mcp-anvisa-bulario",
3
- "version": "0.0.1",
4
- "description": "Reserved - MCP for ANVISA Bulario Eletronico. Coming soon.",
3
+ "version": "2.0.0",
4
+ "mcpName": "io.github.mcpassure/mcp-anvisa-bulario",
5
+ "description": "MCP server para consulta do Bulário Eletrônico da ANVISA via CSV oficial",
5
6
  "license": "MIT",
6
- "homepage": "https://mcpassure.com.br",
7
- "keywords": ["mcp", "model-context-protocol", "anvisa", "bulario", "healthcare", "brazil"]
8
- }
7
+ "author": "MCPAssure Brasil",
8
+ "homepage": "https://github.com/mcpassure/mcp-anvisa-bulario",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/mcpassure/mcp-anvisa-bulario.git"
12
+ },
13
+ "keywords": [
14
+ "mcp",
15
+ "anvisa",
16
+ "bulario",
17
+ "medicamentos",
18
+ "farmacovigilancia",
19
+ "saude",
20
+ "healthtech",
21
+ "brasil",
22
+ "model-context-protocol",
23
+ "mcpassure"
24
+ ],
25
+ "type": "module",
26
+ "bin": {
27
+ "mcp-anvisa-bulario": "dist/index.js"
28
+ },
29
+ "main": "dist/index.js",
30
+ "files": [
31
+ "dist/**",
32
+ "README.md",
33
+ "LICENSE"
34
+ ],
35
+ "scripts": {
36
+ "build": "tsc -p tsconfig.build.json",
37
+ "start": "node dist/index.js",
38
+ "dev": "tsx src/index.ts",
39
+ "test": "vitest run",
40
+ "test:watch": "vitest",
41
+ "test:integration": "tsx integration-tests/bin/run-all.ts",
42
+ "test:integration:offline": "tsx integration-tests/bin/run-all.ts --offline",
43
+ "lint": "biome check src tests evals integration-tests test-utils",
44
+ "lint:fix": "biome check --write src tests evals integration-tests test-utils",
45
+ "format": "biome format --write src tests evals integration-tests test-utils",
46
+ "typecheck": "tsc --noEmit",
47
+ "sync": "tsx src/scripts/sync.ts",
48
+ "evals": "tsx evals/runner.ts",
49
+ "canary": "tsx src/scripts/canary.ts",
50
+ "demo": "tsx scripts/demo.ts",
51
+ "prepublishOnly": "npm run lint && npm run typecheck && npm run test && npm run build"
52
+ },
53
+ "dependencies": {
54
+ "@modelcontextprotocol/sdk": "^1.29.0",
55
+ "aws4fetch": "^1.0.20",
56
+ "better-sqlite3": "^12.10.0",
57
+ "zod": "^4.4.3"
58
+ },
59
+ "devDependencies": {
60
+ "@biomejs/biome": "^2.4.15",
61
+ "@types/better-sqlite3": "^7.6.13",
62
+ "@types/node": "^22.10.0",
63
+ "tsx": "^4.21.0",
64
+ "typescript": "^5.9.3",
65
+ "vitest": "^4.1.6"
66
+ },
67
+ "engines": {
68
+ "node": ">=22.0.0"
69
+ }
70
+ }