ClinicalTrials MCP Server
Busca y accede a datos de ensayos clínicos de ClinicalTrials.gov.
Documentación
Servidor MCP de ClinicalTrials
🔍 Permite que los asistentes de IA busquen y accedan a datos de ClinicalTrials.gov a través de una interfaz MCP sencilla.
El Servidor MCP de ClinicalTrials proporciona un puente entre los asistentes de IA y el repositorio de ensayos clínicos de ClinicalTrials.gov mediante el Protocolo de Contexto de Modelo (MCP). Permite que los modelos de IA busquen ensayos clínicos y accedan a su contenido de forma programática.
🤝 Contribuir • 📝 Reportar un problema
✨ Características principales
- 🔎 Búsqueda de ensayos: Consulta ensayos clínicos con cadenas de búsqueda personalizadas o parámetros de búsqueda avanzados ✅
- 🚀 Recuperación eficiente: Acceso rápido a los metadatos de los ensayos ✅
- 📊 Acceso a metadatos: Recupera metadatos detallados de ensayos específicos mediante el ID de NCT ✅
- 📊 Soporte de investigación: Facilita la investigación y el análisis en ciencias de la salud ✅
- 📋 Gestión de CSV: Guarda, carga y lista archivos CSV con datos de ensayos ✅
- 🗃️ Almacenamiento local: Los ensayos se guardan localmente para un acceso más rápido ✅
- 📊 Estadísticas: Obtén estadísticas sobre ensayos clínicos ✅
🚀 Inicio rápido
Instalación mediante Smithery
Para instalar el Servidor de ClinicalTrials para Claude Desktop automáticamente mediante Smithery:
Claude
npx -y @smithery/cli@latest install ClinicalTrials-mcp-server --client claude --config "{}"
Cursor
Pega lo siguiente en Configuración → Configuración de Cursor → MCP → Añadir nuevo servidor:
- Mac/Linux
npx -y @smithery/cli@latest run ClinicalTrials-mcp-server --client cursor --config "{}"
Windsurf
npx -y @smithery/cli@latest install ClinicalTrials-mcp-server --client windsurf --config "{}"
CLine
npx -y @smithery/cli@latest install ClinicalTrials-mcp-server --client cline --config "{}"
Instalación manual
Instala usando uv:
uv tool install ClinicalTrials-mcp-server
Para desarrollo:
# Clone and set up development environment
git clone https://github.com/JackKuo666/ClinicalTrials-MCP-Server.git
cd ClinicalTrials-MCP-Server
# Create and activate virtual environment
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
📊 Uso
Inicia el servidor MCP:
python clinical_trials_server.py
Una vez que el servidor esté en ejecución, puedes usar las herramientas MCP proporcionadas en tu asistente de IA o aplicación. Aquí tienes algunos ejemplos de cómo usar las herramientas:
Ejemplo 1: Buscar ensayos clínicos usando una expresión de búsqueda y guardarlos en CSV
result = await mcp.use_tool("search_clinical_trials_and_save_studies_to_csv", {
"search_expr": "COVID-19 vaccine efficacy",
"max_studies": 5
})
print(result)
Ejemplo 2: Obtener estudios por palabra clave
result = await mcp.use_tool("get_studies_by_keyword", {
"keyword": "diabetes",
"max_studies": 10
})
print(result)
Ejemplo 3: Obtener detalles completos de un estudio para un ensayo específico
result = await mcp.use_tool("get_full_study_details", {
"nct_id": "NCT04280705"
})
print(result)
Ejemplo 4: Buscar y guardar estudios con campos personalizados
result = await mcp.use_tool("search_clinical_trials_and_save_studies_to_csv", {
"search_expr": "alzheimer",
"max_studies": 20,
"filename": "alzheimer_studies.csv",
"fields": ["NCT Number", "Study Title", "Brief Summary", "Conditions"]
})
print(result)
Estos ejemplos demuestran cómo usar las herramientas principales proporcionadas por el Servidor MCP de ClinicalTrials. Ajusta los parámetros según sea necesario para tu caso de uso específico.
🛠 Herramientas MCP
El Servidor MCP de ClinicalTrials proporciona las siguientes herramientas:
search_clinical_trials_and_save_studies_to_csv
Busca ensayos clínicos usando una expresión de búsqueda y guarda los resultados en un archivo CSV.
Parámetros:
search_expr(str): Expresión de búsqueda (p. ej., "Coronavirus+COVID")max_studies(int, opcional): Número máximo de estudios a devolver (predeterminado: 10)save_csv(bool, opcional): Si se deben guardar los resultados como archivo CSV (predeterminado: True)filename(str, opcional): Nombre del archivo CSV a guardar (predeterminado: corona_fields.csv)fields(lista, opcional): Lista de campos a incluir (predeterminado: Número de NCT, Condiciones, Título del estudio, Resumen breve)
Devuelve: Representación en cadena de los resultados de búsqueda
get_full_study_details
Obtén información detallada sobre un ensayo clínico específico.
Parámetros:
nct_id(str): El ID de NCT del ensayo clínico
Devuelve: Representación en cadena de los detalles del estudio
get_studies_by_keyword
Obtén estudios relacionados con una palabra clave específica.
Parámetros:
keyword(str): Palabra clave para buscarmax_studies(int, opcional): Número máximo de estudios a devolver (predeterminado: 20)save_csv(bool, opcional): Si se deben guardar los resultados como archivo CSV (predeterminado: True)filename(str, opcional): Nombre del archivo CSV a guardar (predeterminado: keyword_results_{keyword}.csv)
Devuelve: Representación en cadena de los estudios
get_study_statistics
Obtén estadísticas sobre ensayos clínicos.
Parámetros:
condition(str, opcional): Condición opcional para filtrar
Devuelve: Representación en cadena de las estadísticas
get_full_studies_and_save
Obtén datos completos de estudios y guárdalos en CSV.
Parámetros:
search_expr(str): Expresión de búsqueda (p. ej., "Coronavirus+COVID")max_studies(int, opcional): Número máximo de estudios a devolver (predeterminado: 20)filename(str, opcional): Nombre del archivo CSV a guardar (predeterminado: full_studies.csv)
Devuelve: Mensaje que indica que los resultados se guardaron
load_csv_data
Carga y muestra datos de un archivo CSV.
Parámetros:
filename(str): Nombre del archivo CSV a cargar
Devuelve: Representación en cadena de los datos CSV
list_saved_csv_files
Lista todos los archivos CSV disponibles en el directorio actual.
Devuelve: Representación en cadena de los archivos CSV disponibles
🔍 Recursos MCP
El Servidor MCP de ClinicalTrials también proporciona los siguientes recursos:
clinicaltrials://corona_fields
Obtén los datos de campos de corona como recurso.
clinicaltrials://full_studies
Obtén los datos completos de estudios como recurso.
clinicaltrials://csv/{filename}
Obtén datos de un archivo CSV específico.
Parámetros:
filename(str): Nombre del archivo CSV
clinicaltrials://available_files
Obtén una lista de todos los archivos CSV disponibles.
clinicaltrials://study/{nct_id}
Obtén un estudio específico por ID de NCT.
Parámetros:
nct_id(str): El ID de NCT del ensayo clínico
clinicaltrials://condition/{condition}
Obtén estudios relacionados con una condición específica.
Parámetros:
condition(str): La condición a buscar
Uso con Claude Desktop
Añade esta configuración a tu claude_desktop_config.json:
(Mac OS)
{
"mcpServers": {
"ClinicalTrials": {
"command": "python",
"args": ["-m", "ClinicalTrials-mcp-server"]
}
}
}
(Versión de Windows):
{
"mcpServers": {
"ClinicalTrials": {
"command": "C:\\Users\\YOUR_USERNAME\\AppData\\Local\\Programs\\Python\\Python311\\python.exe",
"args": [
"-m",
"ClinicalTrials-mcp-server"
]
}
}
}
Uso con Cline
{
"mcpServers": {
"ClinicalTrials": {
"command": "bash",
"args": [
"-c",
"source /home/YOUR/PATH/ClinicalTrials-MCP-Server/.venv/bin/activate && python /home/YOUR/PATH/ClinicalTrials-MCP-Server/clinical_trials_server.py"
],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
Después de reiniciar Claude Desktop, las siguientes capacidades estarán disponibles:
Búsqueda de ensayos clínicos
Puedes pedirle a Claude que busque ensayos clínicos usando consultas como:
Can you search for recent clinical trials about diabetes?
La búsqueda devolverá información básica sobre los ensayos coincidentes, incluyendo:
• Título del ensayo
• Número de NCT
• Condiciones
• Resumen breve
Obtención de detalles del ensayo
Una vez que tengas un ID de NCT, puedes solicitar más detalles:
Can you show me the details for trial NCT04280705?
Esto devolverá:
• Título completo del ensayo
• Condiciones
• Resumen breve
• Otros detalles disponibles
📁 Estructura del proyecto
clinical_trials_server.py: La implementación principal del servidor MCP usando FastMCPclinical_trials.py: Contiene funciones auxiliares para interactuar con la API de ClinicalTrials.gov
🔧 Dependencias
- Python 3.10+
- FastMCP
- pytrials
- pandas
Puedes instalar las dependencias requeridas usando:
pip install FastMCP pytrials pandas
🤝 Contribuciones
¡Las contribuciones son bienvenidas! No dudes en enviar una Solicitud de Extracción (Pull Request).
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT.
⚠️ Aviso legal
Esta herramienta es solo para fines de investigación. Respeta los términos de servicio de ClinicalTrials.gov y usa esta herramienta de manera responsable.