Skip to main content
Glama
cyanheads

clinicaltrialsgov-mcp-server

npm Docker Version Framework

MCP SDK License TypeScript

Servidor público alojado: https://clinicaltrials.caseyjhand.com/mcp


Descripción general

Siete herramientas para buscar, descubrir, analizar y emparejar ensayos clínicos:

Nombre de la herramienta

Descripción

clinicaltrials_search_studies

Busca estudios con consultas de texto completo, filtros, paginación, ordenación y selección de campos.

clinicaltrials_get_study_record

Obtiene un estudio individual por ID NCT. Devuelve el registro completo: protocolo, elegibilidad, resultados, brazos, intervenciones, contactos y ubicaciones.

clinicaltrials_get_study_count

Obtiene el recuento total de estudios para una consulta sin recuperar datos. Estadísticas rápidas y desgloses.

clinicaltrials_get_field_values

Descubre valores válidos para campos de la API (estado, fase, tipo de estudio, etc.) con recuentos por valor.

clinicaltrials_get_field_definitions

Explora el árbol de campos del modelo de datos del estudio: nombres de piezas, tipos, anidamiento. Admite navegación por subárboles y búsqueda por palabras clave.

clinicaltrials_get_study_results

Extrae resultados, eventos adversos, flujo de participantes y datos basales de estudios completados. El modo de resumen opcional reduce cargas útiles de ~200KB a ~5KB.

clinicaltrials_find_eligible

Empareja datos demográficos y condiciones del paciente con ensayos de reclutamiento elegibles. Proporciona edad, sexo, condiciones y ubicación para encontrar estudios con criterios de elegibilidad, contactos y ubicaciones de reclutamiento coincidentes.

Recurso

Descripción

clinicaltrials://{nctId}

Obtiene un estudio clínico individual por ID NCT. JSON completo.

Prompt

Descripción

analyze_trial_landscape

Flujo de trabajo adaptable para el análisis del panorama de ensayos basado en datos utilizando herramientas de recuento + búsqueda.

Related MCP server: Healthcare MCP Server

Herramientas

clinicaltrials_search_studies

Herramienta de búsqueda principal con capacidades completas de consulta de ClinicalTrials.gov.

  • Consultas de texto completo y específicas por campo (condición, intervención, patrocinador, ubicación, título, resultado)

  • Filtros de estado y fase con valores de enumeración tipados

  • Filtrado de proximidad geográfica por coordenadas y distancia

  • Soporte avanzado de expresiones Essie AREA[] para consultas complejas

  • Selección de campos para reducir el tamaño de la carga útil (los registros completos son de ~70KB cada uno)

  • Paginación con tokens de cursor, ordenación por cualquier campo


clinicaltrials_get_study_results

Obtiene datos de resultados publicados para estudios completados.

  • Medidas de resultados con estadísticas, eventos adversos, flujo de participantes, características basales

  • Filtrado a nivel de sección (solicita solo los datos que necesitas)

  • El modo de resumen opcional condensa los resultados completos (~200KB) a metadatos esenciales (~5KB por estudio)

  • Procesamiento por lotes de múltiples IDs NCT por llamada con informes de éxito parcial

  • Seguimiento separado de estudios sin resultados y errores de recuperación

clinicaltrials_find_eligible

Empareja un perfil de paciente con ensayos de reclutamiento elegibles.

  • Toma la edad, sexo, condiciones y ubicación como datos demográficos del paciente

  • Crea consultas de API optimizadas con filtros demográficos (rango de edad, sexo, voluntarios sanos)

  • Devuelve estudios con campos de elegibilidad y ubicación para que el llamador los evalúe

  • Proporciona sugerencias prácticas cuando no hay estudios coincidentes (ampliar condiciones, ajustar filtros)

Características

Construido sobre @cyanheads/mcp-ts-core:

  • Definiciones declarativas de herramientas/recursos/prompts con esquemas Zod y funciones de formato

  • Manejo de errores unificado: los controladores lanzan, el framework captura y clasifica

  • Transporte dual: stdio y HTTP transmitible desde la misma base de código

  • Autenticación conectable (none, jwt, oauth) para transporte HTTP

  • Registro estructurado con rastreo opcional de OpenTelemetry

Específico de ClinicalTrials.gov:

  • Cliente con seguridad de tipos para la API REST v2 de ClinicalTrials.gov

  • API pública: no se requieren autenticación ni claves de API

  • Reintento con retroceso exponencial (3 intentos) y limitación de tasa (~1 req/seg)

  • Detección de errores HTML y fábricas de errores estructuradas

Primeros pasos

Instancia pública alojada

Hay una instancia pública disponible en https://clinicaltrials.caseyjhand.com/mcp: no requiere instalación. Apunta cualquier cliente MCP a ella mediante HTTP transmitible:

{
  "mcpServers": {
    "clinicaltrialsgov-mcp-server": {
      "type": "streamable-http",
      "url": "https://clinicaltrials.caseyjhand.com/mcp"
    }
  }
}

Autoalojado / Local

Agrégalo a la configuración de tu cliente MCP (por ejemplo, claude_desktop_config.json):

{
  "mcpServers": {
    "clinicaltrialsgov-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["clinicaltrialsgov-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio"
      }
    }
  }
}

O para HTTP transmitible:

MCP_TRANSPORT_TYPE=http
MCP_HTTP_PORT=3010

Requisitos previos

Instalación

  1. Clona el repositorio:

    git clone https://github.com/cyanheads/clinicaltrialsgov-mcp-server.git
  2. Navega al directorio:

    cd clinicaltrialsgov-mcp-server
  3. Instala las dependencias:

    bun install

Configuración

Toda la configuración es opcional: el servidor funciona con valores predeterminados y sin claves de API.

Variable

Descripción

Predeterminado

CT_API_BASE_URL

URL base de la API de ClinicalTrials.gov.

https://clinicaltrials.gov/api/v2

CT_REQUEST_TIMEOUT_MS

Tiempo de espera por solicitud en milisegundos.

30000

CT_MAX_PAGE_SIZE

Límite máximo de tamaño de página.

200

MCP_TRANSPORT_TYPE

Transporte: stdio o http.

stdio

MCP_HTTP_PORT

Puerto para el servidor HTTP.

3010

MCP_AUTH_MODE

Modo de autenticación: none, jwt o oauth.

none

MCP_LOG_LEVEL

Nivel de registro (RFC 5424).

info

LOGS_DIR

Directorio para archivos de registro (solo Node.js).

<project-root>/logs

OTEL_ENABLED

Habilitar rastreo de OpenTelemetry.

false

Ejecución del servidor

Desarrollo local

  • Compila y ejecuta la versión de producción:

    bun run build
    bun run start:http   # or start:stdio
  • Ejecuta en modo de desarrollo (con watch):

    bun run dev:http     # or dev:stdio
  • Ejecuta comprobaciones y pruebas:

    bun run devcheck     # Lints, formats, type-checks
    bun run test         # Runs test suite

Docker

docker build -t clinicaltrialsgov-mcp-server .
docker run -p 3010:3010 clinicaltrialsgov-mcp-server

Estructura del proyecto

Directorio

Propósito

src/mcp-server/tools/

Definiciones de herramientas (*.tool.ts).

src/mcp-server/resources/

Definiciones de recursos (*.resource.ts).

src/mcp-server/prompts/

Definiciones de prompts (*.prompt.ts).

src/services/clinical-trials/

Cliente y tipos de la API de ClinicalTrials.gov.

src/config/

Análisis y validación de variables de entorno con Zod.

tests/

Pruebas unitarias y de integración.

Guía de desarrollo

Consulta CLAUDE.md para conocer las pautas de desarrollo y las reglas arquitectónicas. La versión corta:

  • Los controladores lanzan, el framework captura: no uses try/catch en la lógica de la herramienta

  • Usa ctx.log para el registro con alcance de solicitud, no llamadas a console

  • Registra nuevas herramientas y recursos en los archivos barril index.ts

Contribución

Las incidencias y las solicitudes de extracción (pull requests) son bienvenidas. Ejecuta las comprobaciones antes de enviar:

bun run devcheck
bun run test

Licencia

Apache-2.0: consulta LICENSE para obtener más detalles.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/clinicaltrialsgov-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server