Oak Longevity Mcp Server

io.github.GoingparabolicPublished by GitHub account Goingparabolicv0.1.0Updated Oct 25, 2026

Longevity medicine MCP: medication dosing, labs, monitoring, drug interactions & intake screening

Overview

AI-generated overview

A local MCP server giving assistants a longevity and metabolic medicine reference: a 35-compound catalog, dosing protocols, labs, monitoring, interaction and 3-

What you can do
Browse the medication catalog by category with ids, drug class and DEA/Rx schedule, and look up mechanism, formulations and candidate profile for one compound by name, id or brand alias. Check FDA approval status, DEA schedule and 503A/503B compounding considerations. Retrieve evidence-graded dosing protocols by indication, required baseline labs and ongoing monitoring plans. Screen a medication against a patient profile for contraindications and check pairwise drug interactions across a medication list. Map patient symptoms and goals to suggested intake pathways.
When to use it
Useful for clinicians or longevity and metabolic medicine practices that want an assistant to pull structured reference data on compounds, dosing, labs, monitoring, contraindications and interactions while drafting or reviewing a plan. The free tier alone covers catalog and regulatory lookups.
Requirements
Runs as a local Node.js process over stdio, installed from the npm package or built from source; a desktop MCP client such as Claude Desktop or Claude Code. No account is required for the free tier. Premium tools need a license key supplied in LONGEVITY_LICENSE_KEY; optional variables set tier, a key allowlist or a remote verification endpoint. The README also describes an HTTP transport for remote hosting.
Before you install
Clinical decision-support only, not medical advice; output must be reviewed by a licensed clinician, and many compounds are off-label, compounded or investigational. Dosing, interaction, lab and regulatory data change frequently and should be verified against current primary sources and FDA resources. Premium tools return an upgrade prompt without a valid entitlement. A license key is a secret; if a remote verification endpoint is configured, keys are sent to that service.

Installation

In SourceWeft

  1. Open Oak Longevity Mcp Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

oak-longevity-mcp-server

An MCP server for longevity & metabolic medicine — a medication catalog, evidence-based dosing protocols, contraindication screening, drug-interaction checks, required baseline labs, ongoing monitoring plans, FDA/compounding regulatory status, and patient-intake pathway suggestions across 35 compounds.

Built for Oak Longevity Institute by Keith Schmidt, MD — a telemedicine longevity practice in Illinois. This server makes the practice's clinical reference data available to any MCP client (Claude Desktop, Claude Code, or your own agent), and is structured for a free/premium monetization model.

⚠️ Clinical decision-support, not medical advice. All output must be reviewed by a licensed clinician. Many longevity compounds here are used off-label, are compounded, or are investigational/not FDA-approved. Dosing, contraindication, interaction, lab, and regulatory data change frequently — always verify against current primary literature, FDA/DEA resources, and your state board of pharmacy.


What it does

ToolTierDescription
get_medication_listFreeFull medication catalog grouped by category, with ids, drug class, and DEA/Rx schedule.
get_medication_detailsFreeMechanism, formulations, who it's for / not for, and schedule for one medication.
get_fda_statusFreeFDA approval status, DEA schedule, 503A/503B compounding considerations, approved uses, off-label notes.
get_dosing_protocolPremiumEvidence-based dosing: route, start, titration, maintenance, max, evidence grade, pearls — by indication.
get_required_labsPremiumRecommended baseline labs/assessments before prescribing, grouped by panel with rationale.
get_monitoring_planPremiumOngoing monitoring schedule — what to check, interval, and action/threshold.
check_contraindicationsPremiumScreens a medication against a patient profile (age, sex, conditions, meds) → PASS / FLAG / REJECT with the triggering findings.
check_drug_interactionsPremiumPairwise interaction warnings across a medication list, ranked by severity, with mechanism + management.
screen_patient_intakePremiumMaps a patient's symptoms/goals to suggested treatment pathways with first-line + adjunct medications and workup.

The eight categories: Weight Management, Peptide Therapy, Hormone Optimization, Longevity & Metabolic, Sexual Health, Immune & Inflammation, Hair Restoration, Dermatology.

Every tool accepts a medication as a name, id, or brand/alias (e.g. "Tirzepatide", "tirzepatide", "Mounjaro", or "copper peptide" → GHK-Cu). Unrecognized queries return "did you mean" suggestions.

Compounds covered

Semaglutide · Tirzepatide · Liraglutide · Naltrexone/Bupropion · BPC-157 · Sermorelin · CJC-1295/Ipamorelin · Ipamorelin · Tesamorelin · Thymosin Beta-4 (TB-500) · Testosterone (cypionate & cream) · Estradiol · Progesterone · DHEA · Anastrozole · Pregnenolone · hCG · NAD+ · Metformin · Rapamycin · Berberine · Resveratrol · NMN · PT-141 · Oxytocin · Tadalafil · Sildenafil · Thymosin Alpha-1 · Glutathione · Low-Dose Naltrexone · Finasteride · Oral Minoxidil · GHK-Cu · Tretinoin.


Install & build

bash
git clone <repo> longevity-mcp-servercd longevity-mcp-servernpm install
npm run build             # compile TypeScript → dist/ and copy datanpm run smoke             # end-to-end test (optional)

The clinical data ships as JSON in src/data/ and is copied into dist/data/ at build.


Use with Claude Desktop

Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

json
{  "mcpServers": {    "oak-longevity": {      "command": "node",      "args": ["/absolute/path/to/longevity-mcp-server/dist/index.js"],      "env": { "LONGEVITY_LICENSE_KEY": "OAK-XXXX-XXXX-XXXX" }    }  }}

Restart Claude Desktop. You can then ask things like:

  • "List the peptide therapy options."
  • "What's the dosing protocol for tirzepatide for weight loss?"
  • "Can I prescribe tadalafil to a 60-year-old man taking nitroglycerin?"
  • "Check interactions between rapamycin, simvastatin, and clarithromycin."
  • "What baseline labs do I need before starting testosterone?"
  • "A patient reports fatigue, low libido, and wants to lose weight — what pathways fit?"

See examples/claude_desktop_config.json for an npx variant.

Use with Claude Code

bash
claude mcp add oak-longevity -- node /absolute/path/to/longevity-mcp-server/dist/index.js

Inspect locally

bash
npm run inspect          # opens the MCP Inspector against the stdio server

Remote hosting (HTTP / SSE)

The same tools are served over Streamable HTTP for remote deployment (MCPize, a VPS, or serverless):

bash
npm run buildPORT=3000 node dist/http.js# → POST http://localhost:3000/mcp     (GET /health for a liveness check)

The HTTP transport is stateless and multi-tenant: the per-customer license key is read from a request header, so a single deployment can serve many customers.

X-Oak-License: OAK-XXXX-XXXX-XXXX        (preferred)Authorization: Bearer OAK-XXXX-XXXX-XXXX (also accepted)

Monetization & licensing

The server has a built-in free / premium split designed to be wired to a billing provider (Stripe, MCPize) with minimal change.

  • Free tier: get_medication_list, get_medication_details, get_fda_status — the catalog and regulatory reference.
  • Premium tier: the clinical decision-support engine — dosing protocols, baseline labs, monitoring plans, contraindication screening, drug-interaction checks, and intake pathway suggestions.

Premium tools remain discoverable (they appear in tools/list so clients can advertise the upgrade), but calling one without a valid entitlement returns an upgrade prompt instead of data.

Entitlement resolution

Configured via environment variables (stdio) or request headers (HTTP):

VariablePurpose
LONGEVITY_LICENSE_KEYThe customer's license key.
LONGEVITY_TIERForce premium or free (self-hosted / enterprise override).
LONGEVITY_VALID_KEYSComma-separated allowlist of keys treated as valid premium (manual provisioning / testing).
LONGEVITY_LICENSE_VERIFY_URLOptional HTTP endpoint for remote key verification. When set, keys are validated against this service instead of locally.

A locally-issued key matches the format OAK-XXXX-XXXX-XXXX. For production, point LONGEVITY_LICENSE_VERIFY_URL at your billing webhook; it should accept { "key": "..." } and return { "valid": true, "tier": "premium", "expiresAt": "..." }.

The verification layer lives entirely in src/licensing.ts behind a LicenseProvider interface — swap the implementation without touching any tool.


Project structure

longevity-mcp-server/├── src/│   ├── index.ts          # stdio entry point (Claude Desktop / Code)│   ├── http.ts           # Streamable HTTP entry point (remote hosting)│   ├── server.ts         # builds the MCP server + tier gating│   ├── licensing.ts      # free/premium entitlement (pluggable)│   ├── data.ts           # data loading + medication resolver│   ├── types.ts          # clinical data types│   ├── tools/            # one file per MCP tool (9 tools)│   └── data/             # clinical data (JSON)│       ├── categories.json│       ├── medications.json│       ├── dosing.json│       ├── contraindications.json│       ├── interactions.json│       ├── labs.json│       ├── fda.json│       └── pathways.json├── scripts/│   ├── copy-assets.mjs   # copy JSON into dist/ at build│   └── smoke-test.mjs    # end-to-end MCP client/server test├── examples/│   └── claude_desktop_config.json├── package.json├── tsconfig.json├── LICENSE└── README.md

Data model

The clinical data is hand-curated from standard pharmacology references and longevity-medicine practice (Endocrine Society / Menopause Society / ISSWSH guidance, FDA labeling and shortage/bulk-substance lists, and the peer-reviewed literature for off-label and investigational compounds). Each dataset is keyed by medication id:

  • medications.json — class, mechanism, formulations, candidate profile, schedule.
  • dosing.json — per-indication route / start / titration / maintenance / max / evidence grade.
  • contraindications.json — boxed warnings, absolute & relative contraindications (with machine-matchable condition keywords), cautions, pregnancy.
  • interactions.json — per-drug interaction rules (severity, effect, management).
  • labs.json — baseline panels and ongoing monitoring schedule.
  • fda.json — approval status, schedule, 503A/503B compounding considerations, approved uses, references.
  • pathways.json — 15 intake pathways mapping symptoms/goals → first-line + adjunct medications.

Because regulatory status (especially FDA drug-shortage listings and 503A bulk-substance eligibility for peptides) shifts frequently, treat get_fda_status output as a starting point and confirm against the current FDA database before compounding.


License

MIT © 2026 Keith Schmidt, MD — Oak Longevity Institute

The clinical reference content is provided for educational and decision-support purposes only and does not constitute medical advice. See the disclaimer in LICENSE.

Source: README.md at commit 5ee072e

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.