PRISM

PRISM

An MCP server that provides clinical decision support for polysubstance risk and drug–substance interactions, grounding LLM responses in a 7-level evidence cascade with population priors and validated screening triggers.

Category
Visit Server

README

PRISM — Polysubstance Risk & Interaction Surveillance for Mental-health prescribing

Phase 3 of the PRISM platform.

Clinical decision support checks drug–drug interactions. It largely ignores drug–substance and substance–substance risk — which is where overdose mortality actually comes from (opioid + benzodiazepine, opioid + alcohol).

PRISM is a reasoning layer that closes that gap and grounds an LLM in retrieved evidence rather than recall. It ships as an MCP server with 47 tools and a web platform, both driven by the same validated cascade.

Not a medical device. PRISM surfaces evidence with its provenance. It does not give clinical advice, and the validation harness asserts that it never crosses that line.


The 7-level evidence cascade

Level Source Offline?
1 Curated interaction knowledge base yes
2 OpenFDA drug labeling live
3 CYP450 / transporter kinetics yes
4 Pharmacodynamic stacking (e.g. CNS depression) yes
5 Drug-class combinations yes
6 FAERS disproportionality signals (Phase 2) yes
7 External interaction sources live

Severity is the maximum across levels; confidence scales with the number of independent levels that fire (1 → low, 4+ → very_high). The model cannot invent an interaction — it can only report what a level returned, tagged with that level's source.

On top of the per-pair checks sits compound-risk synthesis: triple CNS-depressant stacks, naloxone candidacy, cocaethylene formation, Beers criteria, teratogenicity — plus automatic screening triggers (AUDIT, DAST-10, CUDIT-R, GAD-7, PHQ-9).

Proxy matching means street terms resolve to pharmacology: heroin → opioid class, street benzos → benzodiazepine class.

Population prior

Phase 1's NSDUH model is imported as a national baseline, so the system can answer "how risky is this patient's profile relative to the population?" rather than only "do these two drugs interact?" — 1,188 risk profiles, 60 annual trend rows, and the logistic coefficients for real-time scoring.

Validation

14 clinical scenarios run end-to-end through the live server and PostgreSQL:

  • 2 cases flagged life_threatening; 0 instances of overstepping into advice
  • Case 14 regression (benzodiazepine + opioid) returns life_threatening across levels 1, 4, 5, 6, 7 with fda_black_box=True — it returned nothing before the cascade was built, and it is the reason the cascade exists
  • Audit rows persist to cascade_results, compound_risk_alerts, and screening_queue

The public repo ships a synthetic 14-case set that reproduces identical severities for all 14 cases. See scenarios/README.md.

Layout

src/
  server.py         FastMCP server, 47 registered tools
  cascade.py        the 7-level engine (DB-optional, unit-testable)
  cascade_tools.py  DB-backed cascade tools
  extra_tools.py    remaining registry tools
  live_apis.py      OpenFDA (L2) + RxNorm (L1) hooks
  api/app.py        FastAPI bridge for the web UI
  db/
    schema.sql              24 base tables
    migrations_path3.sql    +5 cascade tables (29 total)
    seed.py                 curated KB (+ private case loader)
    load_scenarios.py       scenario loader (synthetic or private)
    import_path3_data.py    imports Phase 1 + Phase 2 exports
web/                Next.js 14 app (8 pages, Tailwind, Recharts)
scenarios/          synthetic validation cases
validate_scenarios.py

Setup

python -m venv venv && ./venv/bin/pip install -r requirements.txt
createdb prism_db
psql prism_db -f src/db/schema.sql
psql prism_db -f src/db/migrations_path3.sql

python -m src.db.seed --reference-only      # curated KB, no patient data
python -m src.db.load_scenarios --replace   # 14 synthetic cases
python src/db/import_path3_data.py          # Phase 1 + Phase 2 exports
python validate_scenarios.py

import_path3_data.py reads the sibling NSDUH/ and FAERS/ checkouts by default; override with NSDUH_RESULTS and FAERS_RESULTS environment variables.

Running the server

python -m src.server           # stdio  (Claude Desktop, Claude Code)
python -m src.server --http    # HTTP   on :8000

Register with an MCP host:

{ "mcpServers": {
    "prism": {
      "command": "/path/PRISM/venv/bin/python",
      "args": ["-m", "src.server"],
      "cwd": "/path/PRISM",
      "env": { "DATABASE_URL": "postgresql://localhost/prism_db" }
}}}

License

MIT (code). Clinical scenario source material is not distributed. Not a medical device; not reviewed by any regulatory authority; must not be used to direct patient care.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured