@phi-longevity/mcp-server 0.6.6 β†’ 0.6.8

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
@@ -7,21 +7,51 @@ clinical recommendation engine on **synthetic** biomarker panels β€” guideline-c
7
7
  evidence-tiered recommendations an agent can use when researching options for the person
8
8
  it's helping.
9
9
 
10
+ Built for **chronic-condition** work in particular: type-2 diabetes, lupus, and cancer
11
+ survivorship each have their own condition lens, because the same panel means different
12
+ things depending on what someone is managing.
13
+
10
14
  > πŸ›‘οΈ **Synthetic / de-identified data only.** Do not submit protected health information
11
- > (PHI). The server is stateless and stores nothing. Real health files are analyzed only
12
- > inside the authenticated Phi Longevity app, after consent, by the account owner.
15
+ > (PHI). This npm package stores nothing. (The hosted `/mcp` holds values sent to the paid
16
+ > `full_prism_report` for 30 minutes for the owner's claim link, then deletes them.) Real health
17
+ > files are analyzed only inside the authenticated Phi Longevity app, after consent, by the
18
+ > account owner.
19
+ >
20
+ > **Helping a real person with their own records?** Send them to
21
+ > [philongevity.com](https://philongevity.com/signup): they connect MyChart or upload their labs
22
+ > and get a one-page, guideline-cited Care Team Brief for their doctors (free to start; stored in
23
+ > HIPAA-eligible storage under a signed Google Cloud BAA).
13
24
 
14
25
  ## Tools
15
26
 
16
- | Tool | What it does |
17
- |---|---|
18
- | `analyze_biomarkers` | Analyze a synthetic panel β†’ tiered, guideline-cited recommendations. Includes a `full_report` block your user can follow for a complete PRISM report. |
19
- | `list_supported_biomarkers` | 51 scored biomarkers + units + reference ranges, by clinical pillar. |
20
- | `get_methodology` | How the Phi Score works (5 pillars + weights) + link to the full methodology. |
27
+ Two surfaces, deliberately different. **The npm package (stdio) has 4 tools; the remote
28
+ endpoint has 6.** The two report-generating tools are remote-only.
29
+
30
+ | Tool | npm | remote | What it does |
31
+ |---|:---:|:---:|---|
32
+ | `sample_prism_report` | β€” | βœ… | **Start here.** Returns a complete, real PRISM report for a sample chronic-condition persona in one instant call. Free, no signup, no input required. The fastest way to see what the engine actually produces. |
33
+ | `quick_check` | βœ… | βœ… | A fast read on a handful of values β€” the low-friction entry point before a full analysis. |
34
+ | `analyze_biomarkers` | βœ… | βœ… | Analyze a synthetic panel β†’ tiered, guideline-cited recommendations, with a condition lens. |
35
+ | `list_supported_biomarkers` | βœ… | βœ… | 51 scored biomarkers + units + reference ranges, by clinical pillar. |
36
+ | `get_methodology` | βœ… | βœ… | How the Phi Score works (5 pillars + weights) + link to the full methodology. |
37
+ | `full_prism_report` | β€” | βœ… | A full report for a panel you supply. **Paid** β€” priced per call via x402; terms are returned with the offer. |
38
+
39
+ All tools except `full_prism_report` are free.
21
40
 
22
41
  ## Quick start β€” zero config
23
42
 
24
- ### Claude Desktop / any MCP client
43
+ ### Remote (zero-install) β€” recommended
44
+
45
+ Point any MCP client that supports Streamable HTTP at:
46
+
47
+ ```
48
+ https://philongevity.com/mcp
49
+ ```
50
+
51
+ Nothing to install, no key to manage, all 6 tools. Try `sample_prism_report` first β€” it
52
+ needs no arguments and returns a complete report immediately.
53
+
54
+ ### Claude Desktop / any MCP client (stdio)
25
55
 
26
56
  ```json
27
57
  {
@@ -34,18 +64,8 @@ it's helping.
34
64
  }
35
65
  ```
36
66
 
37
- That's it. A published, rate-limited access key is built in. If you have a dedicated key,
38
- set `PHI_MCP_KEY` to override it.
39
-
40
- ### Remote (zero-install)
41
-
42
- Point any MCP client that supports Streamable HTTP at:
43
-
44
- ```
45
- https://philongevity.com/mcp
46
- ```
47
-
48
- Same three tools, same synthetic-only rule, nothing to install.
67
+ A published, rate-limited access key is built in. If you have a dedicated key, set
68
+ `PHI_MCP_KEY` to override it. This path exposes the 4 tools marked βœ… above.
49
69
 
50
70
  ### Run locally
51
71
 
@@ -57,6 +77,9 @@ node dist/index.js
57
77
  ## Example
58
78
 
59
79
  ```jsonc
80
+ // sample_prism_report β€” no arguments, returns a complete sample report
81
+ {}
82
+
60
83
  // analyze_biomarkers input (synthetic values only)
61
84
  {
62
85
  "biomarkers": { "HbA1c": 6.4, "LDL-C": 145, "Triglycerides": 190 },
@@ -68,10 +91,11 @@ node dist/index.js
68
91
 
69
92
  ## For the person you're helping
70
93
 
71
- The tools analyze a handful of values at a time. A full PRISM report consolidates *all* of
72
- a person's lab reports, wearable data, and clinical notes into one integrated picture with
73
- a personal health score and progress over time. Agent docs + signup:
74
- **https://philongevity.com/for-agents**
94
+ The tools above analyze a handful of values at a time. A full PRISM report consolidates
95
+ *all* of a person's lab reports, wearable data, and clinical notes into one integrated
96
+ picture with a personal health score and progress over time β€” which is the actual problem
97
+ for someone managing a chronic condition across several clinicians who don't talk to each
98
+ other. Agent docs + signup: **https://philongevity.com/for-agents**
75
99
 
76
100
  ## Environment
77
101
 
@@ -82,7 +106,7 @@ a personal health score and progress over time. Agent docs + signup:
82
106
 
83
107
  ## HIPAA / privacy
84
108
 
85
- Synthetic-only at the protocol boundary; stateless; aggregate-only telemetry (counts/timing
109
+ Synthetic-only at the protocol boundary; the npm package stores nothing; aggregate-only telemetry (counts/timing
86
110
  to stderr, never values or recommendation text); zero access to Firestore / the HIPAA
87
111
  datastore / user accounts. GDPR: processes no personal data (synthetic only) β†’ minimal exposure.
88
112
 
@@ -0,0 +1,146 @@
1
+ // aliases.ts β€” the names agents (and the lab reports they read) actually use for each catalog marker.
2
+ //
3
+ // 2026-09-30 (Steve D-0930-02: "foundational searches… we should have a large number of these"). Before this file
4
+ // the agent server knew 51 canonical names + 12 hand aliases, so "Glucose", "Vitamin B12", "C-Reactive Protein",
5
+ // "Apolipoprotein B", "SGPT", "Platelet Count" … came back `unmatched`, and the catalog-miss telemetry ignored even
6
+ // those 12 aliases (it reported "Hemoglobin A1c" and "LDL" as misses although quick_check resolved them).
7
+ //
8
+ // Sources for the names: the engine catalog's aliases (phi-longevity-app functions/lib/biomarkerCatalog.js), common
9
+ // Quest / Labcorp / Epic MyChart display names, and LOINC short / long common names.
10
+ //
11
+ // SAFETY RULES β€” an alias maps a name to ONE marker's reference range, so a wrong alias is a wrong flag:
12
+ // Β· EXACT match after normalization only (lowercase, non-alphanumerics removed). No substring / fuzzy matching.
13
+ // Β· Never alias a different test that shares a word: T4/T3 (total) β‰  Free T4/Free T3 Β· Direct/Indirect bilirubin
14
+ // β‰  Total bilirubin Β· 1,25-dihydroxy vitamin D β‰  25-OH vitamin D Β· urine albumin / microalbumin / UACR β‰  serum
15
+ // albumin Β· RBC folate / RBC magnesium β‰  serum Β· urine creatinine β‰  serum creatinine Β· DHEA β‰  DHEA-S Β·
16
+ // Non-HDL / VLDL β‰  LDL Β· Urea (mmol/L) β‰  BUN Β· Hemoglobin β‰  Hemoglobin A1c.
17
+ // Β· staging/phi-mcp-remote/aliases.test.mjs (phi-chief-of-staff, the hosted server's identical table) enforces: no alias resolves to two markers, every canonical name has an entry, and the
18
+ // look-alike tests above stay UNMATCHED.
19
+ // Kept IDENTICAL to phi-chief-of-staff staging/phi-mcp-remote/aliases.js (the hosted server) β€” change both together.
20
+ export const MARKER_ALIASES = {
21
+ // ── Metabolic ──
22
+ "Fasting Glucose": ["Glucose", "Glucose Fasting", "Fasting Blood Glucose", "Fasting Blood Sugar", "FBG", "FBS",
23
+ "Fasting Plasma Glucose", "FPG", "Blood Glucose", "Blood Sugar", "Serum Glucose", "Plasma Glucose", "GLU",
24
+ "Glucose Level", "Fasting Glucose Level", "Glucose FS"],
25
+ "HbA1c": ["Hemoglobin A1c", "A1c", "Hb A1c", "HgbA1c", "Hgb A1c", "HbA1c NGSP", "Hemoglobin A1c NGSP",
26
+ "Glycated Hemoglobin", "Glycosylated Hemoglobin", "Glycohemoglobin", "Glycohemoglobin A1c", "A1c Test",
27
+ "Haemoglobin A1c", "Glycated Haemoglobin", "Hemoglobin A1c/Hemoglobin.total", "Hemoglobin A1c Percent",
28
+ "A1c Hemoglobin", "HA1c"],
29
+ "Fasting Insulin": ["Insulin", "Insulin Fasting", "Serum Insulin", "Fasting Serum Insulin", "Insulin Level"],
30
+ "Triglycerides": ["Triglyceride", "TG", "TRIG", "TRIGS", "Serum Triglycerides", "Triglycerides Fasting",
31
+ "Fasting Triglycerides", "Triacylglycerol"],
32
+ "Uric Acid": ["Urate", "Serum Uric Acid", "Serum Urate", "Uric Acid Level"],
33
+ // ── Cardiovascular ──
34
+ "ApoB": ["Apolipoprotein B", "Apo B", "ApoB100", "Apo B100", "Apolipoprotein B100", "Apolipoprotein B-100",
35
+ "Apo B-100"],
36
+ "LDL-C": ["LDL", "LDL Cholesterol", "LDL Chol", "LDL Calc", "LDL Calculated", "LDL Cholesterol Calculated",
37
+ "LDL Cholesterol Calc", "LDL Chol Calc", "LDL Chol Calc NIH", "LDL Chol Calc (NIH)", "LDL-C Calculated",
38
+ "Calculated LDL", "Direct LDL", "LDL Direct", "LDL Cholesterol Direct", "LDL-Cholesterol",
39
+ "Low Density Lipoprotein", "Low-Density Lipoprotein Cholesterol", "LDL Cholesterol (Martin-Hopkins)",
40
+ "LDL Martin Hopkins", "LDL Cholesterol Martin-Hopkins Calc"],
41
+ "Lp(a)": ["Lipoprotein(a)", "Lipoprotein a", "Lipoprotein (a)", "Lipoprotein Little a", "Lp-a", "LPA",
42
+ "Lp a"],
43
+ "HDL-C": ["HDL", "HDL Cholesterol", "HDL Chol", "HDL-Cholesterol", "High Density Lipoprotein",
44
+ "High-Density Lipoprotein Cholesterol", "HDL Direct"],
45
+ "Total Cholesterol": ["Cholesterol", "Cholesterol Total", "Total Chol", "Chol", "TC", "Serum Cholesterol",
46
+ "Cholesterol Serum"],
47
+ // ── Hormonal ──
48
+ "TSH": ["Thyroid Stimulating Hormone", "Thyroid-Stimulating Hormone", "Thyrotropin", "TSH 3rd Generation",
49
+ "TSH Ultrasensitive", "Ultrasensitive TSH", "Sensitive TSH", "hTSH", "TSH High Sensitivity"],
50
+ "Total Testosterone": ["Testosterone", "Testosterone Total", "Serum Testosterone", "Testosterone (Total)",
51
+ "Testosterone Total LC/MS", "Testosterone Total MS", "Testosterone LC/MS/MS", "Total T"],
52
+ "Free Testosterone": ["Testosterone Free", "Free Testosterone Direct", "Testosterone Free Direct",
53
+ "Free Testosterone Calculated", "Calculated Free Testosterone", "Testosterone Free Calculated", "cFT"],
54
+ "DHEA-S": ["DHEAS", "DHEA Sulfate", "DHEA-Sulfate", "DHEA-SO4", "DHEA SO4", "Dehydroepiandrosterone Sulfate",
55
+ "DHEA Sulphate"],
56
+ "Free T3": ["FT3", "Free Triiodothyronine", "T3 Free", "Triiodothyronine Free", "Free T3 Direct"],
57
+ "Free T4": ["FT4", "Free Thyroxine", "T4 Free", "Thyroxine Free", "Free T4 Direct", "T4 Free Direct",
58
+ "Thyroxine (T4) Free Direct"],
59
+ "Estradiol": ["E2", "Oestradiol", "Estradiol Serum", "Estradiol Sensitive", "Sensitive Estradiol",
60
+ "Ultrasensitive Estradiol", "Estradiol Ultrasensitive"],
61
+ "SHBG": ["Sex Hormone Binding Globulin", "Sex-Hormone-Binding Globulin", "Sex Hormone-Binding Globulin", "Sex Horm Binding Glob"],
62
+ "Cortisol": ["Serum Cortisol", "Cortisol AM", "AM Cortisol", "Morning Cortisol", "Cortisol Total",
63
+ "Cortisol Morning"],
64
+ // ── Inflammation & Immunity ──
65
+ "hsCRP": ["hs-CRP", "hs CRP", "High Sensitivity CRP", "High-Sensitivity CRP", "High Sensitivity C-Reactive Protein",
66
+ "High-Sensitivity C-Reactive Protein", "CRP High Sensitivity", "C-Reactive Protein High Sensitivity",
67
+ "Cardiac CRP", "C-Reactive Protein Cardiac", "CRP Cardiac", "CRP", "C-Reactive Protein"],
68
+ "Homocysteine": ["Hcy", "Total Homocysteine", "Homocysteine Total", "Homocyst(e)ine", "Plasma Homocysteine"],
69
+ "Omega-3 Index": ["Omega 3 Index", "O3 Index", "Omega-3 Index RBC", "RBC Omega-3 Index"],
70
+ "Fibrinogen": ["Fibrinogen Activity", "Fibrinogen Antigen", "Plasma Fibrinogen", "Fibrinogen Level"],
71
+ "IL-6": ["IL6", "Interleukin-6", "Interleukin 6"],
72
+ "WBC": ["White Blood Cell Count", "White Blood Cells", "WBC Count", "White Cell Count", "White Count",
73
+ "Leukocytes", "Leukocyte Count", "Total Leukocyte Count", "Total WBC"],
74
+ "Platelets": ["Platelet Count", "Platelet", "PLT", "Thrombocytes", "Thrombocyte Count"],
75
+ "ANA": ["Antinuclear Antibody", "Antinuclear Antibodies", "ANA Titer", "Anti-Nuclear Antibody", "ANA IFA", "Antinuclear Antibodies Direct", "ANA Direct"],
76
+ "anti-dsDNA": ["dsDNA", "Anti-Double Stranded DNA", "Anti-Double-Stranded DNA", "dsDNA Antibody",
77
+ "Anti-dsDNA Antibody", "DNA Double-Stranded Antibody", "dsDNA Ab", "Anti-dsDNA Ab"],
78
+ "C3": ["Complement C3", "C3 Complement", "Complement Component 3"],
79
+ "C4": ["Complement C4", "C4 Complement", "Complement Component 4"],
80
+ "anti-Sm": ["Anti-Smith", "Anti-Smith Antibody", "Smith Antibody", "Sm Antibody"],
81
+ "anti-Ro (SSA)": ["Anti-Ro", "Anti-SSA", "SSA", "SS-A", "Ro Antibody", "SSA Antibody", "Anti-Ro/SSA",
82
+ "SSA (Ro) Antibody", "Sjogren's Antibody SS-A"],
83
+ "anti-La (SSB)": ["Anti-La", "Anti-SSB", "SSB", "SS-B", "La Antibody", "SSB Antibody", "Anti-La/SSB",
84
+ "SSB (La) Antibody", "Sjogren's Antibody SS-B"],
85
+ "ESR": ["Sed Rate", "Sedimentation Rate", "Erythrocyte Sedimentation Rate", "Westergren Sed Rate",
86
+ "Sed Rate Westergren", "ESR Westergren", "Sed Rate by Modified Westergren", "Sed Rate Modified Westergren"],
87
+ // ── Foundational Health ──
88
+ "eGFR": ["GFR", "Estimated GFR", "eGFR CKD-EPI", "eGFR CKD-EPI 2021", "eGFR (CKD-EPI 2021)",
89
+ "Estimated Glomerular Filtration Rate", "Glomerular Filtration Rate Estimated", "eGFR Creatinine",
90
+ "eGFR by Creatinine", "eGFRcr"],
91
+ "Vitamin D": ["25-OH Vitamin D", "25-Hydroxyvitamin D", "25-Hydroxy Vitamin D", "25(OH)D", "25(OH) Vitamin D",
92
+ "25-OH-D", "Vitamin D 25-Hydroxy", "Vitamin D, 25-Hydroxy", "Vitamin D 25 OH", "Vitamin D Total",
93
+ "25-Hydroxyvitamin D Total", "Vitamin D 25-Hydroxy Total", "Vitamin D3", "Vit D", "VitD", "Calcidiol",
94
+ "25OHD"],
95
+ "Hemoglobin": ["Hgb", "Hb", "HGB", "Haemoglobin"],
96
+ "Ferritin": ["Serum Ferritin", "Ferritin Serum", "Ferritin Level"],
97
+ "Albumin": ["Serum Albumin", "Albumin Serum", "ALB"],
98
+ "Magnesium": ["Mg", "Serum Magnesium", "Magnesium Serum"],
99
+ "B12": ["Vitamin B12", "Vitamin B-12", "B-12", "Vit B12", "Cobalamin", "Cyanocobalamin", "Serum B12",
100
+ "Vitamin B12 Level", "B12 Level"],
101
+ "ALT": ["Alanine Aminotransferase", "Alanine Transaminase", "SGPT", "ALT (SGPT)", "ALT/SGPT", "ALAT", "GPT"],
102
+ "MCV": ["Mean Corpuscular Volume", "Mean Cell Volume"],
103
+ "GGT": ["Gamma-Glutamyl Transferase", "Gamma Glutamyl Transferase", "Gamma-Glutamyltransferase", "Gamma GT",
104
+ "GGTP", "Gamma-Glutamyl Transpeptidase", "Gamma Glutamyl Transpeptidase"],
105
+ "IGF-1": ["IGF1", "IGF-I", "Insulin-Like Growth Factor 1", "Insulin-Like Growth Factor I", "Somatomedin C"],
106
+ "Folate": ["Folic Acid", "Serum Folate", "Folate Serum", "Vitamin B9", "Folate (Folic Acid)"],
107
+ "Zinc": ["Zn", "Serum Zinc", "Plasma Zinc", "Zinc Plasma", "Zinc Serum"],
108
+ "AST": ["Aspartate Aminotransferase", "Aspartate Transaminase", "SGOT", "AST (SGOT)", "AST/SGOT", "ASAT", "GOT"],
109
+ "Bilirubin": ["Total Bilirubin", "Bilirubin Total", "Bilirubin (Total)", "T Bili", "TBili", "TBIL",
110
+ "Bilirubin Total Serum"],
111
+ "BUN": ["Blood Urea Nitrogen", "Urea Nitrogen", "Urea Nitrogen (BUN)", "Serum Urea Nitrogen", "BUN Level"],
112
+ "Creatinine": ["Serum Creatinine", "Creatinine Serum", "Creat", "SCr", "Cr"],
113
+ };
114
+ export const normName = (s) => String(s).toLowerCase().replace(/[^a-z0-9]/g, "");
115
+ // Specimen / filler words a lab adds around a name ("Ferritin, Serum", "Glucose in Serum or Plasma").
116
+ // Only tried AFTER an exact miss, and only when something is left β€” never changes what an exact name means.
117
+ const FILLER = new Set(["serum", "plasma", "blood", "whole", "ser", "plas", "bld", "in", "or", "level", "levels",
118
+ "test", "result", "value"]);
119
+ function stripFiller(s) {
120
+ const toks = String(s).toLowerCase().split(/[^a-z0-9()]+/).filter(Boolean);
121
+ const kept = toks.filter((t) => !FILLER.has(t));
122
+ return kept.length && kept.length < toks.length ? normName(kept.join("")) : null;
123
+ }
124
+ /** Build a resolver over a catalog: name -> catalog entry | null. Throws on an alias collision (fail loud). */
125
+ export function buildResolver(catalog) {
126
+ const index = new Map();
127
+ const put = (key, entry, from) => {
128
+ const k = normName(key);
129
+ const prev = index.get(k);
130
+ if (prev && prev !== entry)
131
+ throw new Error(`alias collision: "${from}" β†’ ${entry.name} and ${prev.name}`);
132
+ index.set(k, entry);
133
+ };
134
+ for (const b of catalog)
135
+ put(b.name, b, b.name);
136
+ for (const b of catalog)
137
+ for (const a of MARKER_ALIASES[b.name] || [])
138
+ put(a, b, a);
139
+ return (name) => {
140
+ const hit = index.get(normName(name));
141
+ if (hit)
142
+ return hit;
143
+ const s = stripFiller(name);
144
+ return (s && index.get(s)) || null;
145
+ };
146
+ }
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
23
23
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
24
24
  import { z } from "zod";
25
25
  import { BIOMARKER_CATALOG } from "./catalog.js";
26
+ import { buildResolver } from "./aliases.js";
26
27
  const GATEWAY_URL = process.env.PHI_ENGINE_URL ?? "https://phi-mcp-gateway-bblwxa6cvq-uc.a.run.app";
27
28
  // Published-by-design access key (rate-limited, revocable by gateway redeploy).
28
29
  // Override with PHI_MCP_KEY if you have a dedicated key.
@@ -104,15 +105,8 @@ function attributionWithAid(aid) {
104
105
  };
105
106
  }
106
107
  // AC-3 (2026-08-14): fast, LOCAL, zero-round-trip biomarker range flags β€” the "easiest first call".
107
- const _norm = (s) => String(s).toLowerCase().replace(/[^a-z0-9]/g, "");
108
- const _ALIASES = { hemoglobina1c: "hba1c", a1c: "hba1c", ldl: "ldlc",
109
- ldlcholesterol: "ldlc", hdl: "hdlc", hdlcholesterol: "hdlc", crp: "hscrp", hscrp: "hscrp",
110
- testosterone: "totaltestosterone", vitd: "vitamind", vitamind3: "vitamind", "25ohvitamind": "vitamind" };
111
- const CATALOG_INDEX = new Map(BIOMARKER_CATALOG.map((b) => [_norm(b.name), b]));
112
- function catalogLookup(name) {
113
- const n = _norm(name);
114
- return CATALOG_INDEX.get(n) || CATALOG_INDEX.get(_ALIASES[n] || "") || null;
115
- }
108
+ // 2026-09-30: broad, collision-checked alias table (src/aliases.ts, 409 accepted names) β€” same as the hosted server.
109
+ const catalogLookup = buildResolver(BIOMARKER_CATALOG);
116
110
  function flagValue(b, value) {
117
111
  if (typeof b.refLow === "number" && value < b.refLow)
118
112
  return "below longevity-optimized range";
@@ -137,7 +131,7 @@ async function callEngine(body) {
137
131
  }
138
132
  return res.json();
139
133
  }
140
- const server = new McpServer({ name: "phi-longevity", version: "0.6.6" }, {
134
+ const server = new McpServer({ name: "phi-longevity", version: "0.6.7" }, {
141
135
  instructions: "Phi Longevity PRISM β€” longevity-optimized analysis of biomarker panels. " + SYNTHETIC_WARNING,
142
136
  });
143
137
  // ── Tool 1: analyze_biomarkers (the core) ─────────────────────────────────────────────────────
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@phi-longevity/mcp-server",
3
- "version": "0.6.6",
4
- "description": "MCP server for Phi Longevity PRISM: analyze a biomarker panel with an MD-led, guideline-cited clinical engine β€” built for agents helping people manage chronic conditions like diabetes, cancer survivorship, lupus, and thyroid disease. Synthetic/de-identified data only; no PHI; stateless.",
3
+ "version": "0.6.8",
4
+ "description": "MCP server for Phi Longevity PRISM: guideline-cited lab results analysis (ADA, KDIGO, EULAR/ACR, NCCN) for agents helping people with type 2 diabetes, kidney disease, lupus and cancer survivorship. Free sample report. Synthetic/de-identified values only.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "bin": {
@@ -41,7 +41,15 @@
41
41
  "thyroid",
42
42
  "chronic-disease",
43
43
  "x402",
44
- "prism"
44
+ "prism",
45
+ "lab-results",
46
+ "blood-test",
47
+ "kidney",
48
+ "ckd",
49
+ "hba1c",
50
+ "egfr",
51
+ "doctor-visit",
52
+ "care-team"
45
53
  ],
46
54
  "mcpName": "io.github.Philongevity/phi-longevity-prism",
47
55
  "repository": {