A Model Context Protocol (MCP) server that provides access to the DailyMed API for comprehensive drug information.
DailyMed is the official FDA database containing drug labeling information for approved prescription/nonprescription drugs, biologics, and medical devices. It provides structured, up-to-date drug information in multiple formats with cross-references to RxNorm and pharmacologic classifications.
git clone <repository-url>
cd dailymed-mcp-server
npm install
npm run buildOptional: Download mapping files from DailyMed Mapping Files and place in project root:
pharmacologic_class_mappings.txtrxnorm_mappings.txt
npm start # Production
npm run dev # Development with hot reloadsearch_spls- Search Structured Product Labels with advanced filtering and paginationsearch_drug_names- Search drug names with manufacturer and name type filterssearch_rxcuis- Search RxCUI codes with term type filteringsearch_drug_classes- Search pharmacologic drug classessearch_application_numbers- Search FDA application numberssearch_uniis- Search UNII codes with advanced filters
get_drug_details- Complete drug information by SET IDget_drug_history- Version history for drugsget_drug_ndcs- NDC codes for specific drugsget_drug_packaging- Packaging informationget_drug_media- Media links (images, documents)
get_all_*- Paginated access to drug names, classes, NDCs, RxCUIs, UNIIs, application numbersget_dailymed_context- Database information and capabilities
search_by_rxnorm_mapping- Search RxNorm mappings by drug nameget_*_mappings_for_setid- Get mappings for specific drugssearch_drugs_by_pharmacologic_class- Find drugs by pharmacologic class
{
"query": "aspirin",
"page": 1,
"pageSize": 25
}{
"manufacturer": "Pfizer",
"boxed_warning": true,
"published_date": "2023-01-01",
"published_date_comparison": "gte",
"page": 1,
"pageSize": 50
}Available filters: application_number, boxed_warning, dea_schedule_code, drug_name, name_type, labeler, manufacturer, ndc, rxcui, unii_code, published_date, and more.
All search and list tools support pagination with consistent response format:
{
"data": [...],
"pagination": {
"page": 1,
"pageSize": 25,
"totalResults": 150,
"totalPages": 6,
"hasNextPage": true,
"hasPreviousPage": false
}
}{
"mcpServers": {
"dailymed": {
"command": "node",
"args": ["/path/to/dailymed-mcp-server/dist/index.js"],
"cwd": "/path/to/dailymed-mcp-server"
}
}
}- Base URL: https://dailymed.nlm.nih.gov/dailymed/services/v2
- Format: JSON
- Authentication: None required
- Compliance: Fully compliant with DailyMed API v2 specifications
npm run build # Build TypeScript
npm run dev # Development modeProject Structure:
src/
├── clients/ # Modular API clients
├── types/ # TypeScript type definitions
├── utils/ # Utilities and helpers
├── index.ts # MCP server implementation
└── tools.ts # Tool definitions
MIT License