关于 Clinicaltrials
Clinicaltrials 是用于搜索和分析 ClinicalTrials.gov 注册数据的 MCP 服务。它帮助研究人员和 Agent 利用结构化试验记录及筛选条件,查看研究、申办方项目组合和临床阶段转移率。
主要功能
- 01按关键词和条件筛选试验
- 02按 NCT ID 获取完整研究记录
- 03按阶段和状态列出申办方试验
- 04使用相同条件比较申办方
- 05计算临床阶段转移率
适用场景
- 01查找某病症的招募中研究
- 02查看 NCT 研究的方案与结果
- 03比较申办方的试验项目组合
- 04分析基于注册数据的阶段转移率
MCP 相关
通过 Pipeworx 向 MCP 客户端提供 ClinicalTrials.gov 搜索与分析工具,也可作为本地 stdio MCP 服务运行。网关端点会加入 Pipeworx 通用元工具;独立服务仅提供此套件的工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/clinicaltrials/mcpclaude mcp add --transport http pipeworx-io-clinicaltrials https://gateway.pipeworx.io/clinicaltrials/mcp{"mcpServers":{"pipeworx-io-clinicaltrials":{"type":"http","url":"https://gateway.pipeworx.io/clinicaltrials/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-clinicaltrials":{"type":"http","url":"https://gateway.pipeworx.io/clinicaltrials/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-clinicaltrials":{"type":"http","url":"https://gateway.pipeworx.io/clinicaltrials/mcp"}}}{"mcpServers":{"pipeworx-io-clinicaltrials":{"serverUrl":"https://gateway.pipeworx.io/clinicaltrials/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
ClinicalTrials.gov — 临床试验注册中心
由 NIH 运营的全球临床试验公共注册中心。所有在 FDA 注册的干预性研究(以及大多数观察性研究)都必须在此备案。涵盖约 470,000 项研究,涉及医学领域的各种疾病,覆盖 Phase 1–4,以及上市后安全性监测。免费,无需身份验证。
属于 Pipeworx 的一部分——一个将 AI Agent 连接到 1875+ 个实时数据源的 MCP 网关。这是一个独立、非官方的集成,与上游提供方无关联、未经其认可,也非由其发布。
这对 AI Agent 有何意义
如果你的 Agent 要回答有关药物开发、临床研究或医疗产品安全性的任何问题,ClinicalTrials.gov 就是了解正在研究什么的权威来源。数据结构化程度高:NCT ID、阶段、状态、申办方、疾病、干预措施、主要/次要结局和结果。
三个核心工作流:
1. 搜索。“阿尔茨海默病有哪些研究项目?” → ct_search({query: "Alzheimer's disease"}) → 返回匹配的研究,以及 NCT ID、阶段和状态。
2. 特定研究。“介绍一下这项试验。” → ct_get_study({nct_id: "NCT04280705"}) → 返回完整的结构化记录,包括方案、结果和参考资料。
3. 申办方/数量。“辉瑞开展了多少项试验?” → ct_sponsor_trials({sponsor: "Pfizer"}) → 按阶段和状态列出试验。请参阅关于 sponsor 的含义——它指辉瑞主导的试验,而不是所有使用其药物的试验。
4. 申办方比较。“诺和诺德和礼来公司,哪家有更多正在招募的 III 期肥胖试验?” → ct_compare_sponsors({sponsors: ["Novo Nordisk", "Eli Lilly and Company"], condition: "obesity", status: "RECRUITING", phase: "PHASE3"}) → 在相同筛选条件下,按主导申办方的试验数量排序,并提供 NCT 记录样例。
要进行药物层面的综合分析(结合试验、FDA 批准和不良事件),请使用 pharma_drug_profile 化合物工具,或 [compare_entities({type: "drug", values: [...]})]。
可引用 URI
pipeworx://clinicaltrials/study/{nct_id}
NCT ID 永久有效。一经分配,绝不重复使用。请在 Agent 输出中将其作为规范的研究引用。
关于 sponsor 的含义
所有接受 sponsor 的工具都会匹配已注册的主导申办方——即提交备案并开展试验的组织。这就是“默克即将公布哪些结果”的含义,也是所有工具的默认行为。
它的范围比看上去要窄。大学开展的帕博利珠单抗研究不属于默克的试验;默克研发了这款药物,但研究由其他机构开展。要将此类试验也纳入结果,请传入 sponsor_match:
sponsor_match | 匹配范围 | Merck Sharp & Dohme LLC |
|---|---|---|
lead(默认) | 仅已注册的主导申办方 | 2,175 项研究 |
lead_or_collaborator | 也包括将该公司列为协作方的试验 | 4,280 项研究 |
每项返回的研究都带有 sponsor_match_field(lead_sponsor 或 collaborator),因此调用方始终可以了解某项试验为何会出现在结果中。
截至 2026-08-29,这些工具使用注册中心的 query.spons 参数进行筛选。它其实并非申办方筛选器,而是范围宽泛的搜索,也会匹配协作方和自由文本。搜索 Merck 会返回 4,282 项由犹他大学、威尔康奈尔医学院等机构主导的研究,而且响应中没有任何提示表明结果有误。如果你缓存了该日期之前的数量,那是宽泛搜索的结果,并非主导申办方的数量。
按状态筛选
用户询问“正在进行”的试验时,通常指以下两种情况之一:
- 目前正在招募:
status=Recruiting— 接受新参与者 - 正在进行中:
status=Recruiting OR Active, not recruiting OR Enrolling by invitation
ct_search 默认返回所有状态;请根据所需含义,按结果的 status 字段进行筛选。常见误解:“已完成”的试验指已结束数据收集的研究,不一定已经发布结果。
临床阶段转化率(ct_phase_transition_rates)
这是技术成功概率(PTRS)基准的公开版本——Evaluate Omnium 和 BioMedTracker 出售的那类数据。它衡量针对特定疾病的药物实际从一个临床阶段进入下一阶段的频率,数据直接取自注册库。
ct_phase_transition_rates({ condition: "non-small cell lung cancer" })
返回临床阶段 1→2 和临床阶段 2→3 的分子 / 分母 / 比率、以通俗语言说明的删失规则、匹配的 BIO/Informa/QLS 2011-2020 已发布基准,以及前 20 种干预措施及其阶段路径,方便审计该比率。
方法。 针对该疾病的行业赞助干预性试验按标准化后的干预措施名称分组(转为小写;剥离剂量、给药途径和剂型标记;完整保留化合物代号,因此 PF-06463922 与 PF-06439535 保持区分)。联合用药试验组会拆分,并按每种成分分别计数。如果某种干预措施有针对该疾病的已完成阶段 N 试验,且同一疾病的任何阶段 N+1 试验在该试验完成后开始,则视为该干预措施已从阶段 N 转入阶段 N+1。
删失。 censor_years(默认值为 3)是资产必须具备的随访时长,才能纳入计数。只有当其已完成的较早阶段试验在 to_year 之前至少 censor_years 年结束时,该干预措施才会进入分母;否则它还没有足够时间进入下一阶段,若将其计为失败,会低估该比率。调高此值意味着要求更长的随访时间,分母也会缩小——对于 NSCLC,censor_years: 3 时阶段 2→3 的分母为 410,而 censor_years: 8 时为 301。
符合条件的干预措施少于 10 种时,会返回明确的 insufficient_data 状态及原因,而不是比率。
这个数字不代表什么
它统计的是注册库中是否存在试验,而不是试验结果。进入阶段 3 后失败的资产仍计为一次阶段转化,因此结果是技术成功率的上限,绝不是获批概率。响应中的 limitations 数组还列出了以下三个注意事项:
- ClinicalTrials.gov 没有资产标识符,因此需要根据自由文本干预措施名称重建资产。同一种药物若以不一致的拼写申报,就会被识别为多个资产,且每个都被视为失败。
- 无处不在的化疗骨干药物(carboplatin、cisplatin、paclitaxel)都是真正注册的干预措施,而且注册库没有字段标记某个试验组是否属于背景治疗。它们会出现在每个阶段,且几乎总是发生阶段转化,导致比率偏高——它们明显位于 NSCLC 审计清单的前几行。
- BIO 对比数据采用的是另一种衡量方式:分析师整理的每个项目的推进或暂停决定,粒度为宽泛的治疗领域。它可以作为数量级的参照,而非精确数值。
由于该方法要求下一阶段试验已公开注册,因此预期注册库推导出的比率会低于已发布的比率。
otherNames 不是同义词列表
如果你要构建类似工具,值得了解这一点。赞助方使用 interventions[].otherNames 既表示真正的同义名称(lorlatinib ↔ PF-06463922),也表示治疗方案中的其他药物:AK112 Injection 携带 ["Pemetrexed", "Carboplatin"],而 Standard of care neoadjuvant therapy 则列出了六种化疗药物。直接合并这些名称,会把 pemetrexed 的全部 306 项试验归到名为 ak112 的键下,随后报告 Eli Lilly 名下有 76 项 Akeso 抗体的阶段 2 试验——没有报错,得出的比率看起来也仍然合理。我们通过两项规则来避免这种情况:只要某个名称在语料库中任何地方作为主要干预措施出现过,就绝不会将其并入其他名称的别名;而列出两个以上 otherNames 的试验组会被视为治疗方案列表并忽略。这两项规则都倾向于把同一种资产拆成两个(从而低估比率),而不是把两种资产合并(从而扭曲比率)。
更新频率
- 赞助方必须至少每年更新一次研究;发生重大变更时(状态转换、完成)应更频繁地更新。
- 主要结果必须在主要完成日期后的 12 个月内发布。
- Pipeworx 会按研究缓存响应,TTL 为 24 小时。大多数研究不会每天变更;这对几乎所有用例都够用。
常见陷阱
- 结果与结果。“有结果”表示 ClinicalTrials.gov 上发布了主要结局数据。许多已完成的试验会在同行评审期刊上发表论文,但从未在此处发布结果。对于文献,请交叉参考
semantic-scholar或crossref。 - 阶段混淆。“Phase 2/3”试验同时计入两个阶段。按阶段筛选需要仔细处理布尔逻辑。
- **赞助方名称规范化。**在
ct_sponsor_trials中,“Pfizer Inc.” 和 “Pfizer” 返回的结果数量不同。请先尝试限制较宽松的形式。如果结果数量低得可疑,工具会探测注册库,并通过did_you_mean返回实际存在的注册名称。 - **主要赞助方与协作者。**所有赞助方工具都依据注册的主要赞助方字段计数,因此协作者记录不会虚增某个产品组合或正面对比的数据。不过,已注册的公司名称写法和子公司仍可能导致一家公司的试验分散在多个名称下;请检查返回的主要赞助方名称。请参阅什么是
sponsor。 - **地理范围。**ClinicalTrials.gov 总部位于美国,但只要涉及任何美国站点,也会注册全球范围内的研究。对于完全在国外开展的研究,请使用 WHO ICTRP——目前 Pipeworx 尚不支持。
- 最近终止的试验。“Terminated”表示研究在完成前停止。请在完整研究记录中查看
whyStopped,了解具体情况(安全性信号、招募问题或资金问题)。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"clinicaltrials": {
"url": "https://gateway.pipeworx.io/clinicaltrials/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/clinicaltrials/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 的共享元工具——ask_pipeworx、
discover_tools、search_within、remember/recall 和网关范围内的其他工具。因此,你看到的工具数量会多于此表中的数量:单个工具包端点目前会在工具包自身的工具之外,列出大约 30 个共享工具。连接的 initialize 响应会说明其确切范围,是当天有效的权威信息。
这是有意为之,并非意外复用。元工具可以让受限连接回答此工具包未涵盖的问题——通过 ask_pipeworx 跨整个目录进行路由——而无需你添加第二个 MCP 服务。目前无法挂载不含这些工具的工具包端点;如果额外的 schema 占用的上下文多于路由带来的价值,请连接一次完整网关,而不是连接多个工具包端点。
也可以连接完整的 Pipeworx 网关,直接列出所有工具包的工具,而不只是此工具包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和同样的 1875+ 个数据源。唯一的区别是直接列出哪个工具包的工具;从任一端点都可以通过 ask_pipeworx 访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/ct_search \
-H 'Content-Type: application/json' \
-d '{"query":"GLP-1 receptor agonist","status":"RECRUITING","phase":"PHASE2","limit":20}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/ct_search。查找工具:向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求,内容为 {"query":"..."}。
独立运行(无需网关账户)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需与网关往返通信:
{
"mcpServers": {
"clinicaltrials": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-clinicaltrials"]
}
}
}
也可以直接运行,以确认它能够启动:
npx -y @pipeworx/mcp-clinicaltrials
它通过 stdin/stdout 使用 MCP 通信,并响应 initialize/tools/list/tools/call,但仅限此工具包的工具——不包含上述网关连接额外提供的任何共享元工具。来源相同,工具相同,但没有 ask_pipeworx 路由。
与 ask_pipeworx 配合使用
你可以用简单的英语提问,而不是直接调用工具 — 这在上面的 pack 端点和完整网关上都适用:
ask_pipeworx({ question: "your question about Clinicaltrials data" })
网关会选择合适的工具并自动填写参数。
更多
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。