Skip to main content

MCP server for drug interaction checking — let AI assistants query a comprehensive drug interaction database

Project description

drug-interaction-mcp

CI PyPI Python License: MIT GitHub stars

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

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:

  1. Fork the repository
  2. Add interactions to src/drug_interaction_mcp/interactions.py
  3. Ensure each interaction has: drug names, severity, description, mechanism, recommendation, and a credible source
  4. Add tests for new interactions
  5. Open a pull request

All interaction data must be sourced from FDA drug labels, NIH, or peer-reviewed medical literature.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drug_interaction_mcp-0.1.0.tar.gz (32.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

drug_interaction_mcp-0.1.0-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

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

Hashes for drug_interaction_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 525544e1a698c5f24960a793e18c31e1657d4e5c17cedbd4b637f0749892d6a1
MD5 9030f1ff49e3888689adb58d2fa077f6
BLAKE2b-256 7d8f1dfce373f771557c7365d7305a79cc4e482e3d1ebdff53bb89b9b1ac8150

See more details on using hashes here.

File details

Details for the file drug_interaction_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for drug_interaction_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 890c3b362b60af6cdcf79dbd43e7c325dcfc144cd1c41be91cee2a9f77fd706e
MD5 1e1ef1c5eb504d3bf6132d8395eafafd
BLAKE2b-256 c817bb2628e623784be92e0c608af5ab3f3f9a78d2445f8e39e3e2b60ce3dcea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page