关于 Isrctn
Isrctn 是用于搜索 ISRCTN 国际临床试验注册库并获取单项研究记录的 MCP 服务,面向需要注册数据的研究者和临床试验分析人员,包括查询美国以外的研究。
主要功能
- 01按文本、病症或干预搜索试验
- 02按 ISRCTN ID 获取结构化记录
- 03按日期推导的试验状态筛选
- 04返回申办方、日期、国家及结果报告状态
- 05无需凭据使用公共 API
适用场景
- 01查找针对某病症和干预的国际试验
- 02查看研究的申办方、阶段和日期
- 03确认试验是否发布结果报告
MCP 相关
它将试验搜索和单条记录查询作为 MCP 工具提供。可通过 Pipeworx 网关连接,也可在本地作为 stdio MCP 服务运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/isrctn/mcpclaude mcp add --transport http pipeworx-io-isrctn https://gateway.pipeworx.io/isrctn/mcp{"mcpServers":{"pipeworx-io-isrctn":{"type":"http","url":"https://gateway.pipeworx.io/isrctn/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-isrctn":{"type":"http","url":"https://gateway.pipeworx.io/isrctn/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-isrctn":{"type":"http","url":"https://gateway.pipeworx.io/isrctn/mcp"}}}{"mcpServers":{"pipeworx-io-isrctn":{"serverUrl":"https://gateway.pipeworx.io/isrctn/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
ISRCTN — 英国国际临床试验注册平台
ISRCTN(isrctn.com)是经 WHO 和 ICMJE 认可的主要临床试验注册平台,由 Springer Nature/BMC 运营。它收录英国及国际临床试验——其中包括许多从未出现在 ClinicalTrials.gov 上的非美国研究——并为每项注册研究分配永久 ISRCTN 编号。提供免费的公开 XML 查询 API,无需密钥。
这是 Pipeworx 的一部分——一个连接 AI Agent 与 1882+ 个实时数据源的 MCP 网关。这是独立的非官方集成,与上游提供方无关联、未获其认可,也非由其发布。
这对 AI Agent 的重要性
ClinicalTrials.gov 以美国为中心。如果没有 ISRCTN,像“有哪些关于裸盖菇素用于卒中康复的试验”这样的问题就只能得到一半答案,因为有几项由英国/欧盟资助的研究只在 ISRCTN 注册,或除了在 ClinicalTrials.gov 注册外,也在 ISRCTN 注册。请将此工具包与 clinicaltrials 一起使用,以覆盖国际试验,而非用它取代 clinicaltrials。
两种工作流:
1. 搜索。“关于 X 和 Y 的研究” → isrctn_search({query: "psilocybin depression"})
或者,如需同时匹配已注册的疾病和已注册的干预措施,则使用
isrctn_search({condition: "stroke", intervention: "psilocybin"})。组合使用
condition 和 intervention 是 AND 逻辑,而非 OR 逻辑——真正的零结果表示当前没有 ISRCTN 试验同时涉及该疾病和干预措施;响应中会回显 query_used,供调用方准确了解搜索内容。
2. 单条记录。isrctn_trial({id: "ISRCTN37167117"}) → 完整结构化记录:标题、疾病、干预措施/阶段、申办方、资助方、日期、国家/地区,以及是否已发布结果报告。
状态是推导得出的,而非注册平台字段
ISRCTN 的 XML feed 不包含“总体试验状态”字符串,不同于 ClinicalTrials.gov。每条返回的试验都会根据招募时间窗口的日期(recruitment_start、recruitment_end、overall_end_date)相对于当前日期计算 status;status_basis 则会准确说明用于判定的日期(例如 “总体试验结束日期(2025-01-23T00:00:00.000Z)已过”)。isrctn_search 的 status 过滤器会匹配此推导值,并在已获取的一批数据上由客户端执行(status_filter_scanned 会报告扫描的试验数量),因为上游没有可用于服务端筛选的状态字段。
搜索语法
query 支持自由文本(ISRCTN 的搜索基于覆盖完整记录的 Lucene 索引,包括标题、摘要、资格标准等)。多个词默认使用 AND 逻辑(“psilocybin depression”会匹配同时包含这两个词的试验,而非包含其中任意一个的试验);这已通过实时 API 确认:psilocybin depression 和 psilocybin AND depression 返回的结果数量相同,而 "psilocybin depression"(短语)返回零条结果。condition 和 intervention 会专门匹配 ISRCTN 已索引的 condition:/intervention: 字段——搜索范围比使用同一个词进行自由文本匹配更窄(例如,condition:stroke 的命中数约为不带字段的 stroke 搜索的 1/4,因为它会排除只在资格标准或其他位置提及“stroke”的试验)。
query、condition、intervention 中至少需要提供一个。
身份验证
无需密钥。公开、无需身份验证的 XML 查询 API。
数据源
https://www.isrctn.com/api/query/format/default?q={lucene_query}&limit={n}— 搜索(例如q=psilocybin+depression&limit=10);也用于查询单条记录(isrctn_trial会通过规范的ISRCTN37167117格式 ID 查询,并设置limit=1)。
给下一位的备注
- 其他地方非正式记录的单条记录 URL 格式
/api/query/ISRCTN37167117/format/default在线上会返回 404(已于 2026-10-09 验证)——查询单条记录的可用路径是同一个搜索端点,通过 ID 查询。 - 不存在的 ISRCTN ID 会返回
HTTP 200,并带有空的allTrials元素(totalCount为零)——这是合法的空结果,会显示为{found: false},而非错误。 - 格式错误的 Lucene 查询(例如引号不匹配)也会静默返回
totalCount="0",而非 HTTP 错误——发送前会对传入query、condition和intervention的用户输入进行 Lucene 转义,因此调用方的原始文本(括号、冒号、引号)不会因查询语法错误而意外产生零结果。 - 如果响应的 HTTP 状态为 200,但没有
allTrials/totalCount根元素,或者声称totalCount > 0却没有任何可解析的 fullTrial 块,就会抛出明确的upstream_parse错误——绝不会静默返回空结果。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"isrctn": {
"url": "https://gateway.pipeworx.io/isrctn/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/isrctn/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 的共享元工具——ask_pipeworx、discover_tools、search_within、remember/recall,以及网关级的其他工具。因此,你看到的工具数量会多于此表:目前,单个工具包端点除了该工具包自身的工具,还会列出约 30 个共享工具。连接的 initialize 响应会说明其确切范围,并且是当天有效范围的权威说明。
这是有意为之,并非意外的多路复用。借助这些元工具,受限范围的连接可以通过 ask_pipeworx(它会路由至整个目录)回答此工具包未覆盖的问题,而无需你添加第二个 MCP 服务。目前无法挂载不含这些元工具的工具包端点;如果额外的架构定义占用的上下文多于路由功能带来的价值,请连接一次完整网关,而非连接多个工具包端点。
或者连接完整的 Pipeworx 网关,直接列出所有工具包的工具,而不只是此工具包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和相同的 1882+ 个数据源。唯一的区别在于直接列出的是哪个工具包的工具;无论连接哪个端点,ask_pipeworx 都可以访问所有工具包。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/isrctn_search \
-H 'Content-Type: application/json' \
-d '{"query":"psilocybin depression","limit":5}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/isrctn_search。查找工具:使用 {"query":"..."} 向 POST https://gateway.pipeworx.io/v1/tools/search_packs 发送请求。
独立运行(无需网关账户)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需经过网关:
{
"mcpServers": {
"isrctn": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-isrctn"]
}
}
}
或者直接运行,以确认它能够启动:
npx -y @pipeworx/mcp-isrctn
它通过 stdin/stdout 使用 MCP,并对 initialize/tools/list/tools/call 作出响应,仅提供此工具包的工具——不包含上文网关连接额外提供的共享元工具。源代码和工具相同,但没有 ask_pipeworx 路由。
使用 ask_pipeworx
你可以用通俗的英语提问,而不是直接调用工具——此功能既适用于上文的工具包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Isrctn data" })
网关会选择合适的工具并自动填写参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。