ClinicalTrials MCP Server

Busca y accede a datos de ensayos clínicos de ClinicalTrials.gov.

Documentación

Servidor MCP de ClinicalTrials

smithery badge

🔍 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 buscar
  • max_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 FastMCP
  • clinical_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.