FHIRfly MCP Server
MCP server for connecting Claude Desktop to FHIRfly healthcare reference data APIs, enabling lookup of drugs, providers, clinical codes, and more.
README
@fhirfly-io/mcp-server
MCP (Model Context Protocol) server for connecting Claude Desktop to FHIRfly healthcare reference data APIs.
What is this?
This package lets Claude Desktop look up real healthcare reference data including:
- NDC - Drug products and packages (FDA)
- NPI - Healthcare provider identifiers (CMS)
- RxNorm - Drug terminology (NLM)
- LOINC - Laboratory codes (Regenstrief Institute)
- ICD-10 - Diagnosis and procedure codes (CMS)
- CVX/MVX - Vaccine codes (CDC)
- FDA Drug Labels - Prescribing information
- SNOMED CT - Clinical concepts (IPS free set)
- HCC - CMS Hierarchical Condition Category risk adjustment mappings
- OPCS-4 - UK NHS procedure classification codes
- dm+d - UK Dictionary of Medicines and Devices (NHS)
- UCUM - Unified Code for Units of Measure (NLM)
- RxClass - Drug classification hierarchy (NLM)
- HCPCS - Level II procedure and supply codes (CMS)
- MS-DRG - Diagnosis Related Groups for inpatient payment (CMS)
- POS - Place of Service codes for claims submission (CMS)
- J-Code/NDC Crosswalk - Bidirectional HCPCS J-code to NDC mapping (CMS)
- DDI Reference — Drug-drug interaction text from FDA labels + RxNorm enrichment
- Connectivity - Provider FHIR endpoints and Direct addresses
- SMA - State Medicaid Agency FHIR endpoint directory (CMS)
- Claims Intelligence - NCCI edits, MUE limits, PFS/RVU data, coverage determinations
When you ask Claude about medications, providers, or clinical codes, it can look up accurate, current information instead of relying on training data.
Prerequisites
- Claude Desktop - Download from claude.ai/download
- Node.js 18+ - Download from nodejs.org
- FHIRfly API Key - Get one at fhirfly.io (free tier available)
Quick Setup
Step 1: Get a FHIRfly API Key
- Go to fhirfly.io and sign up
- Navigate to Dashboard > Credentials
- Click Create Credential and select MCP (Claude Desktop)
- Copy your API key (starts with
ffly_)
Step 2: Configure Claude Desktop
Find your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add 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.
Step 3: Restart Claude Desktop
Completely quit Claude Desktop and reopen it. The FHIRfly tools should now be available.
Verify It Works
Try asking Claude:
- "What is NDC 0069-0151-01?"
- "Look up NPI 1234567893"
- "Search for COVID vaccines in the CVX database"
- "What are the drug interactions for Lipitor?"
- "Which states have implemented Medicaid FHIR endpoints?"
- "Show me the FHIR endpoint details for California's Medicaid program"
- "What is the UCUM code for milligrams per deciliter?"
- "Convert 100 mg to grams"
- "What drugs are in the HMG-CoA Reductase Inhibitors class?"
- "Check interactions between aspirin and warfarin"
Claude should use the FHIRfly tools to look up real data.
Available Tools
| 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) |
Configuration Options
| 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 |
Troubleshooting
"FHIRFLY_API_KEY environment variable is required"
Your API key isn't configured. Make sure:
- You have a valid API key from fhirfly.io
- It's set in the
envsection of your Claude Desktop config - The key starts with
ffly_
"Invalid API key format"
FHIRfly API keys start with ffly_. Check that you copied the full key.
"Authentication failed"
Your API key may be invalid or expired. Generate a new one at fhirfly.io/dashboard/credentials.
Claude doesn't show FHIRfly tools
- Make sure you completely quit and restarted Claude Desktop
- Check your config file syntax (must be valid JSON)
- Enable debug mode to see what's happening:
{
"mcpServers": {
"fhirfly": {
"command": "npx",
"args": ["-y", "@fhirfly-io/mcp-server"],
"env": {
"FHIRFLY_API_KEY": "your_key",
"FHIRFLY_DEBUG": "1"
}
}
}
}
"Rate limit exceeded"
You've hit your plan's rate limit. Wait a moment and try again, or upgrade your plan at fhirfly.io.
How It Works
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 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:
- Receives requests from Claude Desktop via stdin
- Translates them to HTTPS requests to FHIRfly
- Returns the results to Claude via stdout
Your API key is sent to FHIRfly over HTTPS. No healthcare data is stored locally.
Links
Data Sources & Licensing
| 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.
Changelog
See CHANGELOG.md for release history.
License
MIT - see LICENSE
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。