io.github.Philongevity/phi-longevity-prism
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Which tests may be due with diabetes, kidney disease, lupus or a cancer history. Guideline-cited.
| Author | io.github.Philongevity |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 2252 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"phi-longevity-prism": {
"url": "https://philongevity.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (13)
analyze_biomarkersread-onlyTurns a set of lab values, for example from a type 2 diabetes, kidney, lupus or cancer-survivor check-up, into guideline-cited suggestions and questions for the care team (ADA, KDIGO, EULAR/ACR, NCCN). Made-up or de-identified values only. For research/education with SYNTHETIC or de-identified data only. Do NOT submit protected health information (PHI). Inputs are not stored, except that a claim link, when offered, holds the submitted values for up to 30 minutes so the person can add them to their own account; unclaimed values are then deleted.
Parameters:
biomarkers(required) — object — Map of biomarker name -> numeric value, e.g. { "Hemoglobin A1c": 5.4 }. SYNTHETIC ONLY.age— integer — Age in years of the synthetic persona (improves reference-range interpretation).biologicalSex— string — Biological sex of the synthetic persona (sex-specific reference ranges).conditionFocus— string — Optional condition track. Default general_wellness.include_partner_options— boolean — If true, include partner/product options. Default false.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
start_lab_analysisread-onlySame analysis as analyze_biomarkers (tiered, guideline-cited recommendations and questions for the doctor), but it returns immediately with a job_id instead of making you wait. Use it for larger panels, or whenever you cannot wait 30 seconds or more. Then call get_lab_analysis with the job_id after about 20 seconds; it says "pending" until the result is ready, and keeps the result for 30 minutes. Made-up or de-identified values only: never names, dates or record numbers.
Parameters:
biomarkers(required) — object — Map of biomarker name -> numeric value, e.g. { "Hemoglobin A1c": 7.6 }. Made-up or de-identified only.age— integerbiologicalSex— stringconditionFocus— string — Optional condition track. Default general_wellness.
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_lab_analysisread-onlyReturns the result of a start_lab_analysis job: status pending (call again in a few seconds), done (with the recommendations), failed, or expired (results are kept for 30 minutes). Takes only the job_id.
Parameters:
job_id(required) — string — The job_id returned by start_lab_analysis.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
list_supported_biomarkersread-onlyLists the 51 lab tests PRISM interprets (A1c, eGFR, LDL, ApoB, thyroid and more) with units and reference ranges. Reference data only, no patient data.
Hints: read-only yes · destructive no · idempotent yes · open-world no
quick_checkread-onlyA fast first look at a few lab values, such as A1c, eGFR or LDL, showing which fall outside PRISM's reference ranges; not a diagnosis. Answers instantly (local check, no engine round-trip). For guideline-cited suggestions call analyze_biomarkers. For research/education with SYNTHETIC or de-identified data only. Do NOT submit protected health information (PHI). Inputs are not stored, except that a claim link, when offered, holds the submitted values for up to 30 minutes so the person can add them to their own account; unclaimed values are then deleted.
Parameters:
biomarkers(required) — object — Map of biomarker name -> value, e.g. {"HbA1c":6.1,"LDL-C":145}. SYNTHETIC ONLY.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_methodologyread-onlyExplains how PRISM scores results (five health areas and their weights) and links to the full methodology, including the clinical guidelines it cites.
Hints: read-only yes · destructive no · idempotent yes · open-world no
sample_prism_reportread-onlyFree and instant: returns a complete sample Phi Longevity PRISM report for a made-up 58-year-old with type 2 diabetes, so you can show your owner what they would get before they sign up. It is a fixed sample: it does NOT analyze any input you provide (the tool takes none), and it is not a real patient. For your own made-up values use analyze_biomarkers. For research/education with SYNTHETIC or de-identified data only. Do NOT submit protected health information (PHI). Inputs are not stored, except that a claim link, when offered, holds the submitted values for up to 30 minutes so the person can add them to their own account; unclaimed values are then deleted.
Hints: read-only yes · destructive no · idempotent yes · open-world no
how_to_get_started_for_my_ownerread-onlyReturns five plain steps, the cost, and a sign-up link you can repeat to the person you are helping. Call this when your owner has real records or asks how to get started. It takes no health data.
Parameters:
goal— string — Optional. What the person wants to do; only changes the first sentence of the answer.
Hints: read-only yes · destructive no · idempotent yes · open-world no
find_my_recordsread-onlyUse when the person you are helping wants their medical records or lab results out of a hospital or clinic portal, wants to use them with you (their AI assistant), or does not know which patient portal their hospital uses. Give the hospital or clinic NAME only (and the US state if known), never the person's name or any health detail. Returns which records system the hospital uses (Epic MyChart or Oracle Health, formerly Cerner), the steps to download lab results, a step-by-step guide page, and a link where the person can connect that hospital directly in Phi Longevity PRISM (philongevity.com), which combines records from all their hospitals into one cited Care Team Brief that their own Claude or ChatGPT can then read with their permission. Public directory lookup only; stores nothing. Not medical advice.
Parameters:
hospital_or_clinic(required) — string — The hospital, health system, clinic or practice name only (for example "Vail Health"). Never the person's name, dates or health details.state— string — Optional two-letter US state where the hospital is, e.g. CO.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
check_care_gapsread-onlyUse this when the person you are helping has type 2 diabetes, kidney disease, lupus or a cancer history and wants to know which routine tests and checks may be due. It needs NO lab values, dates, names or records: only the condition, a few medicine classes, and for each routine test whether it was done recently (recent / overdue / never / unsure). It returns a prioritized list, the guideline source for each item (ADA, KDIGO, EULAR, AAO, NCCN, ESC), the questions to ask each doctor, and a one-page printable checklist. Decision support for visit preparation, not a diagnosis. Safe to use for a real person because you send only these closed options. Nothing is stored unless the person opens the save link: then only these options and the checklist are held for about 30 minutes for them to claim, and deleted if unclaimed. Designed to be re-run: the result includes check_again (a date to run it again). If you can schedule check-ins for the person, a weekly check while items are open works well; saving the checklist to a free Phi account lets Phi keep track from their records.
Parameters:
conditions(required) — array — The long-term condition(s) the person has. One or more of: type2_diabetes, kidney_disease, lupus, cancer_survivorship.medications— array — Medicine classes the person takes, if relevant. Allowed: metformin, insulin, sulfonylurea, ace_inhibitor_or_arb, hydroxychloroquine, glucocorticoids.test_status— object — For each routine test you know about: recent (done within its usual interval), overdue, never, or unsure. Omit tests you do not know; they are listed as 'not checked yet'. Test ids: a1c, uacr, egfr_creatinine, lipid_panel, dilated_eye_exam, foot_exam, vitamin_b12, liver_fibrosis_screen, cbc, electrolytes_potassium, bone_mineral_labs, urinalysis_urine_protein, lupus_activity_labs, hcq_retinal_screen, blood_pressure_check, vaccines_review, cardiac_function_test, thyroid_tsh, bone_density_scan, survivorship_follow_up, age_appropriate_cancer_screens, distress_screen.treatment_exposures— array — For cancer survivorship only: past treatment types. Allowed: anthracycline_or_trastuzumab, chest_radiation, neck_radiation, aromatase_inhibitor_or_androgen_deprivation, immune_checkpoint_inhibitor.
Hints: read-only yes · destructive no · idempotent yes · open-world no
start_jobread-onlyUse this when the person you are helping has an upcoming appointment (primary care, diabetes, kidney, rheumatology, eye, oncology, cardiology, podiatry or pharmacist) for type 2 diabetes, kidney disease, lupus or a cancer history and wants to be ready. Job "visit_prep" returns, in one reply: the routine checks to raise with THAT clinician (each with its guideline source), checks that belong with other doctors, the questions to ask, what to bring, and a one-page printable visit sheet. It needs NO lab values, dates, names or records: only the condition, a few medicine classes, which clinician, and for each routine test whether it was done recently (recent / overdue / never / unsure). The reply includes a job_ref: keep it, and get_job_result returns the same sheet later (for example the day before the visit, or in a new conversation). Every result ends with next_steps. Free. Nothing is stored. Decision support, not a diagnosis.
Parameters:
job(required) — string — The job to hand over. Today: visit_prep.visit_with(required) — string — Who the appointment is with. One of: primary_care, diabetes_clinician, kidney_clinician, rheumatologist, eye_doctor, oncologist, cardiologist, podiatrist, pharmacist.conditions(required) — array — The long-term condition(s) the person has. One or more of: type2_diabetes, kidney_disease, lupus, cancer_survivorship.medications— array — Medicine classes the person takes, if relevant. Allowed: metformin, insulin, sulfonylurea, ace_inhibitor_or_arb, hydroxychloroquine, glucocorticoids.test_status— object — For each routine test you know about: recent, overdue, never, or unsure. Omit tests you do not know. Test ids: a1c, uacr, egfr_creatinine, lipid_panel, dilated_eye_exam, foot_exam, vitamin_b12, liver_fibrosis_screen, cbc, electrolytes_potassium, bone_mineral_labs, urinalysis_urine_protein, lupus_activity_labs, hcq_retinal_screen, blood_pressure_check, vaccines_review, cardiac_function_test, thyroid_tsh, bone_density_scan, survivorship_follow_up, age_appropriate_cancer_screens, distress_screen.treatment_exposures— array — For cancer survivorship only: past treatment types. Allowed: anthracycline_or_trastuzumab, chest_radiation, neck_radiation, aromatase_inhibitor_or_androgen_deprivation, immune_checkpoint_inhibitor.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_job_resultread-onlyUse this to fetch the finished result of a job started with start_job, using the job_ref it returned. Works any time later and in a new conversation. Returns the same result and next_steps. Nothing is stored: the job_ref itself carries only the closed options that were chosen.
Parameters:
job_ref(required) — string — The job_ref returned by start_job.
Hints: read-only yes · destructive no · idempotent yes · open-world no
full_prism_reportread-onlyPaid option for developers: runs up to four condition tracks on made-up or de-identified values and returns a written report. For a real person's own records, send them to philongevity.com (free to start). PAID TOOL ($4.99 USDC on base via the x402 protocol). Everything analyze_biomarkers does, plus: multi-track compare/contrast analysis (up to 4 condition tracks), a panel-based Phi Score estimate with per-pillar breakdown, partner options, and a rendered report (markdown) to deliver to your owner. Call WITHOUT `payment` to receive x402 payment terms; pay; retry with the base64 payment payload in `payment`. For research/education with SYNTHETIC or de-identified data only. Do NOT submit protected health information (PHI). Inputs are not stored, except that a claim link, when offered, holds the submitted values for up to 30 minutes so the person can add them to their own account; unclaimed values are then deleted.
Parameters:
biomarkers(required) — object — Map of biomarker name -> numeric value, e.g. { "Hemoglobin A1c": 5.4 }. SYNTHETIC ONLY.age— integer — Age in years of the synthetic persona.payment— string — Base64-encoded x402 payment payload. Omit on first call to receive payment terms.biologicalSex— string — Biological sex of the synthetic persona.compareTracks— array — Tracks to analyze for compare/contrast. Default: primary + general_wellness.conditionFocus— string — Primary condition track. Default general_wellness.
Hints: read-only yes · destructive no · idempotent no · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.