内容
# 中国药物临床试验登记与信息公示平台MCP服务器
药物临床试验登记与信息公示平台(,chinadrugtrials.org.cn)的MCP服务器。
## 概述
提供搜索和获取在中国NMPA/CDE注册的临床试验数据的工具。
灵感来自 [clinicaltrialsgov-mcp-server](https://github.com/cyanheads/clinicaltrialsgov-mcp-server) 架构。
## 功能
### 工具(3)
| 工具 | 描述 |
|------|-------------|
| `chinadrugtrials_search_trials` | 按药物名称、适应症、注册号、赞助商、首席研究员、试验地点、状态、药物类型搜索临床试验 |
| `chinadrugtrials_get_trial_detail` | 按注册号(例如:CTR20261395)获取特定试验的详细信息 |
| `chinadrugtrials_get_statistics` | 查看来自该平台的临床试验注册统计数据 |
### 资源(1)
| 资源 | URI模式 | 描述 |
|----------|-------------|-------------|
| 试验详情 | `chinadrugtrials://{reg_no}` | 通过CTR注册号直接访问单个试验 |
### 提示(1)
| 提示 | 描述 |
|--------|-------------|
| `analyze_china_trial_landscape` | 对给定治疗领域或药物类别的中国临床试验情况进行引导式分析 |
## 架构
```
chinadrugtrials-mcp/
├── server.py # 入口点(FastMCP初始化)
├── chinadrugtrials_mcp/
│ ├── __init__.py
│ ├── constants.py # URL,恢复提示
│ ├── schemas.py # Pydantic输入/输出模型
│ ├── browser_manager.py # Playwright浏览器生命周期
│ ├── parsers.py # HTML解析 + 格式化实用程序
│ ├── services.py # 核心服务层(HTTP/浏览器操作)
│ ├── tools.py # 工具处理程序实现
│ ├── resources.py # 资源处理程序实现
│ └── prompts.py # 提示模板实现
├── pyproject.toml
├── requirements.txt
└── README.md
```
## 技术说明
- 由于目标网站的JavaScript反机器人保护,使用Playwright进行浏览器自动化。
- 网站将搜索结果渲染为完整的HTML页面(在JS反机器人挑战后进行服务器端渲染)。
- 试验详情页面使用基于会话的POST请求,因此需要完整的浏览器上下文。
- 服务层提供重试友好的错误处理和恢复提示。
## 安装
```bash
# 安装包(可编辑)
pip install -e .
# 或手动安装依赖项
pip install mcp httpx beautifulsoup4 lxml playwright pydantic
# 安装Playwright浏览器
playwright install chromium
```
## 配置(WorkBuddy MCP)
添加到 `~/.workbuddy/mcp.json`:
```json
{
"mcpServers": {
"chinadrugtrials": {
"type": "stdio",
"command": "/path/to/venv/bin/python",
"args": ["/path/to/chinadrugtrials-mcp/server.py"]
}
}
}
```
## 注册号格式
中国药物试验注册号遵循以下模式:`CTR{YYYY}{NNNN}`
示例:`CTR20261395`,`CTR20240001`