Enhanced Medication Information MCP Server

Proporciona acceso en tiempo real a datos de medicamentos de la FDA, incluyendo desabastecimientos, etiquetado y retiros del mercado, a través de la API de openFDA.

Documentación

Certus

Un servidor de Model Context Protocol (MCP) listo para producción, diseñado para proporcionar información médica y de medicamentos autoritativa y en tiempo real. Certus se integra con Claude Desktop y ofrece acceso en vivo a datos de medicamentos de la FDA, incluyendo escaseces, retiros del mercado y etiquetado, a través de las APIs de openFDA.


Versiones del Proyecto

Este proyecto admite implementaciones tanto en Python como en JavaScript de los servidores MCP. Puede usar cualquiera de las dos versiones según su entorno y preferencias.

  • Versión Python: en PY_version/ (completa en funciones)
  • Versión JavaScript: en JS_version/ (Node.js, paridad de funciones para información mejorada de medicamentos)

Inicio Rápido

1. Clonar el Repositorio

# Clone and enter the project directory
$ git clone <your_repository_url>
$ cd med_info_mcp_project

Configuración de la Versión Python (PY_version/)

Instalación

cd PY_version
pip install -r ../requirements.txt
touch __init__.py

Configuración del Entorno (Opcional)

Cree un archivo .env para su clave de API de OpenFDA (opcional, mejora los límites de velocidad):

OPENFDA_API_KEY=your_api_key_here

Obtenga una clave API gratuita en: https://open.fda.gov/apis/authentication/

Pruebas

Probar el cliente RxNorm:

python3 drug_features.py

Probar el cliente OpenFDA:

python3 openfda_client.py

Integración con Claude Desktop (Python)

Edite su archivo de configuración de Claude Desktop:

{
  "mcpServers": {
    "enhanced-medication-info": {
      "command": "python3",
      "args": ["/full/path/to/PY_version/enhanced_mcp_server.py"]
    },
    "drug-features": {
      "command": "python3",
      "args": ["/full/path/to/PY_version/drug_server.py"]
    }
  }
}

Configuración de la Versión JavaScript (JS_version/)

Requisitos Previos

  • Node.js v18 o superior

Instalación

cd JS_version
npm install

Configuración del Entorno (Opcional)

Establezca su clave de API de OpenFDA (opcional, mejora los límites de velocidad):

export OPENFDA_API_KEY="your_api_key_here"

Obtenga una clave API gratuita en: https://open.fda.gov/apis/authentication/

Pruebas

Ejecute el cliente de prueba:

npm test
# or
node test-client.js

Integración con Claude Desktop (JavaScript)

Edite su archivo de configuración de Claude Desktop:

{
  "mcpServers": {
    "enhanced-medication-info": {
      "command": "node",
      "args": ["/full/path/to/JS_version/enhanced-mcp-server.js"],
      "env": {
        "OPENFDA_API_KEY": "your_openfda_api_key_here"
      }
    }
  }
}

Funciones (Ambas Versiones)

  • Perfiles completos de medicamentos: etiquetado de la FDA, estado de escasez, fabricante y más
  • Búsqueda de escasez en tiempo real: datos de escasez en vivo de openFDA (más de 1,900 registros)
  • Información de retiros del mercado: retiros de medicamentos actuales e históricos de la base de datos de cumplimiento de la FDA
  • Consulta solo de etiquetado: recupere únicamente el etiquetado de medicamentos aprobado por la FDA
  • Guía de búsqueda de escasez: consejos y estrategias para encontrar datos de escasez
  • Análisis de tendencias del mercado: analice patrones de escasez y riesgo de un medicamento
  • Análisis por lotes: evalúe escaseces, retiros y riesgo de hasta 25 medicamentos a la vez

Estructura del Proyecto

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
└── ...

Endpoints y Herramientas de la API

Todos los endpoints se exponen como herramientas MCP y se pueden invocar a través de Claude Desktop o mediante programación. A continuación se presenta un resumen de cada endpoint para las versiones de Python y JavaScript:

Enhanced Medication Info MCP Server

Nombre de la HerramientaDescripciónParámetrosSolicitud/Respuesta de Ejemplo
get_medication_profilePerfil completo del medicamento (etiqueta + escasez)drug_identifier (str, obligatorio), identifier_type (str, predeterminado: openfda.generic_name){ "drug_identifier_requested": "lisinopril", ... }
search_drug_shortagesBuscar escaseces de medicamentossearch_term (str, obligatorio), limit (int, predeterminado: 10){ "search_term": "amoxicillin", "shortage_data": {...} }
search_drug_recallsBuscar retiros de medicamentossearch_term (str, obligatorio), limit (int, predeterminado: 10){ "search_term": "acetaminophen", "recall_data": {...} }
get_drug_label_onlySolo información de etiquetado de la FDAdrug_identifier (str, obligatorio), identifier_type (str, predeterminado: openfda.generic_name){ "drug_identifier": "lisinopril", "label_data": {...} }
get_shortage_search_guidanceOrientación para encontrar información de escasezdrug_name (str, obligatorio){ "drug_name": "clindamycin", "additional_search_strategies": {...} }
analyze_drug_market_trendsAnalizar escasez/tendencias del mercadodrug_name (str, obligatorio), months_back (int, predeterminado: 12){ "drug_analyzed": "amoxicillin", "trend_data": {...} }
batch_drug_analysisAnálisis por lotes para múltiples medicamentosdrug_list (lista de str, máx. 25), include_trends (bool, predeterminado: False){ "batch_analysis": {...} }

Drug Features MCP Server (solo Python)

Nombre de la HerramientaDescripciónParámetrosRespuesta de Ejemplo
check_drug_interactionsVerificar posibles interacciones farmacológicasdrug1 (str, obligatorio), drug2 (str, obligatorio), additional_drugs (lista, opcional){ "interaction_analysis": {...} }
convert_drug_namesConvertir entre nombres genéricos y de marcadrug_name (str, obligatorio), conversion_type (str: "generic", "brand", "both", predeterminado: "both"){ "name_conversion": {...} }
get_adverse_eventsObtener informes de eventos adversos de la FDA (FAERS)drug_name (str, obligatorio), time_period (str, predeterminado "1year"), severity_filter (str, predeterminado "all"){ "adverse_event_analysis": {...} }

Fuentes de Datos y Documentación de la API


Solución de Problemas y Preguntas Frecuentes

  • ¿MCP no funciona en Claude Desktop?
    1. Verifique dos veces las rutas y comandos de su archivo de configuración
    2. Asegúrese de que las dependencias estén instaladas (pip install -r requirements.txt o npm install)
    3. Reinicie Claude Desktop
  • ¿Problemas con la clave API? Agregue su clave a .env (Python) o como variable de entorno (JS) para obtener límites de velocidad más altos
  • ¿Versión incorrecta de Claude? Use Claude Desktop, no la web de claude.ai
  • ¿Permisos? Asegúrese de que los archivos del servidor sean ejecutables

Dependencias

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

Licencia

Este proyecto proporciona acceso a datos públicos de la FDA a través de las APIs de openFDA. Siempre consulte a profesionales de la salud para tomar decisiones médicas.


Contribuciones

¡Las contribuciones son bienvenidas! Abra issues o pull requests para mejoras o correcciones de errores.