clinicaltrialsgov-mcp-server
Публичный хостинг сервера: https://clinicaltrials.caseyjhand.com/mcp
Обзор
Семь инструментов для поиска, обнаружения, анализа и подбора клинических исследований:
Название инструмента | Описание |
| Поиск исследований с помощью полнотекстовых запросов, фильтров, пагинации, сортировки и выбора полей. |
| Получение одного исследования по NCT ID. Возвращает полную запись: протокол, критерии включения, исходы, группы, вмешательства, контакты и локации. |
| Получение общего количества исследований по запросу без загрузки данных. Быстрая статистика и разбивка. |
| Поиск допустимых значений для полей API (статус, фаза, тип исследования и т.д.) с подсчетом для каждого значения. |
| Просмотр дерева полей модели данных исследования — названия, типы, вложенность. Поддерживает навигацию по поддеревьям и поиск по ключевым словам. |
| Извлечение исходов, нежелательных явлений, потока участников и исходных данных из завершенных исследований. Опциональный режим сводки сокращает полезную нагрузку с ~200 КБ до ~5 КБ. |
| Подбор подходящих рекрутинговых исследований на основе демографических данных пациента и его состояния. Укажите возраст, пол, заболевания и местоположение, чтобы найти исследования с соответствующими критериями включения, контактами и локациями. |
Ресурс | Описание |
| Получение одного клинического исследования по NCT ID. Полный JSON. |
Промпт | Описание |
| Адаптивный рабочий процесс для анализа ландшафта исследований на основе данных с использованием инструментов подсчета и поиска. |
Related MCP server: Healthcare MCP Server
Инструменты
clinicaltrials_search_studies
Основной инструмент поиска с полными возможностями запросов ClinicalTrials.gov.
Полнотекстовые и специфические для полей запросы (заболевание, вмешательство, спонсор, локация, название, исход)
Фильтры по статусу и фазе с типизированными значениями перечислений
Географическая фильтрация по координатам и расстоянию
Расширенная поддержка выражений AREA[] Essie для сложных запросов
Выбор полей для уменьшения размера полезной нагрузки (полные записи весят ~70 КБ каждая)
Пагинация с токенами курсора, сортировка по любому полю
clinicaltrials_get_study_results
Получение опубликованных результатов для завершенных исследований.
Показатели исходов со статистикой, нежелательными явлениями, потоком участников, исходными характеристиками
Фильтрация на уровне разделов (запрашивайте только нужные данные)
Опциональный режим сводки сжимает полные результаты (~200 КБ) до основных метаданных (~5 КБ на исследование)
Пакетная обработка нескольких NCT ID за один вызов с отчетом о частичном успехе
Отдельное отслеживание исследований без результатов и ошибок получения
clinicaltrials_find_eligible
Подбор подходящих рекрутинговых исследований для профиля пациента.
Принимает возраст, пол, заболевания и местоположение в качестве демографических данных пациента
Формирует оптимизированные API-запросы с демографическими фильтрами (возрастной диапазон, пол, здоровые добровольцы)
Возвращает исследования с полями критериев включения и локаций для оценки вызывающей стороной
Предоставляет полезные подсказки, если подходящих исследований не найдено (расширение условий, корректировка фильтров)
Функции
Построено на @cyanheads/mcp-ts-core:
Декларативные определения инструментов/ресурсов/промптов со схемами Zod и функциями форматирования
Унифицированная обработка ошибок — обработчики выбрасывают исключения, фреймворк перехватывает и классифицирует их
Двойной транспорт: stdio и Streamable HTTP из одной кодовой базы
Подключаемая аутентификация (
none,jwt,oauth) для HTTP-транспортаСтруктурированное логирование с опциональной трассировкой OpenTelemetry
Специфично для ClinicalTrials.gov:
Типизированный клиент для ClinicalTrials.gov REST API v2
Публичный API — аутентификация или ключи API не требуются
Повторные попытки с экспоненциальной задержкой (3 попытки) и ограничением частоты запросов (~1 запрос/сек)
Обнаружение HTML-ошибок и фабрики структурированных ошибок
Начало работы
Публичный хостинг
Публичный экземпляр доступен по адресу https://clinicaltrials.caseyjhand.com/mcp — установка не требуется. Укажите его в любом MCP-клиенте через Streamable HTTP:
{
"mcpServers": {
"clinicaltrialsgov-mcp-server": {
"type": "streamable-http",
"url": "https://clinicaltrials.caseyjhand.com/mcp"
}
}
}Самостоятельный хостинг / Локально
Добавьте в конфигурацию вашего MCP-клиента (например, claude_desktop_config.json):
{
"mcpServers": {
"clinicaltrialsgov-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["clinicaltrialsgov-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio"
}
}
}
}Или для Streamable HTTP:
MCP_TRANSPORT_TYPE=http
MCP_HTTP_PORT=3010Предварительные требования
Bun v1.2.0 или выше (или Node.js >= 22.0.0)
Установка
Клонируйте репозиторий:
git clone https://github.com/cyanheads/clinicaltrialsgov-mcp-server.gitПерейдите в директорию:
cd clinicaltrialsgov-mcp-serverУстановите зависимости:
bun installКонфигурация
Вся конфигурация опциональна — сервер работает с настройками по умолчанию без ключей API.
Переменная | Описание | По умолчанию |
| Базовый URL API ClinicalTrials.gov. |
|
| Тайм-аут запроса в миллисекундах. |
|
| Максимальный размер страницы. |
|
| Транспорт: |
|
| Порт для HTTP-сервера. |
|
| Режим аутентификации: |
|
| Уровень логирования (RFC 5424). |
|
| Директория для лог-файлов (только Node.js). |
|
| Включить трассировку OpenTelemetry. |
|
Запуск сервера
Локальная разработка
Сборка и запуск продакшн-версии:
bun run build
bun run start:http # or start:stdioЗапуск в режиме разработки (с watch):
bun run dev:http # or dev:stdioЗапуск проверок и тестов:
bun run devcheck # Lints, formats, type-checks
bun run test # Runs test suiteDocker
docker build -t clinicaltrialsgov-mcp-server .
docker run -p 3010:3010 clinicaltrialsgov-mcp-serverСтруктура проекта
Директория | Назначение |
| Определения инструментов ( |
| Определения ресурсов ( |
| Определения промптов ( |
| Клиент API ClinicalTrials.gov и типы. |
| Парсинг переменных окружения и валидация через Zod. |
| Модульные и интеграционные тесты. |
Руководство по разработке
См. CLAUDE.md для получения рекомендаций по разработке и архитектурных правил. Кратко:
Обработчики выбрасывают исключения, фреймворк перехватывает — никаких
try/catchв логике инструментовИспользуйте
ctx.logдля логирования в рамках запроса, никаких вызововconsoleРегистрируйте новые инструменты и ресурсы в файлах
index.ts
Вклад в проект
Ишью и пулл-реквесты приветствуются. Перед отправкой запустите проверки:
bun run devcheck
bun run testЛицензия
Apache-2.0 — подробности см. в LICENSE.
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