Skip to main content
Glama
cyanheads

clinicaltrialsgov-mcp-server

by cyanheads

npm Docker Version Framework

MCP SDK License TypeScript

公共托管服务器: https://clinicaltrials.caseyjhand.com/mcp


概述

用于搜索、发现、分析和匹配临床试验的七个工具:

工具名称

描述

clinicaltrials_search_studies

使用全文查询、过滤器、分页、排序和字段选择来搜索研究。

clinicaltrials_get_study_record

通过 NCT ID 获取单项研究。返回完整记录:方案、资格、结果、分组、干预措施、联系人和地点。

clinicaltrials_get_study_count

获取查询的研究总数,无需获取数据。快速统计和细分。

clinicaltrials_get_field_values

发现 API 字段(状态、阶段、研究类型等)的有效值,并提供每个值的计数。

clinicaltrials_get_field_definitions

浏览研究数据模型字段树 — 片段名称、类型、嵌套。支持子树导航和关键字搜索。

clinicaltrials_get_study_results

从已完成的研究中提取结果、不良事件、参与者流程和基线。可选的摘要模式可将约 200KB 的有效载荷减少至约 5KB。

clinicaltrials_find_eligible

将患者人口统计学信息和疾病状况与符合条件的招募试验进行匹配。提供年龄、性别、疾病状况和地点,以查找具有匹配资格标准、联系人和招募地点的研究。

资源

描述

clinicaltrials://{nctId}

通过 NCT ID 获取单项临床研究。完整 JSON。

提示词

描述

analyze_trial_landscape

使用计数 + 搜索工具进行数据驱动的试验全景分析的自适应工作流。

Related MCP server: ClinicalTrials.gov MCP Server

工具

clinicaltrials_search_studies

具有完整 ClinicalTrials.gov 查询功能的主要搜索工具。

  • 全文和特定字段查询(疾病状况、干预措施、申办方、地点、标题、结果)

  • 具有类型化枚举值的状态和阶段过滤器

  • 按坐标和距离进行的地理邻近度过滤

  • 支持复杂查询的高级 AREA[] Essie 表达式

  • 字段选择以减小有效载荷大小(完整记录每条约 70KB)

  • 使用游标令牌进行分页,按任意字段排序


clinicaltrials_get_study_results

获取已完成研究的已发布结果数据。

  • 包含统计数据、不良事件、参与者流程、基线特征的结果指标

  • 节级过滤(仅请求您需要的数据)

  • 可选的摘要模式将完整结果(约 200KB)压缩为基本元数据(每项研究约 5KB)

  • 每次调用可批量处理多个 NCT ID,并提供部分成功报告

  • 对无结果的研究和获取错误进行单独跟踪


clinicaltrials_find_eligible

将患者资料与符合条件的招募试验进行匹配。

  • 将年龄、性别、疾病状况和地点作为患者人口统计学信息

  • 使用人口统计学过滤器(年龄范围、性别、健康志愿者)构建优化的 API 查询

  • 返回包含资格和地点字段的研究,供调用者评估

  • 当没有匹配的研究时提供可操作的提示(扩大疾病状况范围、调整过滤器)

特性

基于 @cyanheads/mcp-ts-core 构建:

  • 具有 Zod 模式和格式化函数的声明式工具/资源/提示词定义

  • 统一的错误处理 — 处理程序抛出异常,框架捕获并分类

  • 双重传输:来自同一代码库的 stdio 和 Streamable HTTP

  • 用于 HTTP 传输的可插拔身份验证(nonejwtoauth

  • 具有可选 OpenTelemetry 追踪功能的结构化日志记录

ClinicalTrials.gov 特定功能:

  • 针对 ClinicalTrials.gov REST API v2 的类型安全客户端

  • 公共 API — 无需身份验证或 API 密钥

  • 指数退避重试(3 次尝试)和速率限制(约 1 次请求/秒)

  • HTML 错误检测和结构化错误工厂

入门指南

公共托管实例

公共实例位于 https://clinicaltrials.caseyjhand.com/mcp — 无需安装。通过 Streamable HTTP 将任何 MCP 客户端指向它:

{
  "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)

安装

  1. 克隆仓库:

    git clone https://github.com/cyanheads/clinicaltrialsgov-mcp-server.git
  2. 进入目录:

    cd clinicaltrialsgov-mcp-server
  3. 安装依赖:

    bun install

配置

所有配置均为可选 — 服务器使用默认值且无需 API 密钥。

变量

描述

默认值

CT_API_BASE_URL

ClinicalTrials.gov API 基础 URL。

https://clinicaltrials.gov/api/v2

CT_REQUEST_TIMEOUT_MS

每次请求的超时时间(毫秒)。

30000

CT_MAX_PAGE_SIZE

最大页面大小上限。

200

MCP_TRANSPORT_TYPE

传输方式:stdiohttp

stdio

MCP_HTTP_PORT

HTTP 服务器端口。

3010

MCP_AUTH_MODE

身份验证模式:nonejwtoauth

none

MCP_LOG_LEVEL

日志级别 (RFC 5424)。

info

LOGS_DIR

日志文件目录(仅限 Node.js)。

<project-root>/logs

OTEL_ENABLED

启用 OpenTelemetry 追踪。

false

运行服务器

本地开发

  • 构建并运行生产版本:

    bun run build
    bun run start:http   # or start:stdio
  • 在开发模式下运行(带监视):

    bun run dev:http     # or dev:stdio
  • 运行检查和测试:

    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

项目结构

目录

用途

src/mcp-server/tools/

工具定义 (*.tool.ts)。

src/mcp-server/resources/

资源定义 (*.resource.ts)。

src/mcp-server/prompts/

提示词定义 (*.prompt.ts)。

src/services/clinical-trials/

ClinicalTrials.gov API 客户端和类型。

src/config/

使用 Zod 进行环境变量解析和验证。

tests/

单元测试和集成测试。

开发指南

请参阅 CLAUDE.md 获取开发准则和架构规则。简而言之:

  • 处理程序抛出异常,框架捕获 — 工具逻辑中不使用 try/catch

  • 使用 ctx.log 进行请求范围的日志记录,不使用 console 调用

  • index.ts 桶文件中注册新工具和资源

贡献

欢迎提交问题和拉取请求。提交前请运行检查:

bun run devcheck
bun run test

许可证

Apache-2.0 — 详情请参阅 LICENSE

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
1hResponse time
3dRelease cycle
30Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Provides LLMs with structured access to critical biomedical databases including PubTator3 (PubMed/PMC), ClinicalTrials.gov, and MyVariant.info through the Model Context Protocol.
    35
    600
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search and access clinical trial data from ClinicalTrials.gov, including searching trials by keywords, retrieving detailed trial metadata by NCT ID, and managing trial data in CSV format for research and analysis.
    16
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to search and analyze clinical trial data from ClinicalTrials.gov using both structured SQL queries for filtering trials by status, phase, and conditions, and semantic vector search for exploring detailed protocol information like exclusion criteria.

View all related MCP servers

Related MCP Connectors

  • ClinicalTrials MCP — wraps ClinicalTrials.gov API v2 (free, no auth)

  • Real-time Amazon, WIPO & PACER data for AI agents — 19 tools via the MCP protocol.

  • Search US grants + federal contracts (Grants.gov + SAM.gov) from any LLM.

View all MCP Connectors

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