Mcp Healthcare — Icd 10, Npi, Ndc, Dea Tools
LocalAbout Mcp Healthcare — Icd 10, Npi, Ndc, Dea Tools
An MCP server offering healthcare data tools for diagnosis codes, provider records, drug listings, and DEA number checks. It is intended for MCP client users who need to search or validate these records from AI workflows.
Key features
- 01Search and validate ICD-10-CM codes
- 02Search and look up NPI providers
- 03Search and look up NDC drugs
- 04Validate or generate test DEA numbers
Use cases
- 01Finding diagnosis codes by keyword
- 02Looking up providers by name or NPI
- 03Searching drugs by name or ingredient
- 04Checking DEA numbers during development
MCP support
Exposes ten healthcare data tools to MCP clients over stdio, including code search, provider lookup, drug search, and DEA validation.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
10Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| code | string | Yes | ICD-10-CM code to look up (e.g., "E11.9", "J06.9", "M54.5") |
Details
From the project READMEMCP Healthcare Server
A Model Context Protocol (MCP) server that bundles healthcare data tools for use with Claude Desktop, Cursor, and other MCP clients.
Tools (10 total)
ICD-10-CM Diagnosis Codes (74,260 codes from CMS 2025)
| Tool | Description |
|---|---|
icd10_lookup | Look up an ICD-10-CM code by code string (e.g., E11.9) |
icd10_search | Search codes by keyword (e.g., "diabetes", "chest pain") |
icd10_validate | Check if a code exists in the 2025 code set |
NPI Provider Registry (live NPPES queries)
| Tool | Description |
|---|---|
npi_search | Search providers by name, specialty, city, state, ZIP |
npi_lookup | Look up a provider by 10-digit NPI number |
NDC Drug Directory (111,655 FDA products)
| Tool | Description |
|---|---|
ndc_lookup | Look up a drug by NDC code (e.g., 0002-1433-80) |
ndc_search | Search drugs by name, generic name, or manufacturer |
ndc_search_ingredient | Search drugs by active ingredient |
DEA Number Validation (algorithm-based)
| Tool | Description |
|---|---|
dea_validate | Validate a DEA number using the official checksum algorithm |
dea_generate_test | Generate a valid test DEA number for development |
Setup
Prerequisites
- Node.js 18+
- The ICD-10 and NDC data files from sibling API directories
Install
cd mcp-healthcare
npm install
npm run link-data # creates symlinks to ICD-10 and NDC data files
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"healthcare": {
"command": "node",
"args": ["/absolute/path/to/mcp-healthcare/src/index.js"]
}
}
}
Cursor Configuration
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"healthcare": {
"command": "node",
"args": ["/absolute/path/to/mcp-healthcare/src/index.js"]
}
}
}
Data Sources
| Dataset | Source | Update Frequency |
|---|---|---|
| ICD-10-CM | CMS (Centers for Medicare & Medicaid) | Annually (October) |
| NDC | FDA National Drug Code Directory | Weekly |
| NPI | NPPES Registry (live API) | Real-time |
| DEA | Checksum algorithm (no dataset) | N/A |
Transport
This server uses stdio transport (stdin/stdout), which is the standard for local MCP integrations with Claude Desktop and Cursor. No HTTP server is started.
Architecture
The server imports pure business logic extracted from four Express-based REST APIs:
src/tools/icd10.js— ICD-10 code lookup, search, validation (loads 6MB JSON dataset)src/tools/ndc.js— NDC drug lookup and search (loads 53MB JSON dataset)src/tools/npi.js— NPI provider search via live NPPES APIsrc/tools/dea.js— DEA number validation (pure algorithm, no dataset)
Data files are symlinked from sibling API directories to avoid duplication.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.