Skip to main content
Glama
shinegami-2002

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.

[![CI](https://github.com/shinegami-2002/mcp-healthcare-server/actions/workflows/ci.yml/badge.svg)](https://github.com/shinegami-2002/mcp-healthcare-server/actions)
![Python](https://img.shields.io/badge/Python-3.11+-3776AB?logo=python&logoColor=white)
![MCP](https://img.shields.io/badge/MCP-1.0-blueviolet)
![License](https://img.shields.io/badge/License-MIT-green)
![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?logo=docker&logoColor=white)

---

## 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