OathMCP
Health Warn
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Agent-native MCP server for evidence-backed clinical calculators.
OathMCP
An agent-native Model Context Protocol server
for 39 established clinical calculators and structured interpretation tools.
OathMCP gives AI agents strict input and output schemas, per-value unit handling,
plausibility guards, cited evidence resources, and deterministic calculation
paths over stdio, stateless HTTP, and Cloudflare Workers.
The included calculators are documented clinical instruments, formulas, and
policy models. OathMCP is an implementation of those sources, not new clinical
research and not a replacement for the original publications, governing
policies, or local protocols.
Responsible use: OathMCP provides clinical decision-support calculations,
not medical advice, diagnosis, or treatment. The clinician remains responsible
for selecting the appropriate calculator, confirming its population and
version, checking the inputs and units, interpreting the result in context,
and making every clinical decision. See
Responsible Use for the complete responsibility,
deployment, privacy, warranty, and limitation-of-liability notice.
Release status
Version 0.1.0 is the planned first open-source release and is not yet
published to npm.
All 39 calculator dossiers and all four review groups currently derivescenario_verified, and the ordinary acceptance, clinical-release, transport,
compatibility, and package gates pass.
In OathMCP, scenario_verified has a precise repository meaning: the implemented
model and its declared population, variant, inputs, outputs, warnings,
interpretations, and exclusions are linked to reviewed sources and pass frozen
source-derived cases through the engine, full MCP tool, and compact MCP tool.
It does not mean regulatory approval, guarantee suitability for an individual
patient, or remove clinician discretion.
Quick start
From source
Requires Node.js 22 or later.
git clone https://github.com/OATH-md/OathMCP.git
cd OathMCP
npm ci
npm run check
npm run start:stdio
Configure an MCP-compatible client to run the built stdio server:
{
"mcpServers": {
"oath": {
"command": "node",
"args": ["/absolute/path/to/OathMCP/dist/server/stdio.js"]
}
}
}
npm package
After the first registry publication:
npx oath-mcp
{
"mcpServers": {
"oath": {
"command": "npx",
"args": ["-y", "oath-mcp"]
}
}
}
Remote deployment
The remote server is stateless: each request receives a fresh MCP server and no
session state is retained. A client points at the deployed streamable HTTP URL:
{
"mcpServers": {
"oath": {
"url": "https://mcp.oath.md/mcp"
}
}
}
Run the HTTP transports locally:
npm run start:http # Node/Express on http://127.0.0.1:3000/mcp
npx wrangler dev # Cloudflare Workers development server on /mcp
The Node server binds to 127.0.0.1 by default. Set HOST and PORT only when
the deployment boundary is intentional. Browser clients must have their exact
origin in the comma-separated allowlist:
OATH_ALLOWED_ORIGINS=https://app.example,https://review.example npm run start:http
An absent Origin is accepted for non-browser MCP clients. Any nonempty origin
not present in OATH_ALLOWED_ORIGINS receives HTTP 403; wildcard origin rules
are not supported. Use the same binding for Worker deployments. Both HTTP
implementations accept CORS preflight with OPTIONS /mcp, perform MCP requests
with POST /mcp, and return a JSON 405 without reading the body for every other
method on that path.
Deploy to Workers only after reviewing Responsible Use,
the security and privacy boundary, and the release checklist. The official
Worker uses Cloudflare Workers Builds: a push to main runs npm run check:deploy, then deploys with the checked-in wrangler.jsonc only if that
gate succeeds. For a manual recovery deployment:
npm run deploy:worker
The official documentation is available at https://mcp.oath.md/docs/, and the
public unauthenticated endpoint is https://mcp.oath.md/mcp. The endpoint serves
the compact four-tool dispatch surface,
applies an edge limit of 120 requests per client per minute, accepts browser
requests only from https://oath.md and https://mcp.oath.md, and enables
10% sampled Workers observability. Application code does not log request bodies.
Service metadata is available at https://mcp.oath.md/health; the complete
notice is available at https://mcp.oath.md/responsible-use and through the MCP
resource oath://responsible-use. The independently deployed Blume source lives
in the documentation site directory.
See Hosted endpoint operations.
OathMCP does not require patient identifiers. A deployment that accepts
protected or personal health information is the deployer's responsibility and
must provide the authentication, authorization, logging, retention, contractual,
and regulatory controls required in its jurisdiction.
MCP surface
For each calculator, full mode registers:
calculate_<id>— a read-only calculation tool returning result schema 1.1;evidence_<id>— a resource atcalc://<id>/evidencecontaining citations,
interpretation bands, limitations, and safety notes;interpret_<id>— for ABG, CSF, and hepatitis B, a prompt that asks the host
model to summarize deterministic findings without adding a diagnosis or
treatment plan.
Four agent-dispatch tools sit above the catalog:
find_calculatorreturns a bounded ranked set plusmatched,needs_clarification, orno_match; a clarification state must be resolved
before calculation;describe_calculatorreturns the exact model, inputs, outputs, limitations,
version, and evidence metadata;calculate_panelruns selected calculators against compatible shared inputs,
with isolated per-calculator failures; duplicate ids and unused shared or
override keys are rejected instead of silently ignored;calculatedispatches one calculator in compact mode with the same clinical
contract as its direct tool.
Set OATH_MCP_MODE=compact to expose only the four dispatch tools while keeping
all evidence resources. Full mode is the compatibility default.
Analyte inputs accept either a bare number in the documented canonical unit or
an explicit quantity:
{
"creatinine": {
"value": 106,
"unit": "umol/L"
}
}
Bare values always use the field's declared canonical unit. There is no global
US/SI mode.
Calculator catalog
| id | calculator | interpretation prompt |
|---|---|---|
aa_gradient |
Alveolar-arterial oxygen gradient | |
abg |
ABG/VBG acid-base findings | ✓ |
anion_gap |
Anion gap with albumin correction | |
apgar |
APGAR score | |
bmi |
Body mass index | |
bsa |
Body surface area, Mosteller | |
bsa_dubois |
Body surface area, DuBois | |
carboplatin_auc |
Carboplatin dose, Calvert | |
chadsvasc |
CHA₂DS₂-VASc score | |
chemo_dose_bsa |
BSA-based chemotherapy dose | |
child_pugh |
Child-Pugh score | |
corrected_calcium |
Corrected calcium, Payne | |
creatinine_clearance |
Creatinine clearance, Cockcroft-Gault | |
csf |
CSF findings | ✓ |
eos |
Neonatal early-onset sepsis | |
free_water_deficit |
Free-water deficit in hypernatremia | |
gad7 |
GAD-7 | |
gcs |
Glasgow Coma Scale | |
gfr |
Estimated glomerular filtration rate | |
gir |
Glucose infusion rate | |
grace |
GRACE admission-to-six-month mortality | |
hepb |
Hepatitis B triple-panel findings | ✓ |
ibw |
Ideal body weight, Devine | |
ich_volume |
Intracerebral hemorrhage volume, ABC/2 | |
kdpi |
Kidney Donor Profile Index | |
map |
Mean arterial pressure | |
meld |
MELD 3.0 | |
mews |
Modified Early Warning Score | |
morse_fall_scale |
Morse Fall Scale | |
neonatal_measurements |
Neonatal measurement estimates | |
nihss |
NIH Stroke Scale | |
oxygenation_index |
Oxygenation index and oxygen saturation index | |
pews |
Brighton/Monaghan Pediatric Early Warning Score | |
qsofa |
Quick Sequential Organ Failure Assessment | |
r_factor |
R factor for liver injury | |
ranson |
Ranson criteria | |
sodium_deficit |
Sodium deficit in hyponatremia | |
timi |
TIMI risk score for UA/NSTEMI | |
wells_dvt |
Modified two-level Wells DVT score |
Architecture and assurance
Each live calculator consists of three reviewed artifacts:
specs/<id>.yamldefines the strict runtime and MCP contract;src/compute/<id>.tsprovides a pure, exactly typed calculation over
normalized inputs;validation/calculators/<id>.yamlrecords searches, exact claim locators,
current sources, and frozen reference, edge, and agent cases.
The server derives its tools, prompts, and resources from the specs. Runtime
specs contain no test fixtures. Review state is derived by code rather than
authored in YAML, and release checks fail when required sources, cases,
attestations, or currentness windows are incomplete.
The assurance ledger verifies that OathMCP implements the declared calculator
version and documented behavior. It does not claim that OathMCP invented or
revalidated the underlying clinical instrument.
Development and contribution
npm run check # complete acceptance gate
npm run check:clinical-release # source, scenario, currentness, and attestation gate
npm run new:calculator -- --id example --archetype formula
npm run check:calculator -- --id example
npm run promote:calculator -- --id example
npm run lint:specs
npm run typecheck
npm run test
npm run build
See Contributing, the
calculator authoring guide, and the
spec house style. Report security or patient-safety
issues through Security Policy and never include patient data in
an issue, test, or example.
Documentation
- Responsible use and responsibility allocation
- Calculator authoring and promotion
- Specification house style
- Clinical assurance ledger
- Reproducible source-review protocol
- Release process
- Security policy
- Changelog
License
OathMCP is available under the Apache License 2.0. Copyright and
attribution information is provided in NOTICE. The license governs
permission to use, modify, and distribute the software; it does not replace the
clinical and operational boundaries in Responsible Use.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found