heor-agent-mcp 1.1.1 → 1.2.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
@@ -5,6 +5,8 @@
5
5
  [![node](https://img.shields.io/node/v/heor-agent-mcp.svg)](https://nodejs.org)
6
6
  [![Try in ChatGPT](https://img.shields.io/badge/Try_in-ChatGPT-10A37F?logo=openai&logoColor=white)](https://chatgpt.com/g/g-69f651f588f48191b1d69d54409857ec-heoragent)
7
7
  [![Web UI](https://img.shields.io/badge/Web_UI-Vercel-000000?logo=vercel&logoColor=white)](https://web-michael-ns-projects.vercel.app)
8
+ [![EU AI Pact](https://img.shields.io/badge/EU_AI_Pact-Signatory-003399?logo=europeanunion&logoColor=FFCC00)](https://web-michael-ns-projects.vercel.app/ai-transparency)
9
+ [![AI Transparency](https://img.shields.io/badge/AI-Transparency_Note-blue)](https://web-michael-ns-projects.vercel.app/ai-transparency)
8
10
 
9
11
  **AI-powered Health Economics and Outcomes Research (HEOR) agent as a Model Context Protocol server.**
10
12
 
@@ -68,7 +70,7 @@ Add to your MCP configuration:
68
70
 
69
71
  ---
70
72
 
71
- ## Tools (20)
73
+ ## Tools (21)
72
74
 
73
75
  | Tool | Purpose |
74
76
  |------|---------|
@@ -366,7 +368,7 @@ A companion chat interface is available at:
366
368
 
367
369
  **https://web-michael-ns-projects.vercel.app**
368
370
 
369
- - Chat with Claude Sonnet 4.6 + all 20 HEOR tools
371
+ - Chat with Claude Sonnet 4.6 + all 21 HEOR tools
370
372
  - **BYOK (Bring Your Own Key)** — paste your Anthropic API key in the settings; it stays in your browser's localStorage and is never stored on our servers
371
373
  - Markdown rendering with styled tables, tool call cards with live progress timers, and theme-aware mermaid network diagrams
372
374
  - 12 example prompts covering literature search, CEA, BIA, NMA, ITC feasibility, RoB, EQ-5D 5L, EU JCA dossiers
@@ -528,6 +530,19 @@ MIT — see [LICENSE](./LICENSE).
528
530
 
529
531
  ---
530
532
 
533
+ ## Trust & Transparency
534
+
535
+ HEORAgent is a **research and analysis tool** — not a clinical decision-support system. It is **not** classified as high-risk under the EU AI Act because it does not drive individual diagnosis, treatment, or monitoring; it falls under limited-risk transparency obligations only. Every output is intended for review by a qualified HEOR/HTA/PV professional before any action is taken.
536
+
537
+ - **EU AI Pact signatory** — committed to AI governance, high-risk system mapping, and AI literacy promotion (voluntary commitments per the European Commission, ahead of the AI Act's August 2026 deadline).
538
+ - **PRISMA-style audit trail** on every tool call (sources queried, succeeded, failed, assumptions applied).
539
+ - **AI commentary explicitly labelled** — domain claims (ICERs, trial results, regulatory decisions) come exclusively from tool outputs, never from training-data recall.
540
+ - **Methodology cited inline** — ISPOR, NICE DSU TSDs, NICE PMG36, Cochrane Handbook, GRADE, EMA GVP, Cope 2014, Phillippo 2016, Biz 2026.
541
+
542
+ Full statement: **[/ai-transparency](https://web-michael-ns-projects.vercel.app/ai-transparency)** — risk classification, human oversight model, methodological references, and reporting channel.
543
+
544
+ ---
545
+
531
546
  ## Disclaimer
532
547
 
533
548
  **All outputs are preliminary and for research orientation only.** Results require validation by a qualified health economist before use in any HTA submission, payer negotiation, regulatory filing, or clinical decision. This tool does not replace professional HEOR expertise.
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Country profiles for the EU JCA PICO matrix analyzer (design log #13).
3
+ * Source of truth: latest available G-BA / HAS / AIFA / RedETS /
4
+ * Zorginstituut / NICE clinical-practice and HTA recommendations as of
5
+ * Q2 2026.
6
+ *
7
+ * Comparator lookups are coarse — molecule name + 1-line rationale only.
8
+ * Bumped via JCA_REVISION when EUnetHTA publishes new methodological
9
+ * guidance or country preferences change materially.
10
+ */
11
+ import type { CountryProfile, IndicationCategory, Jurisdiction, OutcomePriority } from "./types.js";
12
+ export declare const JCA_REVISION: "2026-05";
13
+ export declare const COUNTRY_PROFILES: Record<Jurisdiction, CountryProfile>;
14
+ /**
15
+ * Coarse classifier mapping a free-text indication to a category.
16
+ * Errs on "other" rather than guessing wrong.
17
+ */
18
+ export declare function classifyIndication(indication: string): IndicationCategory;
19
+ export declare function profileFor(jurisdiction: Jurisdiction): CountryProfile;
20
+ export declare function outcomePriorityForCategory(category: IndicationCategory): OutcomePriority[];
21
+ //# sourceMappingURL=countryRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countryRegistry.d.ts","sourceRoot":"","sources":["../../src/jca/countryRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAEV,cAAc,EAEd,kBAAkB,EAClB,YAAY,EAEZ,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,YAAY,EAAG,SAAkB,CAAC;AAuL/C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,YAAY,EAAE,cAAc,CAsBjE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAoDzE;AAED,wBAAgB,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,CAErE;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,kBAAkB,GAC3B,eAAe,EAAE,CAEnB"}
@@ -0,0 +1,248 @@
1
+ export const JCA_REVISION = "2026-05";
2
+ function instrumentsFor(category) {
3
+ if (category === "oncology_nsclc" || category === "oncology_other") {
4
+ return ["EQ-5D-5L", "EORTC QLQ-C30"];
5
+ }
6
+ if (category === "ibd_uc" || category === "ibd_cd") {
7
+ return ["EQ-5D-5L", "IBDQ-32"];
8
+ }
9
+ if (category === "diabetes_t2" || category === "obesity") {
10
+ return ["EQ-5D-5L", "IWQOL-Lite"];
11
+ }
12
+ return ["EQ-5D-5L"];
13
+ }
14
+ function oncologyOutcomePriority() {
15
+ return ["OS", "PFS", "HRQoL", "AE"];
16
+ }
17
+ function ibdOutcomePriority() {
18
+ return ["remission", "HRQoL", "AE", "other"];
19
+ }
20
+ function chronicOutcomePriority() {
21
+ return ["HRQoL", "remission", "AE", "other"];
22
+ }
23
+ function outcomePriorityFor(category) {
24
+ if (category === "oncology_nsclc" || category === "oncology_other") {
25
+ return oncologyOutcomePriority();
26
+ }
27
+ if (category === "ibd_uc" || category === "ibd_cd") {
28
+ return ibdOutcomePriority();
29
+ }
30
+ return chronicOutcomePriority();
31
+ }
32
+ function nsclcSecondLineComparators(country) {
33
+ // NSCLC 2L EGFR-mutant: chemo doublet (carboplatin + pemetrexed) is
34
+ // standard everywhere; immunotherapy (pembrolizumab/nivolumab) is the
35
+ // alternative in DE/NL; ramucirumab + erlotinib is more common in IT/ES.
36
+ const instruments = instrumentsFor("oncology_nsclc");
37
+ const chemo = {
38
+ molecule: "carboplatin + pemetrexed",
39
+ rationale: `Chemotherapy doublet — standard 2L NSCLC backbone in ${country.toUpperCase()} per local clinical guidelines.`,
40
+ outcome_instrument_preferences: instruments,
41
+ };
42
+ const io = {
43
+ molecule: "pembrolizumab",
44
+ rationale: `Immunotherapy — frequently considered as comparator for 2L NSCLC where PD-L1 status supports it. Recognised in ${country.toUpperCase()} HTA submissions.`,
45
+ outcome_instrument_preferences: instruments,
46
+ };
47
+ const tki_alt = {
48
+ molecule: "afatinib",
49
+ rationale: `Alternative TKI option in EGFR-mutant 2L; relevant context comparator in ${country.toUpperCase()}.`,
50
+ outcome_instrument_preferences: instruments,
51
+ };
52
+ if (country === "de" || country === "nl")
53
+ return [chemo, io];
54
+ if (country === "fr")
55
+ return [chemo, tki_alt];
56
+ if (country === "it" || country === "es")
57
+ return [chemo, io, tki_alt];
58
+ if (country === "uk")
59
+ return [chemo, io];
60
+ return [chemo];
61
+ }
62
+ function ibdUcBiologicComparators(country) {
63
+ const instruments = instrumentsFor("ibd_uc");
64
+ // UC biologics universe (post-2024): vedolizumab, infliximab, ustekinumab,
65
+ // mirikizumab, ozanimod. National HTA preferences vary.
66
+ const ved = {
67
+ molecule: "vedolizumab",
68
+ rationale: `Gut-selective integrin inhibitor — established 1L biologic in ${country.toUpperCase()} for moderate-to-severe UC.`,
69
+ outcome_instrument_preferences: instruments,
70
+ };
71
+ const ifx = {
72
+ molecule: "infliximab",
73
+ rationale: `Anti-TNF — historical UC standard; biosimilar pricing keeps it as a comparator anchor in ${country.toUpperCase()}.`,
74
+ outcome_instrument_preferences: instruments,
75
+ };
76
+ const ust = {
77
+ molecule: "ustekinumab",
78
+ rationale: `IL-12/23 inhibitor — recognised UC biologic option.`,
79
+ outcome_instrument_preferences: instruments,
80
+ };
81
+ const oz = {
82
+ molecule: "ozanimod",
83
+ rationale: `S1P receptor modulator — oral option, increasingly considered in 1L moderate UC.`,
84
+ outcome_instrument_preferences: instruments,
85
+ };
86
+ if (country === "de")
87
+ return [ved, ifx, ust];
88
+ if (country === "fr")
89
+ return [ved, ifx, oz];
90
+ if (country === "it" || country === "es")
91
+ return [ved, ifx, ust, oz];
92
+ if (country === "nl")
93
+ return [ved, ust];
94
+ if (country === "uk")
95
+ return [ved, ifx, ust];
96
+ return [ved, ifx];
97
+ }
98
+ function genericComparators(country, category) {
99
+ const instruments = instrumentsFor(category);
100
+ return [
101
+ {
102
+ molecule: "standard of care (country-specific)",
103
+ rationale: `Coarse placeholder — confirm against latest ${country.toUpperCase()} HTA precedents and clinical guidelines.`,
104
+ outcome_instrument_preferences: instruments,
105
+ },
106
+ ];
107
+ }
108
+ function comparatorsFor(country, category, drug_class, line) {
109
+ if (category === "oncology_nsclc" && line === "second_line") {
110
+ return nsclcSecondLineComparators(country);
111
+ }
112
+ if (category === "ibd_uc") {
113
+ return ibdUcBiologicComparators(country);
114
+ }
115
+ // Drug-class-aware fallback for unknown indications
116
+ if (category === "oncology_other" || category === "oncology_nsclc") {
117
+ const instruments = instrumentsFor(category);
118
+ return [
119
+ {
120
+ molecule: "standard chemotherapy doublet",
121
+ rationale: `Default oncology comparator anchor for ${country.toUpperCase()}; refine against the indication's clinical trial protocol.`,
122
+ outcome_instrument_preferences: instruments,
123
+ },
124
+ ];
125
+ }
126
+ void drug_class;
127
+ return genericComparators(country, category);
128
+ }
129
+ function subgroupsFor(category) {
130
+ if (category === "oncology_nsclc") {
131
+ return [
132
+ "EGFR mutation status",
133
+ "PD-L1 TPS (≥50% / 1-49% / <1%)",
134
+ "ECOG performance status (0-1 vs 2)",
135
+ "brain metastases (yes/no)",
136
+ ];
137
+ }
138
+ if (category === "ibd_uc") {
139
+ return [
140
+ "Mayo total score (moderate vs severe)",
141
+ "prior biologic exposure (TNF-experienced vs naive)",
142
+ "extent of colitis (left-sided vs extensive)",
143
+ ];
144
+ }
145
+ if (category === "ibd_cd") {
146
+ return [
147
+ "CDAI (moderate vs severe)",
148
+ "prior biologic exposure",
149
+ "fistulizing vs luminal disease",
150
+ ];
151
+ }
152
+ if (category === "diabetes_t2") {
153
+ return ["baseline HbA1c", "BMI category", "CV risk status"];
154
+ }
155
+ if (category === "obesity") {
156
+ return ["BMI category", "comorbidities (T2D, CV, OSA)"];
157
+ }
158
+ return ["age strata", "comorbidity status"];
159
+ }
160
+ function profile(jurisdiction, hta_body) {
161
+ return {
162
+ jurisdiction,
163
+ hta_body,
164
+ outcome_instrument_preferences: ["EQ-5D-5L"],
165
+ outcome_priority: ["OS", "PFS", "HRQoL", "AE"],
166
+ comparators: (cat, dc, line) => comparatorsFor(jurisdiction, cat, dc, line),
167
+ population_subgroups: (cat) => subgroupsFor(cat),
168
+ };
169
+ }
170
+ export const COUNTRY_PROFILES = {
171
+ de: profile("de", "G-BA / IQWiG"),
172
+ fr: profile("fr", "HAS"),
173
+ it: profile("it", "AIFA"),
174
+ es: profile("es", "AEMPS / RedETS"),
175
+ nl: profile("nl", "Zorginstituut Nederland"),
176
+ uk: profile("uk", "NICE (post-Brexit, context only)"),
177
+ eu_other: {
178
+ jurisdiction: "eu_other",
179
+ hta_body: "Other EU member states — consult national HTA",
180
+ outcome_instrument_preferences: ["EQ-5D-5L"],
181
+ outcome_priority: ["OS", "PFS", "HRQoL", "AE"],
182
+ comparators: () => [
183
+ {
184
+ molecule: "consult national HTA body",
185
+ rationale: "v1 of jca_pico_scope covers DE/FR/IT/ES/NL + UK only. For other EU member states (BE, AT, SE, DK, FI, PL, CZ, HU, etc.), consult the national HTA body for jurisdiction-specific comparator preferences.",
186
+ outcome_instrument_preferences: ["EQ-5D-5L"],
187
+ },
188
+ ],
189
+ population_subgroups: () => [],
190
+ },
191
+ };
192
+ /**
193
+ * Coarse classifier mapping a free-text indication to a category.
194
+ * Errs on "other" rather than guessing wrong.
195
+ */
196
+ export function classifyIndication(indication) {
197
+ const x = indication.toLowerCase();
198
+ if (x.includes("nsclc") ||
199
+ x.includes("non-small cell lung") ||
200
+ x.includes("lung cancer")) {
201
+ return "oncology_nsclc";
202
+ }
203
+ if (x.includes("cancer") ||
204
+ x.includes("oncolog") ||
205
+ x.includes("carcinoma") ||
206
+ x.includes("tumour") ||
207
+ x.includes("tumor") ||
208
+ x.includes("myeloma") ||
209
+ x.includes("leukemia") ||
210
+ x.includes("leukaemia") ||
211
+ x.includes("lymphoma")) {
212
+ return "oncology_other";
213
+ }
214
+ if (x.includes("ulcerative colitis") || x.includes("uc"))
215
+ return "ibd_uc";
216
+ if (x.includes("crohn"))
217
+ return "ibd_cd";
218
+ if (x.includes("type 2 diabetes") || x.includes("t2d") || x.includes("diabetes mellitus type 2")) {
219
+ return "diabetes_t2";
220
+ }
221
+ if (x.includes("obesity") || x.includes("overweight"))
222
+ return "obesity";
223
+ if (x.includes("cardiovascular") ||
224
+ x.includes("heart failure") ||
225
+ x.includes("hypertension")) {
226
+ return "cardiovascular";
227
+ }
228
+ if (x.includes("rheumatoid") ||
229
+ x.includes("psoriatic") ||
230
+ x.includes("ankylosing") ||
231
+ x.includes("lupus")) {
232
+ return "rheumatology";
233
+ }
234
+ if (x.includes("multiple sclerosis") ||
235
+ x.includes("alzheimer") ||
236
+ x.includes("parkinson") ||
237
+ x.includes("epilepsy")) {
238
+ return "neurology";
239
+ }
240
+ return "other";
241
+ }
242
+ export function profileFor(jurisdiction) {
243
+ return COUNTRY_PROFILES[jurisdiction];
244
+ }
245
+ export function outcomePriorityForCategory(category) {
246
+ return outcomePriorityFor(category);
247
+ }
248
+ //# sourceMappingURL=countryRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countryRegistry.js","sourceRoot":"","sources":["../../src/jca/countryRegistry.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,YAAY,GAAG,SAAkB,CAAC;AAE/C,SAAS,cAAc,CAAC,QAA4B;IAClD,IAAI,QAAQ,KAAK,gBAAgB,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACnE,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,UAAU,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,QAA4B;IACtD,IAAI,QAAQ,KAAK,gBAAgB,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACnE,OAAO,uBAAuB,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,sBAAsB,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAqB;IACvD,oEAAoE;IACpE,sEAAsE;IACtE,yEAAyE;IACzE,MAAM,WAAW,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACrD,MAAM,KAAK,GAAoB;QAC7B,QAAQ,EAAE,0BAA0B;QACpC,SAAS,EAAE,wDAAwD,OAAO,CAAC,WAAW,EAAE,iCAAiC;QACzH,8BAA8B,EAAE,WAAW;KAC5C,CAAC;IACF,MAAM,EAAE,GAAoB;QAC1B,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,kHAAkH,OAAO,CAAC,WAAW,EAAE,mBAAmB;QACrK,8BAA8B,EAAE,WAAW;KAC5C,CAAC;IACF,MAAM,OAAO,GAAoB;QAC/B,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,4EAA4E,OAAO,CAAC,WAAW,EAAE,GAAG;QAC/G,8BAA8B,EAAE,WAAW;KAC5C,CAAC;IACF,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACtE,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAqB;IACrD,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,2EAA2E;IAC3E,wDAAwD;IACxD,MAAM,GAAG,GAAoB;QAC3B,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,iEAAiE,OAAO,CAAC,WAAW,EAAE,6BAA6B;QAC9H,8BAA8B,EAAE,WAAW;KAC5C,CAAC;IACF,MAAM,GAAG,GAAoB;QAC3B,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,4FAA4F,OAAO,CAAC,WAAW,EAAE,GAAG;QAC/H,8BAA8B,EAAE,WAAW;KAC5C,CAAC;IACF,MAAM,GAAG,GAAoB;QAC3B,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,qDAAqD;QAChE,8BAA8B,EAAE,WAAW;KAC5C,CAAC;IACF,MAAM,EAAE,GAAoB;QAC1B,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,kFAAkF;QAC7F,8BAA8B,EAAE,WAAW;KAC5C,CAAC;IACF,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAqB,EACrB,QAA4B;IAE5B,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7C,OAAO;QACL;YACE,QAAQ,EAAE,qCAAqC;YAC/C,SAAS,EAAE,+CAA+C,OAAO,CAAC,WAAW,EAAE,0CAA0C;YACzH,8BAA8B,EAAE,WAAW;SAC5C;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,OAAqB,EACrB,QAA4B,EAC5B,UAAqB,EACrB,IAAmB;IAEnB,IAAI,QAAQ,KAAK,gBAAgB,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC5D,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,oDAAoD;IACpD,IAAI,QAAQ,KAAK,gBAAgB,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACnE,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO;YACL;gBACE,QAAQ,EAAE,+BAA+B;gBACzC,SAAS,EAAE,0CAA0C,OAAO,CAAC,WAAW,EAAE,4DAA4D;gBACtI,8BAA8B,EAAE,WAAW;aAC5C;SACF,CAAC;IACJ,CAAC;IACD,KAAK,UAAU,CAAC;IAChB,OAAO,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,YAAY,CAAC,QAA4B;IAChD,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QAClC,OAAO;YACL,sBAAsB;YACtB,gCAAgC;YAChC,oCAAoC;YACpC,2BAA2B;SAC5B,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO;YACL,uCAAuC;YACvC,oDAAoD;YACpD,6CAA6C;SAC9C,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO;YACL,2BAA2B;YAC3B,yBAAyB;YACzB,gCAAgC;SACjC,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,OAAO,CAAC,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,cAAc,EAAE,8BAA8B,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,OAAO,CACd,YAA0B,EAC1B,QAAgB;IAEhB,OAAO;QACL,YAAY;QACZ,QAAQ;QACR,8BAA8B,EAAE,CAAC,UAAU,CAAC;QAC5C,gBAAgB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;QAC9C,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC;QAC3E,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAyC;IACpE,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC;IACjC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;IACxB,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;IACzB,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC;IACnC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC;IAC5C,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,kCAAkC,CAAC;IACrD,QAAQ,EAAE;QACR,YAAY,EAAE,UAAU;QACxB,QAAQ,EAAE,+CAA+C;QACzD,8BAA8B,EAAE,CAAC,UAAU,CAAC;QAC5C,gBAAgB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;QAC9C,WAAW,EAAE,GAAG,EAAE,CAAC;YACjB;gBACE,QAAQ,EAAE,2BAA2B;gBACrC,SAAS,EACP,0MAA0M;gBAC5M,8BAA8B,EAAE,CAAC,UAAU,CAAC;aAC7C;SACF;QACD,oBAAoB,EAAE,GAAG,EAAE,CAAC,EAAE;KAC/B;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,MAAM,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACnC,IACE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QACnB,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACjC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EACzB,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,IACE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACpB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QACrB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACpB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QACnB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QACrB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACtB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EACtB,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1E,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IACzC,IAAI,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACjG,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,SAAS,CAAC;IACxE,IACE,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC5B,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC3B,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAC1B,CAAC;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,IACE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EACnB,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,IACE,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAChC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EACtB,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,YAA0B;IACnD,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAA4B;IAE5B,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { ComparatorEntry, DrugClass, Jurisdiction, LineOfTherapy, PicoMatrix } from "./types.js";
2
+ export interface ScopeBuilderInput {
3
+ drug: string;
4
+ indication: string;
5
+ drug_class: DrugClass;
6
+ mechanism_of_action?: string;
7
+ line_of_therapy: LineOfTherapy;
8
+ biomarker_status?: string;
9
+ jurisdictions: Jurisdiction[];
10
+ regulatory_context: "pre_authorisation" | "post_authorisation" | "conditional_approval";
11
+ }
12
+ export declare function buildScope(input: ScopeBuilderInput): PicoMatrix;
13
+ /** Lists every comparator molecule a country profile produced — used for the markdown report. */
14
+ export declare function flattenComparators(country_specific: PicoMatrix["country_specific"]): ComparatorEntry[];
15
+ //# sourceMappingURL=scopeBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopeBuilder.d.ts","sourceRoot":"","sources":["../../src/jca/scopeBuilder.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,SAAS,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,aAAa,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,kBAAkB,EACd,mBAAmB,GACnB,oBAAoB,GACpB,sBAAsB,CAAC;CAC5B;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAqC/D;AA2DD,iGAAiG;AACjG,wBAAgB,kBAAkB,CAChC,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,CAAC,GAC/C,eAAe,EAAE,CAInB"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Pure scope-builder logic for jca_pico_scope. Given a normalised input,
3
+ * returns a fully-populated PicoMatrix without any I/O. See design log #13.
4
+ */
5
+ import { classifyIndication, JCA_REVISION, outcomePriorityForCategory, profileFor, } from "./countryRegistry.js";
6
+ export function buildScope(input) {
7
+ const category = classifyIndication(input.indication);
8
+ const country_specific = input.jurisdictions.map((j) => {
9
+ const p = profileFor(j);
10
+ const comparators = p.comparators(category, input.drug_class, input.line_of_therapy);
11
+ return {
12
+ jurisdiction: j,
13
+ hta_body: p.hta_body,
14
+ comparators,
15
+ population_subgroups: p.population_subgroups(category),
16
+ outcome_priorities: outcomePriorityForCategory(category),
17
+ };
18
+ });
19
+ const distinctMolecules = new Set();
20
+ for (const c of country_specific) {
21
+ for (const cmp of c.comparators)
22
+ distinctMolecules.add(cmp.molecule);
23
+ }
24
+ const distinct_comparator_count = distinctMolecules.size;
25
+ const heterogeneity_warning = input.jurisdictions.length > 1 && distinct_comparator_count >= 3;
26
+ const picos = buildPicos(input, country_specific);
27
+ const rationale = buildRationale(input, category, distinct_comparator_count);
28
+ return {
29
+ drug: input.drug,
30
+ indication: input.indication,
31
+ jca_revision: JCA_REVISION,
32
+ picos,
33
+ country_specific,
34
+ heterogeneity_warning,
35
+ distinct_comparator_count,
36
+ rationale,
37
+ };
38
+ }
39
+ function buildPicos(input, country_specific) {
40
+ const seen = new Set();
41
+ const picos = [];
42
+ let counter = 1;
43
+ const populationBase = input.biomarker_status
44
+ ? `${input.indication}; biomarker: ${input.biomarker_status}`
45
+ : input.indication;
46
+ for (const country of country_specific) {
47
+ for (const cmp of country.comparators) {
48
+ const key = `${cmp.molecule}::${country.outcome_priorities.join(",")}`;
49
+ if (seen.has(key))
50
+ continue;
51
+ seen.add(key);
52
+ picos.push({
53
+ id: `PICO-${counter}`,
54
+ population: populationBase,
55
+ comparator: cmp.molecule,
56
+ outcomes: country.outcome_priorities.map((o) => o.toString()),
57
+ });
58
+ counter += 1;
59
+ }
60
+ }
61
+ if (picos.length === 0) {
62
+ picos.push({
63
+ id: "PICO-1",
64
+ population: populationBase,
65
+ comparator: "standard of care",
66
+ outcomes: ["clinical effectiveness", "HRQoL", "AE"],
67
+ });
68
+ }
69
+ return picos;
70
+ }
71
+ function buildRationale(input, category, distinct) {
72
+ const parts = [];
73
+ parts.push(`JCA scope for ${input.drug} in ${input.indication} (${category} category) across ${input.jurisdictions.length} jurisdiction(s).`);
74
+ if (input.regulatory_context === "pre_authorisation") {
75
+ parts.push("Anticipatory scope — JCA scope is finalised at marketing authorisation; this output is for protocol-design and pre-MA market access strategy only.");
76
+ }
77
+ if (distinct >= 3) {
78
+ parts.push(`Heterogeneity warning: ${distinct} distinct comparator molecules across jurisdictions. Plan for evidence_network + itc_feasibility before estimation.`);
79
+ }
80
+ return parts.join(" ");
81
+ }
82
+ /** Lists every comparator molecule a country profile produced — used for the markdown report. */
83
+ export function flattenComparators(country_specific) {
84
+ const out = [];
85
+ for (const c of country_specific)
86
+ out.push(...c.comparators);
87
+ return out;
88
+ }
89
+ //# sourceMappingURL=scopeBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopeBuilder.js","sourceRoot":"","sources":["../../src/jca/scopeBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ export type Jurisdiction = "de" | "fr" | "it" | "es" | "nl" | "uk" | "eu_other";
2
+ export type DrugClass = "monoclonal_antibody" | "small_molecule" | "atmp_cell" | "atmp_gene" | "atmp_tissue" | "biosimilar" | "vaccine" | "radiopharmaceutical" | "other";
3
+ export type LineOfTherapy = "first_line" | "second_line" | "third_line_plus" | "any";
4
+ export type OutcomePriority = "OS" | "PFS" | "HRQoL" | "AE" | "remission" | "other";
5
+ export interface ComparatorEntry {
6
+ molecule: string;
7
+ rationale: string;
8
+ outcome_instrument_preferences: string[];
9
+ }
10
+ export interface CountryProfile {
11
+ jurisdiction: Jurisdiction;
12
+ hta_body: string;
13
+ outcome_instrument_preferences: string[];
14
+ outcome_priority: OutcomePriority[];
15
+ /** Pure function — given a drug-class and indication category, returns the comparator universe for this country. */
16
+ comparators: (indication_category: IndicationCategory, drug_class: DrugClass, line: LineOfTherapy) => ComparatorEntry[];
17
+ population_subgroups: (indication_category: IndicationCategory) => string[];
18
+ }
19
+ export type IndicationCategory = "oncology_nsclc" | "oncology_other" | "ibd_uc" | "ibd_cd" | "diabetes_t2" | "obesity" | "cardiovascular" | "rheumatology" | "neurology" | "rare_disease" | "infectious_disease" | "other";
20
+ export interface PicoMatrix {
21
+ drug: string;
22
+ indication: string;
23
+ jca_revision: "2026-05";
24
+ picos: Array<{
25
+ id: string;
26
+ population: string;
27
+ comparator: string;
28
+ outcomes: string[];
29
+ }>;
30
+ country_specific: Array<{
31
+ jurisdiction: Jurisdiction;
32
+ hta_body: string;
33
+ comparators: ComparatorEntry[];
34
+ population_subgroups: string[];
35
+ outcome_priorities: OutcomePriority[];
36
+ }>;
37
+ heterogeneity_warning: boolean;
38
+ distinct_comparator_count: number;
39
+ rationale: string;
40
+ }
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/jca/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC;AAEhF,MAAM,MAAM,SAAS,GACjB,qBAAqB,GACrB,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,aAAa,GACb,YAAY,GACZ,SAAS,GACT,qBAAqB,GACrB,OAAO,CAAC;AAEZ,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,aAAa,GACb,iBAAiB,GACjB,KAAK,CAAC;AAEV,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,OAAO,CAAC;AAEpF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B,EAAE,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B,EAAE,MAAM,EAAE,CAAC;IACzC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,oHAAoH;IACpH,WAAW,EAAE,CACX,mBAAmB,EAAE,kBAAkB,EACvC,UAAU,EAAE,SAAS,EACrB,IAAI,EAAE,aAAa,KAChB,eAAe,EAAE,CAAC;IACvB,oBAAoB,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,KAAK,MAAM,EAAE,CAAC;CAC7E;AAED,MAAM,MAAM,kBAAkB,GAC1B,gBAAgB,GAChB,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,SAAS,GACT,gBAAgB,GAChB,cAAc,GACd,WAAW,GACX,cAAc,GACd,oBAAoB,GACpB,OAAO,CAAC;AAEZ,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,SAAS,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC,CAAC;IACH,gBAAgB,EAAE,KAAK,CAAC;QACtB,YAAY,EAAE,YAAY,CAAC;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,eAAe,EAAE,CAAC;QAC/B,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,kBAAkB,EAAE,eAAe,EAAE,CAAC;KACvC,CAAC,CAAC;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/jca/types.ts"],"names":[],"mappings":""}
package/dist/server.js CHANGED
@@ -28,6 +28,7 @@ import { handleItcFeasibility, itcFeasibilityToolSchema, } from "./tools/itcFeas
28
28
  import { handleExamples, examplesToolSchema } from "./tools/examples.js";
29
29
  import { handleMaicWorkflow, maicWorkflowToolSchema, } from "./tools/maicWorkflow.js";
30
30
  import { handlePvClassify, pvClassifyToolSchema } from "./tools/pvClassify.js";
31
+ import { handleJcaPicoScope, jcaPicoScopeToolSchema, } from "./tools/jcaPicoScope.js";
31
32
  import { randomUUID } from "node:crypto";
32
33
  import { trackToolCall, trackSession, shutdownAnalytics, inferSurface, } from "./analytics.js";
33
34
  import { createServer } from "node:http";
@@ -160,6 +161,7 @@ function createMcpServer(surfaceRef = { value: "direct_mcp" }, sessionIdRef = {
160
161
  examplesToolSchema,
161
162
  maicWorkflowToolSchema,
162
163
  pvClassifyToolSchema,
164
+ jcaPicoScopeToolSchema,
163
165
  ],
164
166
  }));
165
167
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
@@ -228,6 +230,9 @@ function createMcpServer(surfaceRef = { value: "direct_mcp" }, sessionIdRef = {
228
230
  case "pv.classify":
229
231
  result = await handlePvClassify(args);
230
232
  break;
233
+ case "jca.pico_scope":
234
+ result = await handleJcaPicoScope(args);
235
+ break;
231
236
  default:
232
237
  trackToolCall(name, Date.now() - callStart, "error", sessionIdRef.value || undefined, {
233
238
  surface: surfaceRef.value,
@@ -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,57 @@
1
+ import type { ToolResult } from "../providers/types.js";
2
+ export declare function handleJcaPicoScope(rawInput: unknown): Promise<ToolResult>;
3
+ export declare const jcaPicoScopeToolSchema: {
4
+ readonly name: "jca.pico_scope";
5
+ readonly description: "Produce the canonical EU Joint Clinical Assessment (JCA) PICO matrix for a drug-indication pair. Returns a consolidated PICO list (per JCA process under Reg. 2021/2282) plus country-specific comparator universes, outcome instrument preferences, population subgroup focus, and a heterogeneity warning when ≥3 distinct comparators emerge across jurisdictions. Pipe `pico_matrix.picos` directly into `hta_dossier({hta_body:\"jca\", picos: ...})`. v1 covers DE/FR/IT/ES/NL + UK (post-Brexit context).";
6
+ readonly annotations: {
7
+ readonly title: "JCA PICO Scope Analyzer";
8
+ readonly readOnlyHint: true;
9
+ readonly destructiveHint: false;
10
+ readonly idempotentHint: true;
11
+ readonly openWorldHint: false;
12
+ };
13
+ readonly inputSchema: {
14
+ readonly type: "object";
15
+ readonly properties: {
16
+ readonly drug: {
17
+ readonly type: "string";
18
+ readonly description: "Drug name.";
19
+ };
20
+ readonly indication: {
21
+ readonly type: "string";
22
+ readonly description: "Disease/condition.";
23
+ };
24
+ readonly drug_class: {
25
+ readonly type: "string";
26
+ readonly enum: readonly ["monoclonal_antibody", "small_molecule", "atmp_cell", "atmp_gene", "atmp_tissue", "biosimilar", "vaccine", "radiopharmaceutical", "other"];
27
+ };
28
+ readonly mechanism_of_action: {
29
+ readonly type: "string";
30
+ };
31
+ readonly line_of_therapy: {
32
+ readonly type: "string";
33
+ readonly enum: readonly ["first_line", "second_line", "third_line_plus", "any"];
34
+ readonly default: "any";
35
+ };
36
+ readonly biomarker_status: {
37
+ readonly type: "string";
38
+ readonly description: "Optional biomarker status (e.g., 'EGFR T790M positive', 'PD-L1 TPS ≥50%').";
39
+ };
40
+ readonly jurisdictions: {
41
+ readonly type: "array";
42
+ readonly items: {
43
+ readonly type: "string";
44
+ readonly enum: readonly ["de", "fr", "it", "es", "nl", "uk", "eu_other"];
45
+ };
46
+ readonly default: readonly ["de", "fr", "it", "es", "nl"];
47
+ };
48
+ readonly regulatory_context: {
49
+ readonly type: "string";
50
+ readonly enum: readonly ["pre_authorisation", "post_authorisation", "conditional_approval"];
51
+ readonly default: "post_authorisation";
52
+ };
53
+ };
54
+ readonly required: readonly ["drug", "indication", "drug_class"];
55
+ };
56
+ };
57
+ //# sourceMappingURL=jcaPicoScope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jcaPicoScope.d.ts","sourceRoot":"","sources":["../../src/tools/jcaPicoScope.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAgDxD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,UAAU,CAAC,CA8LrB;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCzB,CAAC"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * jca_pico_scope — EU Joint Clinical Assessment PICO matrix analyzer.
3
+ * Single-call tool that produces the canonical JCA consolidated-PICO list
4
+ * for a drug-indication pair across selected EU jurisdictions. Designed
5
+ * to feed directly into hta_dossier({hta_body:"jca", picos: ...}).
6
+ *
7
+ * See design log #13.
8
+ */
9
+ import { z } from "zod";
10
+ import { addAssumption, addWarning, createAuditRecord, setMethodology, } from "../audit/builder.js";
11
+ import { auditToMarkdown } from "../formatters/markdown.js";
12
+ import { suggestForEnum } from "../util/didYouMean.js";
13
+ import { buildScope } from "../jca/scopeBuilder.js";
14
+ import { JCA_REVISION } from "../jca/countryRegistry.js";
15
+ const DRUG_CLASSES = [
16
+ "monoclonal_antibody",
17
+ "small_molecule",
18
+ "atmp_cell",
19
+ "atmp_gene",
20
+ "atmp_tissue",
21
+ "biosimilar",
22
+ "vaccine",
23
+ "radiopharmaceutical",
24
+ "other",
25
+ ];
26
+ const LINES = ["first_line", "second_line", "third_line_plus", "any"];
27
+ const JURISDICTIONS = [
28
+ "de",
29
+ "fr",
30
+ "it",
31
+ "es",
32
+ "nl",
33
+ "uk",
34
+ "eu_other",
35
+ ];
36
+ const REG_CONTEXTS = [
37
+ "pre_authorisation",
38
+ "post_authorisation",
39
+ "conditional_approval",
40
+ ];
41
+ const JcaPicoScopeSchema = z
42
+ .object({
43
+ drug: z.string().min(1, "drug is required"),
44
+ indication: z.string().min(1, "indication is required"),
45
+ drug_class: z.enum(DRUG_CLASSES),
46
+ mechanism_of_action: z.string().optional(),
47
+ line_of_therapy: z.enum(LINES).default("any"),
48
+ biomarker_status: z.string().optional(),
49
+ jurisdictions: z
50
+ .array(z.enum(JURISDICTIONS))
51
+ .min(1)
52
+ .default(["de", "fr", "it", "es", "nl"]),
53
+ regulatory_context: z.enum(REG_CONTEXTS).default("post_authorisation"),
54
+ })
55
+ .strict();
56
+ export async function handleJcaPicoScope(rawInput) {
57
+ const parsed = JcaPicoScopeSchema.safeParse(rawInput);
58
+ if (!parsed.success) {
59
+ const messages = [];
60
+ for (const issue of parsed.error.issues) {
61
+ if (issue.code === "invalid_enum_value" &&
62
+ typeof issue.received === "string") {
63
+ const suggestions = suggestForEnum(issue.received, issue.options);
64
+ messages.push(`Invalid ${issue.path.join(".")}: "${issue.received}". Allowed: ${issue.options.join(", ")}.${suggestions.length
65
+ ? ` Did you mean ${suggestions.map((s) => `"${s}"`).join(", ")}?`
66
+ : ""}`);
67
+ }
68
+ else {
69
+ messages.push(`${issue.path.join(".") || "input"}: ${issue.message}`);
70
+ }
71
+ }
72
+ throw new Error(messages.join("\n"));
73
+ }
74
+ const input = parsed.data;
75
+ let audit = createAuditRecord("jca.pico_scope", input, "text");
76
+ audit = setMethodology(audit, "EU Regulation 2021/2282 (HTA Regulation) — Joint Clinical Assessment; EUnetHTA Coordination Group methodological guidance; Annex II patient-relevant outcomes hierarchy. National HTA preferences sourced from G-BA/IQWiG, HAS, AIFA, AEMPS/RedETS, Zorginstituut, NICE.");
77
+ const matrix = buildScope({
78
+ drug: input.drug,
79
+ indication: input.indication,
80
+ drug_class: input.drug_class,
81
+ mechanism_of_action: input.mechanism_of_action,
82
+ line_of_therapy: input.line_of_therapy,
83
+ biomarker_status: input.biomarker_status,
84
+ jurisdictions: input.jurisdictions,
85
+ regulatory_context: input.regulatory_context,
86
+ });
87
+ audit = addAssumption(audit, `JCA scope produced for ${input.jurisdictions.join(", ")} (revision ${JCA_REVISION}). ${matrix.picos.length} consolidated PICO(s).`);
88
+ if (matrix.heterogeneity_warning) {
89
+ audit = addWarning(audit, `Comparator heterogeneity: ${matrix.distinct_comparator_count} distinct comparators across jurisdictions. NMA / Bucher feasibility may be compromised.`);
90
+ }
91
+ if (input.regulatory_context === "pre_authorisation") {
92
+ audit = addWarning(audit, "Pre-authorisation context — output is anticipatory only, not a JCA-finalised PICO list.");
93
+ }
94
+ const lines = [];
95
+ lines.push(`# JCA PICO Scope — ${input.drug} (${input.indication})`);
96
+ lines.push("");
97
+ lines.push(`**JCA revision:** ${JCA_REVISION} · **Jurisdictions:** ${input.jurisdictions.join(", ").toUpperCase()} · **Regulatory context:** ${input.regulatory_context}`);
98
+ lines.push("");
99
+ if (input.regulatory_context === "pre_authorisation") {
100
+ lines.push("> ⚠️ **Anticipatory scope only.** JCA scope is finalised at marketing authorisation. Use this output for protocol-design and pre-MA market-access strategy — not for actual JCA submission.");
101
+ lines.push("");
102
+ }
103
+ if (matrix.heterogeneity_warning) {
104
+ lines.push(`> ⚠️ **Comparator heterogeneity warning.** ${matrix.distinct_comparator_count} distinct comparator molecules across ${input.jurisdictions.length} jurisdictions. Run \`evidence_network\` + \`itc_feasibility\` before any quantitative estimation.`);
105
+ lines.push("");
106
+ }
107
+ lines.push("## Rationale");
108
+ lines.push(matrix.rationale);
109
+ lines.push("");
110
+ lines.push(`## Consolidated PICO list (${matrix.picos.length} PICOs)`);
111
+ lines.push("| ID | Population | Comparator | Outcomes |");
112
+ lines.push("|----|------------|------------|----------|");
113
+ for (const p of matrix.picos) {
114
+ lines.push(`| ${p.id} | ${p.population} | ${p.comparator} | ${p.outcomes.join(", ")} |`);
115
+ }
116
+ lines.push("");
117
+ lines.push("*Pipe `pico_matrix.picos` directly into `hta_dossier({hta_body:\"jca\", picos: ...})` to expand into a multi-PICO dossier.*");
118
+ lines.push("");
119
+ for (const c of matrix.country_specific) {
120
+ const flag = { de: "🇩🇪 Germany", fr: "🇫🇷 France", it: "🇮🇹 Italy", es: "🇪🇸 Spain", nl: "🇳🇱 Netherlands", uk: "🇬🇧 United Kingdom", eu_other: "🇪🇺 Other EU member states" }[c.jurisdiction] ?? c.jurisdiction;
121
+ lines.push(`## ${flag} — ${c.hta_body}`);
122
+ if (c.jurisdiction === "uk") {
123
+ lines.push("*Post-Brexit, NICE alignment context only — UK is outside the JCA process but most submissions still target NICE in parallel.*");
124
+ }
125
+ if (c.jurisdiction === "eu_other") {
126
+ lines.push("*v1 of `jca_pico_scope` covers DE/FR/IT/ES/NL + UK only — consult national HTA bodies for jurisdiction-specific comparator preferences.*");
127
+ }
128
+ lines.push("");
129
+ lines.push("**Comparators:**");
130
+ for (const cmp of c.comparators) {
131
+ lines.push(`- **${cmp.molecule}** — ${cmp.rationale}`);
132
+ lines.push(` Outcome instruments: ${cmp.outcome_instrument_preferences.join(", ")}`);
133
+ }
134
+ if (c.population_subgroups.length > 0) {
135
+ lines.push("");
136
+ lines.push("**Population subgroups of HTA interest:**");
137
+ for (const s of c.population_subgroups)
138
+ lines.push(`- ${s}`);
139
+ }
140
+ lines.push("");
141
+ lines.push(`**Outcome priority order:** ${c.outcome_priorities.join(" → ")}`);
142
+ lines.push("");
143
+ }
144
+ // Surrogate-endpoint note for oncology indications
145
+ const isOncology = matrix.country_specific.some((c) => c.outcome_priorities[0] === "OS");
146
+ if (isOncology) {
147
+ lines.push("## Surrogate Endpoints");
148
+ lines.push("JCA prefers patient-relevant outcomes per Annex II of Implementing Regulation 2024/1381. **Surrogate endpoints (PFS, ORR, biomarker response) are accepted as secondary outcomes only and may face JCA scrutiny.** Plan an OS analysis even when PFS is the trial primary endpoint, and pre-specify any OS-from-PFS surrogacy assumptions in the dossier.");
149
+ lines.push("");
150
+ }
151
+ lines.push("## Suggested Next Steps");
152
+ lines.push(`1. Pipe \`pico_matrix.picos\` into \`hta_dossier({hta_body:"jca", submission_type:"initial", drug_name:"${input.drug}", indication:"${input.indication}", picos: ...})\`.`);
153
+ lines.push("2. Run `evidence_network` on the comparator universe to assess connectedness.");
154
+ lines.push("3. Run `itc_feasibility` to determine whether anchored/unanchored ITC, MAIC, or full NMA is appropriate.");
155
+ if (matrix.heterogeneity_warning) {
156
+ lines.push("4. Given the heterogeneity warning, expect multiple PICOs to require separate ITCs rather than a single network analysis.");
157
+ }
158
+ lines.push("");
159
+ lines.push("## References");
160
+ lines.push("- EU Regulation 2021/2282 — HTA Regulation");
161
+ lines.push("- EU Implementing Regulation 2024/1381 — JCA procedural rules");
162
+ lines.push("- EUnetHTA Coordination Group — Methodological Guidance Series");
163
+ lines.push("- Annex II — patient-relevant outcomes hierarchy (mortality, morbidity, HRQoL, AEs)");
164
+ lines.push("- National HTA bodies: G-BA / IQWiG, HAS, AIFA, AEMPS / RedETS, Zorginstituut Nederland, NICE");
165
+ lines.push("");
166
+ lines.push(auditToMarkdown(audit));
167
+ return {
168
+ content: lines.join("\n"),
169
+ audit,
170
+ pico_matrix: matrix,
171
+ };
172
+ }
173
+ export const jcaPicoScopeToolSchema = {
174
+ name: "jca.pico_scope",
175
+ description: "Produce the canonical EU Joint Clinical Assessment (JCA) PICO matrix for a drug-indication pair. Returns a consolidated PICO list (per JCA process under Reg. 2021/2282) plus country-specific comparator universes, outcome instrument preferences, population subgroup focus, and a heterogeneity warning when ≥3 distinct comparators emerge across jurisdictions. Pipe `pico_matrix.picos` directly into `hta_dossier({hta_body:\"jca\", picos: ...})`. v1 covers DE/FR/IT/ES/NL + UK (post-Brexit context).",
176
+ annotations: {
177
+ title: "JCA PICO Scope Analyzer",
178
+ readOnlyHint: true,
179
+ destructiveHint: false,
180
+ idempotentHint: true,
181
+ openWorldHint: false,
182
+ },
183
+ inputSchema: {
184
+ type: "object",
185
+ properties: {
186
+ drug: { type: "string", description: "Drug name." },
187
+ indication: { type: "string", description: "Disease/condition." },
188
+ drug_class: { type: "string", enum: DRUG_CLASSES },
189
+ mechanism_of_action: { type: "string" },
190
+ line_of_therapy: { type: "string", enum: LINES, default: "any" },
191
+ biomarker_status: {
192
+ type: "string",
193
+ description: "Optional biomarker status (e.g., 'EGFR T790M positive', 'PD-L1 TPS ≥50%').",
194
+ },
195
+ jurisdictions: {
196
+ type: "array",
197
+ items: { type: "string", enum: JURISDICTIONS },
198
+ default: ["de", "fr", "it", "es", "nl"],
199
+ },
200
+ regulatory_context: {
201
+ type: "string",
202
+ enum: REG_CONTEXTS,
203
+ default: "post_authorisation",
204
+ },
205
+ },
206
+ required: ["drug", "indication", "drug_class"],
207
+ },
208
+ };
209
+ //# sourceMappingURL=jcaPicoScope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jcaPicoScope.js","sourceRoot":"","sources":["../../src/tools/jcaPicoScope.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "heor-agent-mcp",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "mcpName": "io.github.neptun2000/heor-agent",
5
5
  "license": "MIT",
6
6
  "author": "mnaumov",
7
7
  "engines": {
8
8
  "node": ">=20.0.0"
9
9
  },
10
- "description": "AI-powered Health Economics and Outcomes Research (HEOR) MCP server — 20 tools across literature search (44 data sources incl. PubMed/ClinicalTrials.gov/Cochrane/NICE/CADTH/ICER), risk of bias (RoB 2/ROBINS-I/AMSTAR-2), cost-effectiveness modeling (Markov/PartSA/PSA/EVPPI), budget impact analysis, abstract screening, survival curve fitting (NICE DSU TSD 14), indirect comparisons (Bucher/NMA/MAIC/STC), pharmacovigilance study classification (EMA GVP rev 4), MAIC pipeline orchestration, and HTA dossier prep (NICE/EMA/FDA/IQWiG/HAS/EU JCA) with auto-GRADE + PV plan section",
10
+ "description": "AI-powered Health Economics and Outcomes Research (HEOR) MCP server — 21 tools across literature search (44 data sources incl. PubMed/ClinicalTrials.gov/Cochrane/NICE/CADTH/ICER), risk of bias (RoB 2/ROBINS-I/AMSTAR-2), cost-effectiveness modeling (Markov/PartSA/PSA/EVPPI), budget impact analysis, abstract screening, survival curve fitting (NICE DSU TSD 14), indirect comparisons (Bucher/NMA/MAIC/STC), pharmacovigilance study classification (EMA GVP rev 4), EU JCA PICO matrix analyzer, MAIC pipeline orchestration, and HTA dossier prep (NICE/EMA/FDA/IQWiG/HAS/EU JCA) with auto-GRADE + PV plan + NICE severity/inequalities sections",
11
11
  "type": "module",
12
12
  "main": "dist/server.js",
13
13
  "bin": {