Healthcare reference data for AI agents: providers, drugs, diagnoses, labs, codes, claims.
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y @fhirfly-io/mcp-server
MCP client config
{
"mcpServers": {
"fhirfly-mcp": {
"command": "npx",
"args": [
"-y",
"@fhirfly-io/mcp-server"
]
}
}
}MCP (Model Context Protocol) server for connecting Claude Desktop to FHIRfly healthcare reference data APIs.
This package lets Claude Desktop look up real healthcare reference data including:
When you ask Claude about medications, providers, or clinical codes, it can look up accurate, current information instead of relying on training data.
ffly_)Find your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd the FHIRfly server configuration:
{
"mcpServers": {
"fhirfly": {
"command": "npx",
"args": ["-y", "@fhirfly-io/mcp-server"],
"env": {
"FHIRFLY_API_KEY": "ffly_live_your_key_here"
}
}
}
}
Replace ffly_live_your_key_here with your actual API key.
Completely quit Claude Desktop and reopen it. The FHIRfly tools should now be available.
Try asking Claude:
Claude should use the FHIRfly tools to look up real data.
| Tool | Description |
|---|---|
ndc_get | Look up drug by NDC code |
ndc_search | Search drugs by name, ingredient, etc. |
npi_get | Look up provider by NPI number |
npi_search | Search providers by name, specialty, location |
rxnorm_get | Look up drug by RxCUI |
rxnorm_search | Search drug terminology |
loinc_get | Look up lab test by LOINC code |
loinc_search | Search lab codes |
icd10_get | Look up diagnosis/procedure code |
icd10_search | Search ICD-10 codes |
cvx_get | Look up vaccine by CVX code |
cvx_search | Search vaccine codes |
mvx_get | Look up vaccine manufacturer |
mvx_search | Search manufacturers |
fda_label_lookup | Look up FDA drug label |
fda_label_search | Search drug labels |
fda_label_safety | Get safety info (boxed warnings, contraindications) |
fda_label_interactions | Get drug interaction info |
fda_label_dosing | Get dosing information |
fda_label_sections | Get specific label sections |
snomed_get | Look up clinical concept by SNOMED CT ID |
snomed_search | Search SNOMED CT IPS concepts |
snomed_mappings | Find cross-terminology mappings for a SNOMED concept |
npi_connectivity | Look up provider connectivity (FHIR endpoints) |
sma_list_states | List states with Medicaid FHIR endpoint status |
sma_get_state | Get SMA FHIR endpoint details for a state |
sma_stats | Get aggregate SMA implementation statistics |
ncci_validate | Check if two codes can be billed together (NCCI) |
mue_lookup | Look up max units of service (MUE limits) |
pfs_lookup | Look up Medicare fee schedule / RVU data |
coverage_check | Check LCD/NCD coverage determinations |
| HCPCS / MS-DRG / POS / J-Code Tools | |
hcpcs_get | Look up an HCPCS Level II procedure/supply code |
hcpcs_modifier_get | Look up an HCPCS modifier code |
hcpcs_search | Search HCPCS Level II codes |
msdrg_get | Look up an MS-DRG code |
msdrg_search | Search MS-DRG codes |
pos_get | Look up a Place of Service code |
jcode_by_hcpcs | Find NDCs mapped to a J-code/HCPCS code |
jcode_by_ndc | Find HCPCS codes mapped to an NDC |
| HCC / OPCS-4 Tools | |
hcc_get | Look up HCC risk adjustment mappings for an ICD-10 code |
hcc_reverse | Find all ICD-10 codes mapping to a given HCC category |
hcc_search | Search the HCC crosswalk by code, model, or category |
opcs4_get | Look up an OPCS-4 UK NHS procedure code |
opcs4_search | Search OPCS-4 procedure codes |
| dm+d Tools | |
dmd_get | Look up a UK dm+d medicine/device by SNOMED code |
dmd_search | Search UK dm+d medicines and devices |
| UCUM Tools | |
ucum_get | Look up a UCUM unit code (e.g., mg, mL, kg/m2) |
ucum_search | Search units of measure by name or description |
ucum_validate | Validate a UCUM expression for correctness |
ucum_convert | Convert a value between compatible UCUM units |
| RxClass Tools | |
rxclass_get | Look up a drug class by class ID |
rxclass_search | Search drug classifications by name or type |
rxclass_members | List drugs belonging to a drug class |
| DDI Tools | |
check_drug_interactions | Check drug-drug interactions for multiple drugs (FDA label text + RxNorm) |
| Batch Tools | |
ndc_batch | Look up multiple NDC codes (max 500) |
npi_batch | Look up multiple NPI numbers (max 100) |
icd10_batch | Look up multiple ICD-10 codes (max 100) |
rxnorm_batch | Look up multiple RxCUIs (max 100) |
loinc_batch | Look up multiple LOINC codes (max 100) |
cvx_batch | Look up multiple CVX codes (max 100) |
mvx_batch | Look up multiple MVX codes (max 100) |
fda_label_batch | Look up multiple FDA labels (max 50) |
| Environment Variable | Description | Default |
|---|---|---|
FHIRFLY_API_KEY | Your FHIRfly API key (required) | - |
FHIRFLY_API_URL | API base URL | https://api.fhirfly.io |
FHIRFLY_DEBUG | Enable debug logging (1 or true) | false |
FHIRFLY_TIMEOUT | Fetch timeout in milliseconds | 30000 |
Your API key isn't configured. Make sure:
env section of your Claude Desktop configffly_FHIRfly API keys start with ffly_. Check that you copied the full key.
Your API key may be invalid or expired. Generate a new one at fhirfly.io/dashboard/credentials.
{
"mcpServers": {
"fhirfly": {
"command": "npx",
"args": ["-y", "@fhirfly-io/mcp-server"],
"env": {
"FHIRFLY_API_KEY": "your_key",
"FHIRFLY_DEBUG": "1"
}
}
}
}
You've hit your plan's rate limit. Wait a moment and try again, or upgrade your plan at fhirfly.io.
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude Desktop │────▶│ This Package │────▶│ FHIRfly API │
│ │ │ (runs locally) │ │ (cloud) │
│ "What is │◀────│ │◀────│ │
│ NDC 123..." │ │ Translates MCP │ │ Returns drug │
│ │ │ ↔ HTTPS │ │ data │
└─────────────────┘ └─────────────────┘ └─────────────────┘
This package runs on your computer as a bridge between Claude Desktop and the FHIRfly API. It:
Your API key is sent to FHIRfly over HTTPS. No healthcare data is stored locally.
| Data Source | Provider | License |
|---|---|---|
| NDC Directory | FDA | Public domain |
| NPPES (NPI) | CMS | Public domain |
| RxNorm | NLM (NIH) | UMLS license (free) |
| LOINC | Regenstrief Institute | Free with attribution |
| ICD-10-CM/PCS | CMS | Public domain |
| CVX/MVX | CDC | Public domain |
| FDA Drug Labels | FDA/openFDA | Public domain |
| SNOMED CT IPS | SNOMED International | CC BY 4.0 |
| HCC Crosswalk | CMS | Public domain |
| OPCS-4 | NHS England | OGL v3.0 (Crown copyright) |
| dm+d | NHS England / NHSBSA | OGL v3.0 (Crown copyright) |
| UCUM | NLM (NIH) / Regenstrief Institute | Free with attribution |
| RxClass | NLM (NIH) | UMLS license (free) |
| SMA Endpoint Directory | CMS | Public domain |
| HCPCS Level II | CMS | Public domain |
| MS-DRG | CMS | Public domain |
| Place of Service | CMS | Public domain |
| J-Code/NDC Crosswalk | CMS | Public domain |
| NCCI/MUE/PFS | CMS | Public domain |
| DDI Reference | FDA + NLM | Public domain |
FHIRfly aggregates and indexes these data sources. See fhirfly.io/docs for details.
See CHANGELOG.md for release history.
MIT - see LICENSE