MCP Healthcare Server
README.md
# MCP Healthcare Server
> An MCP (Model Context Protocol) server that gives LLMs real-time access to healthcare data — drug interactions, ICD-10 codes, FDA adverse events, Medicare statistics, and clinical guidelines.
[](https://github.com/shinegami-2002/mcp-healthcare-server/actions)




---
## What is MCP?
[Model Context Protocol (MCP)](https://modelcontextprotocol.io) is an open standard by Anthropic for connecting LLMs to external data sources and tools. Instead of hardcoding data into prompts, MCP lets LLMs dynamically call tools to fetch real-time information.
This server exposes **6 healthcare tools** that any MCP-compatible client (Claude Desktop, Cursor, etc.) can use.
---
## Available Tools
| Tool | Description | Data Source |
|------|-------------|-------------|
| `drug_interaction` | Check interactions between two drugs | openFDA API |
| `icd10_lookup` | Look up ICD-10-CM diagnosis code descriptions | NLM Clinical Tables API |
| `icd10_search` | Search ICD-10-CM codes by keyword | NLM Clinical Tables API |
| `fda_adverse_events` | Get FDA adverse event reports for a drug | openFDA API |
| `medicare_drug_statistics` | Medicare Part D prescribing data | CMS.gov API |
| `clinical_guidelines` | Search PubMed for clinical guidelines | NCBI/PubMed E-utilities |
All APIs are **free and require no API keys**.
---
## Quick Start
### Use with Claude Desktop
1. Install the server:
```bash
git clone https://github.com/shinegami-2002/mcp-healthcare-server.git
cd mcp-healthcare-server
pip install -e .
```
2. Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"healthcare": {
"command": "python",
"args": ["/absolute/path/to/mcp-healthcare-server/src/server.py"]
}
}
}
```
3. Restart Claude Desktop. You'll now see healthcare tools available in the tool picker.
### Use with Docker
```bash
docker build -t mcp-healthcare .
docker run mcp-healthcare
```
---
## Example Output
### Drug Interaction Check
```
> drug_interaction("warfarin", "aspirin")
## Drug Interaction: Warfarin <-> Aspirin
**Coumadin** (warfarin):
Drugs may interact with warfarin sodium through pharmacodynamic or
pharmacokinetic mechanisms. Pharmacodynamic mechanisms for drug interactions
with warfarin sodium include synergism (impaired hemostasis, reduced
clotting factor synthesis), competitive antagonism...
```
### ICD-10 Code Lookup
```
> icd10_lookup("E11")
Codes matching 'E11':
- **E11.00**: Type 2 diabetes mellitus with hyperosmolarity without NKHHC
- **E11.01**: Type 2 diabetes mellitus with hyperosmolarity with coma
- **E11.10**: Type 2 diabetes mellitus with ketoacidosis without coma
- **E11.21**: Type 2 diabetes mellitus with diabetic nephropathy
- **E11.9**: Type 2 diabetes mellitus without complications
```
### FDA Adverse Events
```
> fda_adverse_events("ibuprofen", 3)
## FDA Adverse Events for Ibuprofen
*Source: openFDA (fda.gov)*
**Report 1** (Date: 2014-02-28)
- Serious: No
- Reactions: Dyspepsia, Renal impairment
**Report 2** (Date: 2014-03-12)
- Serious: No
- Reactions: Cholecystectomy, Nephrolithiasis, Biliary tract disorder
```
### Medicare Part D Statistics
```
> medicare_drug_statistics("Lipitor")
## Medicare Part D Statistics: Lipitor
*Source: CMS.gov (2023 data)*
- **Lipitor** (Atorvastatin Calcium) — Overall
Total Claims (2023): 28,226
Total Spending (2023): $32,942,704.71
Avg Cost/Claim: $1,167.10
Beneficiaries: 7,792
```
### Clinical Guidelines Search
```
> clinical_guidelines("diabetes", 3)
## Clinical Guidelines: Diabetes
*Source: PubMed (3 results)*
**Type 1 Diabetes Mellitus and Cognitive Impairments: A Systematic Review.**
- Authors: Li W et al.
- Journal: J Alzheimers Dis
- Published: 2017
- Link: https://pubmed.ncbi.nlm.nih.gov/28222533/
```
---
## Architecture
```
┌──────────────────────────┐
│ MCP Client │
│ (Claude Desktop, etc.) │
└────────┬─────────────────┘
│ MCP Protocol (stdio)
┌────────▼─────────────────┐
│ MCP Healthcare Server │
│ Python + FastMCP │
│ │
│ ┌─ drug_interaction │──→ openFDA API
│ ├─ icd10_lookup │──→ NLM Clinical Tables API
│ ├─ icd10_search │──→ NLM Clinical Tables API
│ ├─ fda_adverse_events │──→ openFDA API
│ ├─ medicare_drug_stats │──→ CMS.gov API
│ └─ clinical_guidelines │──→ PubMed E-utilities
└──────────────────────────┘
```
---
## Project Structure
```
mcp-healthcare-server/
├── src/
│ ├── server.py # FastMCP server + tool definitions
│ └── tools/
│ ├── drug_interactions.py # openFDA drug interaction queries
│ ├── icd_lookup.py # ICD-10-CM code lookup/search (NLM API)
│ ├── adverse_events.py # FDA adverse event reports
│ ├── medicare_stats.py # CMS Medicare Part D data
│ └── clinical_guidelines.py # PubMed guideline search
├── tests/ # Unit tests with mocked HTTP (respx)
├── .github/workflows/ci.yml # GitHub Actions CI
├── pyproject.toml
├── Dockerfile
└── LICENSE
```
---
## Development
```bash
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Lint
ruff check src/ tests/
```
---
## Tech Stack
- **Python 3.11+** — async throughout
- **FastMCP** — MCP server framework
- **httpx** — async HTTP client
- **openFDA API** — drug labels, adverse events
- **NLM Clinical Tables API** — ICD-10-CM codes (70k+ codes)
- **CMS.gov Open Data** — Medicare Part D prescribing statistics
- **PubMed E-utilities** — clinical literature search
- **pytest + respx** — testing with mocked HTTP
- **GitHub Actions** — CI pipeline
- **Docker** — containerized deployment
---
## Disclaimer
This tool is for **informational and educational purposes only**. It should NOT be used for medical decision-making. Always consult qualified healthcare professionals for medical advice.
---
## License
MIT License — see [LICENSE](LICENSE) for details.
---
**Built by [Shanmukha Chatadi](https://linkedin.com/in/shanmukha-chatadi)** — MS CS @ NC State '26
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues