Labsco
zesty-genius128 logo

Enhanced Medication Information MCP Server

from zesty-genius128

Provides real-time access to FDA drug data, including shortages, labeling, and recalls, via the openFDA API.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedAccount requiredAdvanced setup

Certus

A production-ready Model Context Protocol (MCP) server for real-time, authoritative medical and medication information. Certus integrates with Claude Desktop and provides live access to FDA drug data, including shortages, recalls, and labeling, via openFDA APIs.


Project Versions

This project supports both Python and JavaScript implementations of the MCP servers. You can use either version depending on your environment and preferences.

  • Python version: in PY_version/ (feature-complete)
  • JavaScript version: in JS_version/ (Node.js, feature parity for enhanced medication info)

Features (Both Versions)

  • Comprehensive Drug Profiles: FDA labeling, shortage status, manufacturer, and more
  • Real-Time Shortage Search: Live shortage data from openFDA (1,900+ records)
  • Recall Information: Current and historical drug recalls from FDA enforcement database
  • Label-Only Lookup: Retrieve only FDA-approved drug labeling
  • Shortage Search Guidance: Tips and strategies for finding shortage data
  • Market Trend Analysis: Analyze shortage patterns and risk for a drug
  • Batch Analysis: Assess shortages, recalls, and risk for up to 25 drugs at once

Project Structure

med_info_mcp_project/
โ”œโ”€โ”€ JS_version/                # JavaScript/Node.js implementation
โ”‚   โ”œโ”€โ”€ enhanced-mcp-server.js
โ”‚   โ”œโ”€โ”€ openfda-client.js
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ”œโ”€โ”€ test-client.js
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ PY_version/                # Python implementation
โ”‚   โ”œโ”€โ”€ enhanced_mcp_server.py
โ”‚   โ”œโ”€โ”€ drug_server.py
โ”‚   โ”œโ”€โ”€ drug_features.py
โ”‚   โ”œโ”€โ”€ ...
โ”œโ”€โ”€ data/                      # Data files (e.g., images for testing)
โ”œโ”€โ”€ requirements.txt           # Python dependencies
โ”œโ”€โ”€ README.md                  # This file
โ””โ”€โ”€ ...

API Endpoints & Tools

All endpoints are exposed as MCP tools and callable via Claude Desktop or programmatically. Below is a summary of each endpoint for both Python and JavaScript versions:

Enhanced Medication Info MCP Server

Tool NameDescriptionParametersSample Request/Response
get_medication_profileFull drug profile (label + shortage)drug_identifier (str, required), identifier_type (str, default: openfda.generic_name){ "drug_identifier_requested": "lisinopril", ... }
search_drug_shortagesSearch for drug shortagessearch_term (str, required), limit (int, default: 10){ "search_term": "amoxicillin", "shortage_data": {...} }
search_drug_recallsSearch for drug recallssearch_term (str, required), limit (int, default: 10){ "search_term": "acetaminophen", "recall_data": {...} }
get_drug_label_onlyFDA label info onlydrug_identifier (str, required), identifier_type (str, default: openfda.generic_name){ "drug_identifier": "lisinopril", "label_data": {...} }
get_shortage_search_guidanceGuidance for finding shortage infodrug_name (str, required){ "drug_name": "clindamycin", "additional_search_strategies": {...} }
analyze_drug_market_trendsAnalyze shortage/market trendsdrug_name (str, required), months_back (int, default: 12){ "drug_analyzed": "amoxicillin", "trend_data": {...} }
batch_drug_analysisBatch analysis for multiple drugsdrug_list (list of str, max 25), include_trends (bool, default: False){ "batch_analysis": {...} }

Drug Features MCP Server (Python only)

Tool NameDescriptionParametersSample Response
check_drug_interactionsCheck for potential drug interactionsdrug1 (str, required), drug2 (str, required), additional_drugs (list, optional){ "interaction_analysis": {...} }
convert_drug_namesConvert between generic and brand namesdrug_name (str, required), conversion_type (str: "generic", "brand", "both", default: "both"){ "name_conversion": {...} }
get_adverse_eventsGet FDA adverse event reports (FAERS)drug_name (str, required), time_period (str, default "1year"), severity_filter (str, default "all"){ "adverse_event_analysis": {...} }

Data Sources & API Documentation


Dependencies

  • Python: See requirements.txt
  • JavaScript: See JS_version/package.json