Mcp Clinical Reasoner

io.github.pcmedsingePublished by GitHub account pcmedsingev1.0.0Updated Oct 24, 2026

Drug interactions (FDA), dose range check, allergy cross-reactivity. No PHI processed.

The publisher's own server: [PREPROD] Clinical.ly Research Suite

VerifiedSTDIODesktop onlyKnowledge & MemoryAI & ML

Overview

AI-generated overview

A local MCP server giving an assistant four clinical pharmacology tools: drug lookup, drug-drug interaction checks, dose range checks and allergy cross-reaction

What you can do
Look up a drug by name or RxNorm CUI to get its canonical name, RxCUI, drug class and dose reference via the NLM RxNav API, with brand aliases resolved automatically (for example Tylenol to acetaminophen). Check drug-drug interactions for 2 to 10 RxNorm CUIs, sorted by severity, through the same API. Validate a proposed single dose in milligrams against a built-in table of about 20 common drugs. Check allergy cross-reactivity against 12 built-in allergen classes such as penicillin, sulfonamide and NSAID.
When to use it
Useful for research, educational or prototyping work where an assistant needs quick reference checks on drug names, interactions, adult dose ranges or allergy cross-reactivity. Not a substitute for clinical judgement, pharmacist review or professional medical advice.
Requirements
Runs as a local Python process, installed from the PyPI package via uv; stdio is the default transport, with an optional SSE mode on port 8002. Network access to the RxNav REST API is needed for drug lookup and interaction checks; no API key is required. Optional environment variables configure the RxNav base URL and timeout, transport, host, port, log level, and LangFuse tracing keys.
Before you install
Dose limits and cross-reactivity rules come from general adult references and must be individualised per patient; the README states the server is for research and educational purposes only and does not replace clinical judgement or pharmacist review. Drug lookup and interaction queries are sent to the third-party NLM RxNav API. If LangFuse tracing is enabled via LANGFUSE_PUBLIC_KEY and LANGFUSE_SECRET_KEY, tool calls are traced with latency and response size. The README states no PHI is handled.

Installation

In SourceWeft

  1. Open Mcp Clinical Reasoner 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

mcp-clinical-reasoner

Part of fhir-mcp-suite — v1.0.0

An MCP server providing four clinical pharmacology tools backed by the free NLM RxNav REST API and a built-in rule-based reference table. No API key required. No PHI processed.

[License]


Tools

ToolTransportDescription
lookup_drugRxNav APIResolve drug name or RxNorm CUI → canonical name, RxCUI, drug-class membership, dose reference
check_drug_interactionsRxNav APIDetect drug-drug interactions (DDIs) for 2–10 RxNorm CUIs, sorted by severity
check_doseRule-basedValidate a proposed single dose (mg) against a built-in table of ~20 common drugs
check_allergy_conflictsRule-basedCross-reactivity check against 12 allergen classes using built-in table

Architecture

Claude Desktop / LangGraph agent          │  MCP (stdio or SSE)          ▼ mcp-clinical-reasoner  (:8002 in SSE mode)    ├── lookup_drug ────────────────► rxnav.nlm.nih.gov/REST    ├── check_drug_interactions ────► rxnav.nlm.nih.gov/REST    ├── check_dose ─────────────────► built-in DOSE_TABLE (20 drugs)    └── check_allergy_conflicts ────► built-in ALLERGEN_CLASSES (12 classes)

All tool calls traced via LangFuse (session-scoped, latency + response bytes).


Built-in Dose Table

Covers 20 common drugs: acetaminophen, ibuprofen, aspirin, naproxen, metformin, lisinopril, atorvastatin, metoprolol, amlodipine, omeprazole, amoxicillin, azithromycin, warfarin, furosemide, sertraline, gabapentin, clopidogrel, hydrochlorothiazide, prednisone, albuterol.

Brand aliases are resolved automatically (e.g. "Tylenol" → acetaminophen, "Advil" → ibuprofen).

Built-in Allergen Classes

12 classes: penicillin, cephalosporin, sulfonamide, nsaid, macrolide, fluoroquinolone, statin, ace_inhibitor, angiotensin_receptor_blocker, beta_blocker, thiazide_diuretic, tetracycline.


Quick start

bash
# Install (uv workspace from repo root)uv sync --all-packages
# Run (stdio, default)uv run mcp-clinical-reasoner
# Run (SSE on port 8002)MCP_TRANSPORT=sse uv run mcp-clinical-reasoner

Environment variables

VariableDefaultDescription
RXNAV_BASE_URLhttps://rxnav.nlm.nih.gov/RESTRxNav API base URL
RXNAV_TIMEOUT_S30.0HTTP timeout (seconds)
MCP_TRANSPORTstdiostdio or sse
MCP_HOST0.0.0.0SSE bind host
MCP_PORT8002SSE port
LANGFUSE_PUBLIC_KEY(optional)LangFuse tracing
LANGFUSE_SECRET_KEY(optional)LangFuse tracing
LANGFUSE_HOST(optional)LangFuse host
LOG_LEVELINFOLogging level

Claude Desktop configuration

json
{  "mcpServers": {    "clinical-reasoner": {      "command": "uv",      "args": [        "--directory", "/path/to/fhir-mcp-suite",        "run", "--package", "mcp-clinical-reasoner",        "mcp-clinical-reasoner"      ]    }  }}

Tests

bash
# Unit tests (36 tests, no network required)uv run pytest packages/mcp-clinical-reasoner/tests/ -v -m "not integration and not eval"
# Offline eval (dose + allergy + error validation)uv run python evals/mcp-clinical-reasoner/run_eval.py --tags dose allergy error
# Full eval suite (requires rxnav.nlm.nih.gov)uv run python evals/mcp-clinical-reasoner/run_eval.py

Eval results (offline, no network)

Tag setCasesPass rate
error6100%
dose + allergy12100%

Disclaimer

This server is for research and educational purposes only. It does not replace clinical judgement, pharmacist review, or professional medical advice. All dose limits and cross-reactivity rules are from general adult references and must be individualised for each patient.


License

Apache-2.0 — see LICENSE.

Source: packages/mcp-clinical-reasoner/README.md at commit 07fc507

Tools

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

Version history

1
  1. v1.0.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.

Other Clinical integrations