临床试验注册表查询工具

一个提供访问中国临床试验注册中心(ChiCTR)的MCP服务器,支持搜索试验、提取结构化数据、跨库验证及中英翻译。

  • by JAGAN666
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 JAGAN666/chictr-mcp

使用说明

chictr mcp

一个MCP服务器,使Claude可以访问中国临床试验注册中心(ChiCTR),这是世界上最大的非英语临床试验数据库,拥有100000多个注册试验。

搜索试验,提取34+结构化字段,与ClinicalTrials.gov进行交叉引用,并将中文字段翻译成英文——所有这些都来自Claude Desktop或任何MCP客户端。

快速开始

git clone https://github.com/JAGAN666/chictr-mcp.git
cd chictr-mcp
npm install
npm run build

就是这样。服务器使用世界卫生组织ICTRP开箱即用(基本使用不需要API密钥)。

测试它

npm run test:scrape

你应该看看 34+个字段 提取用于胰腺癌症试验。

添加到Claude桌面版

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "chictr": {
      "command": "node",
      "args": ["/full/path/to/chictr-mcp/dist/index.js"]
    }
  }
}

重新启动克劳德桌面。你现在可以问克劳德这样的问题:

  • “搜索ChiCTR的胰腺癌症试验”
  • “获取ChiCTR2500102611试用详情”
  • “查找2024年注册的所有肺癌试验”

两种操作模式

基本模式(默认,零配置)

用途 世界卫生组织ICTRP -世界卫生组织ChiCTR数据镜像。使用纯HTTP,无需浏览器自动化。每次试用返回30+个字段。

全模式(使用FlareSolverr)

直接连接到 chictr.org.cn 通过FlareSolverr获取最完整的数据(34多个领域,中国标题,尚未与世界卫生组织同步的最新试验)。如果FlareSolverr不可用,则自动返回世界卫生组织ICTRP。

# One-time setup: start FlareSolverr
docker run -d --name flaresolverr -p 8191:8191 ghcr.io/flaresolverr/flaresolverr:latest

MCP服务器在以下位置自动检测到FlareSolverr http://localhost:8191/v1 --无需更改配置。

可选:翻译

要将中文试用字段翻译成英文,请从获得免费的NVIDIA API密钥 build.nvidia.com 并将其添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "chictr": {
      "command": "node",
      "args": ["/full/path/to/chictr-mcp/dist/index.js"],
      "env": {
        "NVIDIA_API_KEY": "nvapi-your-key-here"
      }
    }
  }
}

MCP工具

search_chictr_trials

按关键字搜索中国临床试验。

{ "keyword": "gastric cancer", "max_results": 10, "year": 2024 }

返回:试验ID、标题、研究类型、注册日期、机构、源URL。

获取试验数据

获取单次试验的完整结构化数据。

{ "registration_number": "ChiCTR2500102611", "translate": true, "verify": true }

返回34+个字段:标题、阶段、状态、状况、干预、赞助商、PI联系人、入组、结果、纳入/排除标准、伦理批准、盲法、试验地点等。每个字段都包含一个 source_url 引用。

体积_尺寸_厚度

与质量评分并行获取多个试验。返回RAG管道的Qdrant就绪文档。

{ "keyword": "lung cancer", "max_results": 20, "translate": true }

根据现场完整性,试验得分为高/中/低。仅返回高质量和中等质量的试验;低质量试验单独列在 skipped 阵列。

验证试验

将ChiCTR试验与ClinicalTrials.gov进行交叉引用。

{ "registration_number": "ChiCTR2400093415" }

返回:匹配的NCT ID、置信水平(高/中/低/未验证)以及任何差异。

get_cache_stats/clear_cache

查看或清除内存中的缓存。

建筑学

Claude Desktop
  │ JSON-RPC over stdio
  ▼
MCP Server (index.ts)
  ├── scraper.ts     ──→ FlareSolverr → chictr.org.cn (primary)
  │                  ──→ WHO ICTRP (fallback, plain HTTP)
  ├── verifier.ts    ──→ ClinicalTrials.gov v2 API
  ├── translator.ts  ──→ NVIDIA API (Nemotron 70B)
  ├── cache.ts       ──→ In-memory (node-cache)
  └── types.ts       ──→ ChiCTRTrial interface (34+ fields)

环境变量

全部可选。在Claude Desktop配置中设置 env 块或在 .env 文件开发。

变量 默认值 描述
NVIDIA_API_KEY -- 启用中文→英文翻译
FLARESOLVERR_URL http://localhost:8191/v1 FlareSolverr端点用于直接ChiCTR访问
CHICTR_SEARCH_CACHE_TTL 300 搜索缓存TTL(秒)
CHICTR_DETAIL_CACHE_TTL 600 详细缓存TTL(秒)
BULK_CONCURRENCY 3 批量摄取的最大并行取数
REQUEST_DELAY_MS 1500 请求之间的延迟(毫秒)

发展

npm run dev          # Run with hot reload (tsx)
npm run build        # Compile TypeScript
npm run test:scrape  # Test scraper against a real trial
npm run ingest       # Run oncology ingest pipeline (6 keywords)
npx tsc --noEmit     # Type check only

许可证

麻省理工学院