heor-agent-mcp 0.2.0 → 0.7.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 (93) hide show
  1. package/README.md +44 -0
  2. package/dist/formatters/comparisonMarkdown.d.ts +3 -0
  3. package/dist/formatters/comparisonMarkdown.d.ts.map +1 -0
  4. package/dist/formatters/comparisonMarkdown.js +68 -0
  5. package/dist/formatters/comparisonMarkdown.js.map +1 -0
  6. package/dist/models/evppi.d.ts +33 -0
  7. package/dist/models/evppi.d.ts.map +1 -0
  8. package/dist/models/evppi.js +75 -0
  9. package/dist/models/evppi.js.map +1 -0
  10. package/dist/models/modelUtils.d.ts +7 -2
  11. package/dist/models/modelUtils.d.ts.map +1 -1
  12. package/dist/models/modelUtils.js +49 -31
  13. package/dist/models/modelUtils.js.map +1 -1
  14. package/dist/models/psa.d.ts +4 -0
  15. package/dist/models/psa.d.ts.map +1 -1
  16. package/dist/models/psa.js +29 -2
  17. package/dist/models/psa.js.map +1 -1
  18. package/dist/models/survivalFitting.d.ts +47 -0
  19. package/dist/models/survivalFitting.d.ts.map +1 -0
  20. package/dist/models/survivalFitting.js +342 -0
  21. package/dist/models/survivalFitting.js.map +1 -0
  22. package/dist/network/bucher.d.ts +29 -0
  23. package/dist/network/bucher.d.ts.map +1 -0
  24. package/dist/network/bucher.js +125 -0
  25. package/dist/network/bucher.js.map +1 -0
  26. package/dist/network/frequentistNma.d.ts +12 -0
  27. package/dist/network/frequentistNma.d.ts.map +1 -0
  28. package/dist/network/frequentistNma.js +230 -0
  29. package/dist/network/frequentistNma.js.map +1 -0
  30. package/dist/network/index.d.ts +4 -1
  31. package/dist/network/index.d.ts.map +1 -1
  32. package/dist/network/index.js +3 -0
  33. package/dist/network/index.js.map +1 -1
  34. package/dist/network/pathfinder.d.ts +14 -0
  35. package/dist/network/pathfinder.d.ts.map +1 -0
  36. package/dist/network/pathfinder.js +93 -0
  37. package/dist/network/pathfinder.js.map +1 -0
  38. package/dist/network/types.d.ts +45 -0
  39. package/dist/network/types.d.ts.map +1 -1
  40. package/dist/providers/direct/index.d.ts.map +1 -1
  41. package/dist/providers/direct/index.js +82 -27
  42. package/dist/providers/direct/index.js.map +1 -1
  43. package/dist/providers/direct/iqwig.js +1 -1
  44. package/dist/providers/direct/iqwig.js.map +1 -1
  45. package/dist/providers/direct/niceTa.d.ts +4 -0
  46. package/dist/providers/direct/niceTa.d.ts.map +1 -1
  47. package/dist/providers/direct/niceTa.js +76 -25
  48. package/dist/providers/direct/niceTa.js.map +1 -1
  49. package/dist/providers/direct/tlv.js +1 -1
  50. package/dist/providers/direct/tlv.js.map +1 -1
  51. package/dist/providers/types.d.ts +6 -0
  52. package/dist/providers/types.d.ts.map +1 -1
  53. package/dist/server.js +89 -9
  54. package/dist/server.js.map +1 -1
  55. package/dist/tools/budgetImpactModel.d.ts +116 -0
  56. package/dist/tools/budgetImpactModel.d.ts.map +1 -0
  57. package/dist/tools/budgetImpactModel.js +257 -0
  58. package/dist/tools/budgetImpactModel.js.map +1 -0
  59. package/dist/tools/costEffectivenessModel.d.ts +18 -0
  60. package/dist/tools/costEffectivenessModel.d.ts.map +1 -1
  61. package/dist/tools/costEffectivenessModel.js +155 -27
  62. package/dist/tools/costEffectivenessModel.js.map +1 -1
  63. package/dist/tools/htaDossierPrep.d.ts.map +1 -1
  64. package/dist/tools/htaDossierPrep.js +119 -0
  65. package/dist/tools/htaDossierPrep.js.map +1 -1
  66. package/dist/tools/indirectComparison.d.ts +73 -0
  67. package/dist/tools/indirectComparison.d.ts.map +1 -0
  68. package/dist/tools/indirectComparison.js +191 -0
  69. package/dist/tools/indirectComparison.js.map +1 -0
  70. package/dist/tools/knowledgeWrite.d.ts.map +1 -1
  71. package/dist/tools/knowledgeWrite.js +17 -3
  72. package/dist/tools/knowledgeWrite.js.map +1 -1
  73. package/dist/tools/literatureSearch.d.ts +4 -0
  74. package/dist/tools/literatureSearch.d.ts.map +1 -1
  75. package/dist/tools/literatureSearch.js +43 -1
  76. package/dist/tools/literatureSearch.js.map +1 -1
  77. package/dist/tools/populationAdjustedComparison.d.ts +145 -0
  78. package/dist/tools/populationAdjustedComparison.d.ts.map +1 -0
  79. package/dist/tools/populationAdjustedComparison.js +431 -0
  80. package/dist/tools/populationAdjustedComparison.js.map +1 -0
  81. package/dist/tools/screenAbstracts.d.ts +99 -0
  82. package/dist/tools/screenAbstracts.d.ts.map +1 -0
  83. package/dist/tools/screenAbstracts.js +442 -0
  84. package/dist/tools/screenAbstracts.js.map +1 -0
  85. package/dist/tools/survivalFitting.d.ts +56 -0
  86. package/dist/tools/survivalFitting.d.ts.map +1 -0
  87. package/dist/tools/survivalFitting.js +147 -0
  88. package/dist/tools/survivalFitting.js.map +1 -0
  89. package/dist/tools/validateLinks.d.ts +24 -0
  90. package/dist/tools/validateLinks.d.ts.map +1 -0
  91. package/dist/tools/validateLinks.js +171 -0
  92. package/dist/tools/validateLinks.js.map +1 -0
  93. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"iqwig.js","sourceRoot":"","sources":["../../../src/providers/direct/iqwig.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,UAAkB;IAElB,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,yBAAyB,KAAK,EAAE;YACvC,QAAQ,EAAE,0PAA0P,KAAK,yKAAyK;YAClb,GAAG,EAAE,sDAAsD,kBAAkB,CAAC,KAAK,CAAC,EAAE;SACvF;QACD;YACE,KAAK,EAAE,mCAAmC;YAC1C,QAAQ,EAAE,+ZAA+Z;YACza,GAAG,EAAE,yDAAyD;SAC/D;QACD;YACE,KAAK,EAAE,wCAAwC;YAC/C,QAAQ,EAAE,wUAAwU;YAClV,GAAG,EAAE,2DAA2D;SACjE;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,MAAM,EAAE,OAAgB;QACxB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE;YACP,sEAAsE;SACvE;QACD,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"iqwig.js","sourceRoot":"","sources":["../../../src/providers/direct/iqwig.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,UAAkB;IAElB,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,yBAAyB,KAAK,EAAE;YACvC,QAAQ,EAAE,0PAA0P,KAAK,yKAAyK;YAClb,GAAG,EAAE,qCAAqC,kBAAkB,CAAC,KAAK,CAAC,EAAE;SACtE;QACD;YACE,KAAK,EAAE,mCAAmC;YAC1C,QAAQ,EAAE,+ZAA+Z;YACza,GAAG,EAAE,yDAAyD;SAC/D;QACD;YACE,KAAK,EAAE,wCAAwC;YAC/C,QAAQ,EAAE,wUAAwU;YAClV,GAAG,EAAE,2DAA2D;SACjE;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,MAAM,EAAE,OAAgB;QACxB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE;YACP,sEAAsE;SACvE;QACD,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1,3 +1,7 @@
1
1
  import type { LiteratureResult } from "../types.js";
2
+ /**
3
+ * Fetch NICE Technology Appraisals by scraping the NICE search page.
4
+ * Extracts guidance links (TA numbers) and titles from search results HTML.
5
+ */
2
6
  export declare function fetchNiceTa(query: string, maxResults: number): Promise<LiteratureResult[]>;
3
7
  //# sourceMappingURL=niceTa.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"niceTa.d.ts","sourceRoot":"","sources":["../../../src/providers/direct/niceTa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6B7B"}
1
+ {"version":3,"file":"niceTa.d.ts","sourceRoot":"","sources":["../../../src/providers/direct/niceTa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAwE7B"}
@@ -1,30 +1,81 @@
1
+ const NICE_SEARCH_URL = "https://www.nice.org.uk/search";
2
+ /**
3
+ * Fetch NICE Technology Appraisals by scraping the NICE search page.
4
+ * Extracts guidance links (TA numbers) and titles from search results HTML.
5
+ */
1
6
  export async function fetchNiceTa(query, maxResults) {
2
- const entries = [
3
- {
4
- title: `NICE Technology Appraisals Search: ${query}`,
5
- abstract: `NICE Technology Appraisals (TAs) recommend whether NHS England should fund new medicines. Each TA includes: company submission, ERG (evidence review group) report, committee papers, final appraisal determination (FAD), and guidance. Search "${query}" across all published TAs to find precedents for similar indications, comparators, or ICER thresholds. Essential for NICE STA submission benchmarking.`,
6
- url: `https://www.nice.org.uk/search?q=${encodeURIComponent(query)}&ngt=Guidance&ndt=Guidance#/?ngt=Guidance&ndt=Guidance`,
7
- },
8
- {
9
- title: `NICE Single Technology Appraisal Process Guide`,
10
- abstract: `NICE's STA methodology guide PMG36 and process guide PMG19. Required reading for company submissions. Covers reference case, time horizon, discount rates (3.5%), perspective (NHS+PSS), ICER threshold (£25–35K/QALY, updated April 2026), end-of-life criteria, and innovation rating.`,
11
- url: "https://www.nice.org.uk/process/pmg36",
12
- },
7
+ const url = `${NICE_SEARCH_URL}?q=${encodeURIComponent(query)}&ps=${Math.min(maxResults, 20)}`;
8
+ try {
9
+ const res = await fetch(url, {
10
+ headers: { Accept: "text/html" },
11
+ signal: AbortSignal.timeout(15000),
12
+ });
13
+ if (!res.ok) {
14
+ return fallbackResults(query, maxResults);
15
+ }
16
+ const html = await res.text();
17
+ // Extract guidance links and titles from search results
18
+ const results = [];
19
+ const guidancePattern = /href="(\/guidance\/(ta\d+))"[^>]*>([^<]+)/gi;
20
+ let match;
21
+ while ((match = guidancePattern.exec(html)) !== null &&
22
+ results.length < maxResults) {
23
+ const path = match[1];
24
+ const taId = match[2].toUpperCase();
25
+ const title = match[3].trim();
26
+ if (results.some((r) => r.id === taId))
27
+ continue;
28
+ results.push({
29
+ id: taId,
30
+ source: "nice_ta",
31
+ title: `[${taId}] ${title}`,
32
+ authors: ["National Institute for Health and Care Excellence (NICE)"],
33
+ date: new Date().getFullYear().toString(),
34
+ study_type: "hta_report",
35
+ abstract: `NICE Technology Appraisal ${taId}. Search query: "${query}". This guidance recommends whether NHS England should fund this treatment. View for full appraisal determination, committee papers, and evidence review.`,
36
+ url: `https://www.nice.org.uk${path}`,
37
+ });
38
+ }
39
+ // Also look for in-development appraisals
40
+ const indevelopPattern = /href="(\/guidance\/indevelopment\/(gid-[^"]+))"[^>]*>([^<]+)/gi;
41
+ while ((match = indevelopPattern.exec(html)) !== null &&
42
+ results.length < maxResults) {
43
+ const path = match[1];
44
+ const gid = match[2];
45
+ const title = match[3].trim();
46
+ if (results.some((r) => r.id === gid))
47
+ continue;
48
+ results.push({
49
+ id: gid,
50
+ source: "nice_ta",
51
+ title: `[In Development] ${title}`,
52
+ authors: ["National Institute for Health and Care Excellence (NICE)"],
53
+ date: new Date().getFullYear().toString(),
54
+ study_type: "hta_report",
55
+ abstract: `NICE appraisal in development (${gid}). Search query: "${query}".`,
56
+ url: `https://www.nice.org.uk${path}`,
57
+ });
58
+ }
59
+ if (results.length > 0)
60
+ return results;
61
+ return fallbackResults(query, maxResults);
62
+ }
63
+ catch {
64
+ return fallbackResults(query, maxResults);
65
+ }
66
+ }
67
+ function fallbackResults(query, maxResults) {
68
+ return [
13
69
  {
14
- title: `NICE Committee Papers Archive`,
15
- abstract: `Archive of NICE Appraisal Committee meeting papers including company submission dossiers, ERG critique reports, patient/clinical expert statements. Useful for understanding committee reasoning and common critiques.`,
16
- url: `https://www.nice.org.uk/guidance/published?type=ta&ssup=committee-papers`,
70
+ id: "nice_ta_search",
71
+ source: "nice_ta",
72
+ title: `NICE Guidance Search: ${query}`,
73
+ authors: ["National Institute for Health and Care Excellence (NICE)"],
74
+ date: new Date().getFullYear().toString(),
75
+ study_type: "hta_report",
76
+ abstract: `No specific NICE Technology Appraisals found for "${query}". This may mean no TA has been published yet. Check the NICE website directly.`,
77
+ url: `https://www.nice.org.uk/search?q=${encodeURIComponent(query)}`,
17
78
  },
18
- ];
19
- return entries.slice(0, maxResults).map((e, i) => ({
20
- id: `nice_ta_${i}`,
21
- source: "nice_ta",
22
- title: e.title,
23
- authors: ["National Institute for Health and Care Excellence (NICE)"],
24
- date: new Date().getFullYear().toString(),
25
- study_type: "hta_report",
26
- abstract: e.abstract,
27
- url: e.url,
28
- }));
79
+ ].slice(0, maxResults);
29
80
  }
30
81
  //# sourceMappingURL=niceTa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"niceTa.js","sourceRoot":"","sources":["../../../src/providers/direct/niceTa.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAa,EACb,UAAkB;IAElB,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,sCAAsC,KAAK,EAAE;YACpD,QAAQ,EAAE,oPAAoP,KAAK,yJAAyJ;YAC5Z,GAAG,EAAE,oCAAoC,kBAAkB,CAAC,KAAK,CAAC,wDAAwD;SAC3H;QACD;YACE,KAAK,EAAE,gDAAgD;YACvD,QAAQ,EAAE,0RAA0R;YACpS,GAAG,EAAE,uCAAuC;SAC7C;QACD;YACE,KAAK,EAAE,+BAA+B;YACtC,QAAQ,EAAE,wNAAwN;YAClO,GAAG,EAAE,0EAA0E;SAChF;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,MAAM,EAAE,SAAkB;QAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,0DAA0D,CAAC;QACrE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"niceTa.js","sourceRoot":"","sources":["../../../src/providers/direct/niceTa.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export async function fetchTlv(query, maxResults) {
3
3
  {
4
4
  title: `TLV Sweden Decisions: ${query}`,
5
5
  abstract: `TLV (Tandvårds- och läkemedelsförmånsverket — Dental and Pharmaceutical Benefits Agency) makes reimbursement decisions for drugs in Sweden's pharmaceutical benefits scheme (LFN). Each decision includes clinical assessment, health economic evaluation, and reimbursement conditions. Search "${query}" to find TLV decisions relevant to the drug or indication. Key for Swedish market access and Nordic HTA benchmarking.`,
6
- url: `https://www.tlv.se/in-english/search.html?query=${encodeURIComponent(query)}`,
6
+ url: `https://www.tlv.se/beslut/sok-i-databasen.html?q=${encodeURIComponent(query)}`,
7
7
  },
8
8
  {
9
9
  title: `TLV General Guidelines for Economic Evaluations`,
@@ -1 +1 @@
1
- {"version":3,"file":"tlv.js","sourceRoot":"","sources":["../../../src/providers/direct/tlv.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAa,EACb,UAAkB;IAElB,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,yBAAyB,KAAK,EAAE;YACvC,QAAQ,EAAE,oSAAoS,KAAK,wHAAwH;YAC3a,GAAG,EAAE,mDAAmD,kBAAkB,CAAC,KAAK,CAAC,EAAE;SACpF;QACD;YACE,KAAK,EAAE,iDAAiD;YACxD,QAAQ,EAAE,gaAAga;YAC1a,GAAG,EAAE,0FAA0F;SAChG;QACD;YACE,KAAK,EAAE,mCAAmC;YAC1C,QAAQ,EAAE,qWAAqW;YAC/W,GAAG,EAAE,6CAA6C;SACnD;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,MAAM,EAAE,KAAc;QACtB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE;YACP,kGAAkG;SACnG;QACD,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"tlv.js","sourceRoot":"","sources":["../../../src/providers/direct/tlv.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAa,EACb,UAAkB;IAElB,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,yBAAyB,KAAK,EAAE;YACvC,QAAQ,EAAE,oSAAoS,KAAK,wHAAwH;YAC3a,GAAG,EAAE,oDAAoD,kBAAkB,CAAC,KAAK,CAAC,EAAE;SACrF;QACD;YACE,KAAK,EAAE,iDAAiD;YACxD,QAAQ,EAAE,gaAAga;YAC1a,GAAG,EAAE,0FAA0F;SAChG;QACD;YACE,KAAK,EAAE,mCAAmC;YAC1C,QAAQ,EAAE,qWAAqW;YAC/W,GAAG,EAAE,6CAA6C;SACnD;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,MAAM,EAAE,KAAc;QACtB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE;YACP,kGAAkG;SACnG;QACD,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -24,6 +24,7 @@ export interface LiteratureSearchParams {
24
24
  study_types?: StudyType[];
25
25
  output_format?: OutputFormat;
26
26
  project?: string;
27
+ runs?: number;
27
28
  }
28
29
  export interface CEModelParams {
29
30
  intervention: string;
@@ -117,6 +118,11 @@ export interface PSASummary {
117
118
  prob_ce: number;
118
119
  }>;
119
120
  evpi: number;
121
+ evppi: Array<{
122
+ parameter: string;
123
+ evppi: number;
124
+ evppi_proportion: number;
125
+ }>;
120
126
  scatter: Array<{
121
127
  delta_cost: number;
122
128
  delta_qaly: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -16,6 +16,12 @@ import { handleKnowledgeRead, knowledgeReadToolSchema, } from "./tools/knowledge
16
16
  import { handleKnowledgeWrite, knowledgeWriteToolSchema, } from "./tools/knowledgeWrite.js";
17
17
  import { handleProjectCreate, projectCreateToolSchema, } from "./tools/projectCreate.js";
18
18
  import { handleEvidenceNetwork, evidenceNetworkToolSchema, } from "./tools/evidenceNetwork.js";
19
+ import { handleIndirectComparison, indirectComparisonToolSchema, } from "./tools/indirectComparison.js";
20
+ import { handleBudgetImpactModel, budgetImpactModelToolSchema, } from "./tools/budgetImpactModel.js";
21
+ import { handlePopulationAdjustedComparison, populationAdjustedComparisonToolSchema, } from "./tools/populationAdjustedComparison.js";
22
+ import { handleSurvivalFitting, survivalFittingToolSchema, } from "./tools/survivalFitting.js";
23
+ import { handleScreenAbstracts, screenAbstractsToolSchema, } from "./tools/screenAbstracts.js";
24
+ import { handleValidateLinks, validateLinksToolSchema, } from "./tools/validateLinks.js";
19
25
  import { randomUUID } from "node:crypto";
20
26
  import { trackToolCall, trackSession, shutdownAnalytics } from "./analytics.js";
21
27
  import { createServer } from "node:http";
@@ -32,6 +38,12 @@ function createMcpServer() {
32
38
  knowledgeWriteToolSchema,
33
39
  projectCreateToolSchema,
34
40
  evidenceNetworkToolSchema,
41
+ indirectComparisonToolSchema,
42
+ budgetImpactModelToolSchema,
43
+ populationAdjustedComparisonToolSchema,
44
+ survivalFittingToolSchema,
45
+ screenAbstractsToolSchema,
46
+ validateLinksToolSchema,
35
47
  ],
36
48
  }));
37
49
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
@@ -64,6 +76,24 @@ function createMcpServer() {
64
76
  case "evidence_network":
65
77
  result = await handleEvidenceNetwork(args);
66
78
  break;
79
+ case "indirect_comparison":
80
+ result = await handleIndirectComparison(args);
81
+ break;
82
+ case "budget_impact_model":
83
+ result = await handleBudgetImpactModel(args);
84
+ break;
85
+ case "population_adjusted_comparison":
86
+ result = await handlePopulationAdjustedComparison(args);
87
+ break;
88
+ case "survival_fitting":
89
+ result = await handleSurvivalFitting(args);
90
+ break;
91
+ case "screen_abstracts":
92
+ result = await handleScreenAbstracts(args);
93
+ break;
94
+ case "validate_links":
95
+ result = await handleValidateLinks(args);
96
+ break;
67
97
  default:
68
98
  trackToolCall(name, Date.now() - callStart, "error");
69
99
  return {
@@ -100,14 +130,44 @@ async function runStdio() {
100
130
  console.error("HEORAgent MCP server running on stdio");
101
131
  }
102
132
  // --- HTTP mode (--http flag or MCP_HTTP_PORT env) ---
133
+ // --- Session management with TTL and limits ---
134
+ const MAX_SESSIONS = parseInt(process.env.MCP_MAX_SESSIONS ?? "100", 10);
135
+ const SESSION_TTL_MS = parseInt(process.env.MCP_SESSION_TTL_MS ?? String(30 * 60 * 1000), 10); // 30 min default
136
+ const sessions = {};
137
+ function evictStaleSessions() {
138
+ const now = Date.now();
139
+ for (const [id, session] of Object.entries(sessions)) {
140
+ if (now - session.lastActivity > SESSION_TTL_MS) {
141
+ session.transport.close?.();
142
+ delete sessions[id];
143
+ trackSession("session_end", id, { reason: "ttl_eviction" });
144
+ }
145
+ }
146
+ }
147
+ // Periodic eviction every 5 minutes
148
+ const evictionInterval = setInterval(evictStaleSessions, 5 * 60 * 1000);
149
+ evictionInterval.unref(); // don't prevent process exit
103
150
  async function runHttp(port) {
104
- const sessions = {};
105
151
  const __dirname = dirname(fileURLToPath(import.meta.url));
152
+ // Allowed CORS origins (comma-separated env var, or "*" for dev)
153
+ const allowedOrigins = (process.env.MCP_CORS_ORIGINS ?? "*")
154
+ .split(",")
155
+ .map((s) => s.trim());
156
+ // Optional bearer token for authentication
157
+ const authToken = process.env.MCP_AUTH_TOKEN;
106
158
  const httpServer = createServer(async (req, res) => {
107
- // CORS headers
108
- res.setHeader("Access-Control-Allow-Origin", "*");
159
+ // CORS headers — restrict to allowed origins
160
+ const origin = req.headers.origin ?? "";
161
+ const corsOrigin = allowedOrigins.includes("*")
162
+ ? "*"
163
+ : allowedOrigins.includes(origin)
164
+ ? origin
165
+ : "";
166
+ if (corsOrigin) {
167
+ res.setHeader("Access-Control-Allow-Origin", corsOrigin);
168
+ }
109
169
  res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
110
- res.setHeader("Access-Control-Allow-Headers", "Content-Type, mcp-session-id");
170
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type, mcp-session-id, Authorization");
111
171
  res.setHeader("Access-Control-Expose-Headers", "mcp-session-id");
112
172
  if (req.method === "OPTIONS") {
113
173
  res.writeHead(204);
@@ -141,6 +201,15 @@ async function runHttp(port) {
141
201
  }
142
202
  // MCP endpoint
143
203
  if (req.url === "/mcp") {
204
+ // Auth check (if MCP_AUTH_TOKEN is set)
205
+ if (authToken) {
206
+ const authHeader = req.headers.authorization ?? "";
207
+ if (authHeader !== `Bearer ${authToken}`) {
208
+ res.writeHead(401, { "Content-Type": "application/json" });
209
+ res.end(JSON.stringify({ error: "Unauthorized" }));
210
+ return;
211
+ }
212
+ }
144
213
  const sessionId = req.headers["mcp-session-id"];
145
214
  if (req.method === "POST") {
146
215
  // Parse body
@@ -151,20 +220,30 @@ async function runHttp(port) {
151
220
  const body = JSON.parse(Buffer.concat(chunks).toString());
152
221
  let transport;
153
222
  if (sessionId && sessions[sessionId]) {
154
- transport = sessions[sessionId];
223
+ sessions[sessionId].lastActivity = Date.now();
224
+ transport = sessions[sessionId].transport;
155
225
  }
156
226
  else if (!sessionId && body?.method === "initialize") {
227
+ // Enforce session limit
228
+ evictStaleSessions();
229
+ if (Object.keys(sessions).length >= MAX_SESSIONS) {
230
+ res.writeHead(503, { "Content-Type": "application/json" });
231
+ res.end(JSON.stringify({
232
+ error: "Too many active sessions. Try again later.",
233
+ }));
234
+ return;
235
+ }
157
236
  // New session
158
237
  const server = createMcpServer();
159
238
  transport = new StreamableHTTPServerTransport({
160
239
  sessionIdGenerator: () => randomUUID(),
161
240
  onsessioninitialized: (id) => {
162
- sessions[id] = transport;
241
+ sessions[id] = { transport, lastActivity: Date.now() };
163
242
  trackSession("session_start", id);
164
243
  },
165
244
  });
166
245
  transport.onclose = () => {
167
- const id = Object.entries(sessions).find(([, t]) => t === transport)?.[0];
246
+ const id = Object.entries(sessions).find(([, s]) => s.transport === transport)?.[0];
168
247
  if (id) {
169
248
  trackSession("session_end", id);
170
249
  delete sessions[id];
@@ -186,12 +265,13 @@ async function runHttp(port) {
186
265
  res.end(JSON.stringify({ error: "Invalid session" }));
187
266
  return;
188
267
  }
189
- await sessions[sessionId].handleRequest(req, res);
268
+ sessions[sessionId].lastActivity = Date.now();
269
+ await sessions[sessionId].transport.handleRequest(req, res);
190
270
  return;
191
271
  }
192
272
  if (req.method === "DELETE") {
193
273
  if (sessionId && sessions[sessionId]) {
194
- await sessions[sessionId].close();
274
+ await sessions[sessionId].transport.close();
195
275
  delete sessions[sessionId];
196
276
  }
197
277
  res.writeHead(200);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import type { ToolResult } from "../providers/types.js";
2
+ export declare function handleBudgetImpactModel(rawParams: unknown): Promise<ToolResult>;
3
+ export declare const budgetImpactModelToolSchema: {
4
+ name: string;
5
+ description: string;
6
+ inputSchema: {
7
+ type: string;
8
+ properties: {
9
+ intervention: {
10
+ type: string;
11
+ description: string;
12
+ };
13
+ comparator: {
14
+ type: string;
15
+ description: string;
16
+ };
17
+ indication: {
18
+ type: string;
19
+ description: string;
20
+ };
21
+ perspective: {
22
+ type: string;
23
+ enum: string[];
24
+ };
25
+ time_horizon_years: {
26
+ type: string;
27
+ description: string;
28
+ };
29
+ eligible_population: {
30
+ type: string;
31
+ description: string;
32
+ };
33
+ population_growth_rate: {
34
+ type: string;
35
+ description: string;
36
+ };
37
+ market_share: {
38
+ type: string;
39
+ description: string;
40
+ properties: {
41
+ year_1: {
42
+ type: string;
43
+ };
44
+ year_2: {
45
+ type: string;
46
+ };
47
+ year_3: {
48
+ type: string;
49
+ };
50
+ year_4: {
51
+ type: string;
52
+ };
53
+ year_5: {
54
+ type: string;
55
+ };
56
+ };
57
+ required: string[];
58
+ };
59
+ drug_cost_annual: {
60
+ type: string;
61
+ description: string;
62
+ };
63
+ comparator_cost_annual: {
64
+ type: string;
65
+ description: string;
66
+ };
67
+ admin_cost_annual: {
68
+ type: string;
69
+ description: string;
70
+ };
71
+ monitoring_cost_annual: {
72
+ type: string;
73
+ description: string;
74
+ };
75
+ ae_cost_annual: {
76
+ type: string;
77
+ description: string;
78
+ };
79
+ comparator_ae_cost_annual: {
80
+ type: string;
81
+ description: string;
82
+ };
83
+ displacement: {
84
+ type: string;
85
+ description: string;
86
+ items: {
87
+ type: string;
88
+ properties: {
89
+ treatment: {
90
+ type: string;
91
+ };
92
+ share: {
93
+ type: string;
94
+ description: string;
95
+ };
96
+ cost_annual: {
97
+ type: string;
98
+ description: string;
99
+ };
100
+ };
101
+ required: string[];
102
+ };
103
+ };
104
+ output_format: {
105
+ type: string;
106
+ enum: string[];
107
+ };
108
+ project: {
109
+ type: string;
110
+ description: string;
111
+ };
112
+ };
113
+ required: string[];
114
+ };
115
+ };
116
+ //# sourceMappingURL=budgetImpactModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budgetImpactModel.d.ts","sourceRoot":"","sources":["../../src/tools/budgetImpactModel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAyIxD,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,UAAU,CAAC,CAyFrB;AAED,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmGvC,CAAC"}