MCP server for drug interaction checking — let AI assistants query a comprehensive drug interaction database
Project description
drug-interaction-mcp
An MCP server that lets AI assistants check drug interactions against a clinically sourced database of 150+ interactions.
Why?
AI assistants frequently give incorrect or incomplete drug interaction advice. When someone asks "Can I take ibuprofen with warfarin?", the answer matters — it could prevent a serious bleeding event.
This MCP server gives AI assistants (Claude, ChatGPT, etc.) access to a curated, evidence-based drug interaction database sourced from FDA drug labels, NIH DailyMed, and established medical literature. Instead of guessing, the AI can query real data.
Quick Start
Install
pip install drug-interaction-mcp
Or run directly with uvx:
uvx drug-interaction-mcp
Configure in Claude Desktop
Add to your Claude Desktop configuration file (claude_desktop_config.json):
{
"mcpServers": {
"drug-interactions": {
"command": "uvx",
"args": ["drug-interaction-mcp"]
}
}
}
That's it. Claude will now have access to drug interaction checking tools.
Tools
check_interaction
Check if there is a known interaction between two drugs.
check_interaction(drug_a="warfarin", drug_b="aspirin")
Returns severity, clinical description, mechanism of action, recommendation, and source.
Example response:
{
"drug_a": "warfarin",
"drug_b": "aspirin",
"found": true,
"severity": "danger",
"description": "Significantly increased risk of major bleeding events...",
"mechanism": "Aspirin inhibits platelet aggregation via COX-1 while warfarin inhibits vitamin K-dependent clotting factors...",
"recommendation": "Avoid combination unless specifically directed by a physician...",
"source": "FDA Drug Label — Warfarin"
}
check_multiple
Check all pairwise interactions among a list of drugs. Useful when reviewing a patient's full medication list.
check_multiple(drugs=["warfarin", "aspirin", "lisinopril", "metformin"])
Returns all found interactions sorted by severity (danger first), with a summary of counts.
search_drug
Fuzzy search for drug names in the database. Handles partial names, typos, and brand/generic name lookups.
search_drug(query="prozac")
search_drug(query="warfa")
get_drug_info
Get all known interactions for a specific drug.
get_drug_info(drug_name="warfarin")
Returns the drug name, total interaction count, and full details on every known interaction.
list_interactions
List all interactions in the database, optionally filtered by severity.
list_interactions(severity="danger")
list_interactions(severity="all")
Severity levels: "danger", "warning", "caution", "all".
Database Coverage
The embedded database includes 150+ clinically documented interactions covering:
- Blood thinners — warfarin, apixaban, rivaroxaban, clopidogrel + various interacting drugs
- Cardiac drugs — digoxin, amiodarone, beta blockers, calcium channel blockers, statins, nitrates
- Psychiatric drugs — SSRIs, SNRIs, MAOIs, antipsychotics, benzodiazepines, mood stabilizers
- Antibiotics — fluoroquinolones, macrolides, tetracyclines, metronidazole, rifampin, linezolid
- Diabetes drugs — metformin, insulin, sulfonylureas, SGLT2 inhibitors
- Pain medications — opioids, NSAIDs, acetaminophen, tramadol
- Supplements — St. John's Wort, ginkgo, ginseng, fish oil, iron, calcium, vitamin K/D/E, CoQ10, turmeric
- OTC drugs — antacids, PPIs, diphenhydramine, dextromethorphan
Each interaction includes:
- Drug name pairs (generic + brand names)
- Severity level (danger / warning / caution)
- Clinical description
- Mechanism of action
- Patient-facing recommendation
- Evidence source (FDA, NIH, etc.)
Data Sources
- FDA Drug Labels — Official prescribing information
- NIH DailyMed — National Library of Medicine drug information
- FDA Drug Safety Communications — Safety alerts
- NIH Office of Dietary Supplements — Supplement interaction data
Disclaimer
This tool is for informational and educational purposes only. It is not a substitute for professional medical advice, diagnosis, or treatment. Always consult a qualified healthcare provider (physician, pharmacist) before making medication decisions. The database may not include all known interactions, and individual patient factors affect interaction risk.
Development
# Clone the repository
git clone https://github.com/pillright/drug-interaction-mcp.git
cd drug-interaction-mcp
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest -v
# Run the server locally
python -m drug_interaction_mcp.server
Contributing
Contributions are welcome. To add new interactions:
- Fork the repository
- Add interactions to
src/drug_interaction_mcp/interactions.py - Ensure each interaction has: drug names, severity, description, mechanism, recommendation, and a credible source
- Add tests for new interactions
- Open a pull request
All interaction data must be sourced from FDA drug labels, NIH, or peer-reviewed medical literature.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file drug_interaction_mcp-0.1.0.tar.gz.
File metadata
- Download URL: drug_interaction_mcp-0.1.0.tar.gz
- Upload date:
- Size: 32.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
525544e1a698c5f24960a793e18c31e1657d4e5c17cedbd4b637f0749892d6a1
|
|
| MD5 |
9030f1ff49e3888689adb58d2fa077f6
|
|
| BLAKE2b-256 |
7d8f1dfce373f771557c7365d7305a79cc4e482e3d1ebdff53bb89b9b1ac8150
|
File details
Details for the file drug_interaction_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: drug_interaction_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 31.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
890c3b362b60af6cdcf79dbd43e7c325dcfc144cd1c41be91cee2a9f77fd706e
|
|
| MD5 |
1e1ef1c5eb504d3bf6132d8395eafafd
|
|
| BLAKE2b-256 |
c817bb2628e623784be92e0c608af5ab3f3f9a78d2445f8e39e3e2b60ce3dcea
|