medical-knowledge-mcp-server
by handaas
README.md
# 医疗:疾病常见知识搜索
[该MCP服务提供疾病、疫苗、医疗检查和治疗方式等常见医疗知识的搜索与详情查询功能。](https://www.handaas.com/)
## 主要功能
- 🩺 疾病病因、症状、预防和治疗知识
- 💉 疫苗接种对象、功效、禁忌和注意事项
- 🔬 医疗检查目的、准备、方法和风险
- 💊 治疗适用疾病、准备、风险和康复知识
- 🔗 相关疾病、医院、检查和治疗信息
## 环境要求
- Python 3.10+
- 依赖包:python-dotenv, requests, mcp
## 本地快速启动
### 1. 克隆项目
```bash
git clone https://github.com/handaas/medical-knowledge-mcp-server
cd medical-knowledge-mcp-server
```
### 2. 创建虚拟环境&安装依赖
```bash
python -m venv mcp_env && source mcp_env/bin/activate
pip install -r requirements.txt
```
### 3. 环境配置
复制环境变量模板并配置:
```bash
cp .env.example .env
```
编辑 `.env` 文件,配置以下环境变量:
```env
INTEGRATOR_ID=your_integrator_id
SECRET_ID=your_secret_id
SECRET_KEY=your_secret_key
HANDAAS_REQUEST_TIMEOUT=30
```
### 4. streamable-http启动服务
```bash
python server/mcp_server.py streamable-http
```
服务将在 `http://localhost:8000` 启动,MCP 地址为 `http://127.0.0.1:8000/mcp`。
#### 支持启动方式 stdio 或 sse 或 streamable-http
### 5. Cursor / Cherry Studio MCP配置
```json
{
"mcpServers": {
"medical-knowledge-mcp-server": {
"type": "streamableHttp",
"url": "http://127.0.0.1:8000/mcp"
}
}
}
```
## STDIO版安装部署
### 设置Cursor / Cherry Studio MCP配置
```json
{
"mcpServers": {
"medical-knowledge-mcp-server": {
"command": "uv",
"args": ["run", "mcp", "run", "{workdir}/server/mcp_server.py"],
"env": {
"PATH": "{workdir}/mcp_env/bin:$PATH",
"PYTHONPATH": "{workdir}/mcp_env",
"INTEGRATOR_ID": "your_integrator_id",
"SECRET_ID": "your_secret_id",
"SECRET_KEY": "your_secret_key"
}
}
}
}
```
## 使用官方Remote服务
当前服务暂未开放官方 Remote 地址。请使用本地 `stdio`、`sse` 或 `streamable-http` 方式运行;官方 Remote 地址开放后将在本节补充配置。
### 注意:integrator_id、secret_id、secret_key及Remote token需要登录 https://www.handaas.com/ 进行注册开通平台获取
## 可用工具
### 1. medical_resource_search
**功能**: 疾病及常见医疗知识搜索
**参数**:
根据关键词、资料分类和就诊科室分页搜索疾病、疫苗、检查或治疗知识。
- `keyword` (可选): 资料名称或内容关键词
- `medicalType` (可选): 资料分类,可选疾病、疫苗、检查、治疗
- `medicalDepartmentList` (可选): 就诊科室,多级科室用逗号分隔
- `pageIndex` (可选): 页码,从1开始,默认1
- `pageSize` (可选): 每页条数,默认10,最大50
**返回值**:
- `total`: 符合条件的知识条目总数
- `resultList`: 知识条目列表
- `medicalInfoId`: 医疗资料ID,供详情查询使用
- `medicalName`: 资料名称
- `medicalType`: 资料分类
- `medicalAlias`: 资料别名
- `medicalDepartmentList`: 就诊科室
- `medicalIntroduction`: 资料简介
- `medicalComplications`: 并发症
- `diseaseProneGroup`: 高发人群
- `relatedDisease`: 相关疾病
- `highlight`: 关键词命中高亮信息
### 2. medical_resource_detail
**功能**: 疾病及常见医疗知识详情查询
**参数**:
通过医疗资料ID和资料分类查询完整知识内容。
- `medicalId` (必需): 使用搜索结果中的 `medicalInfoId`
- `medicalType` (必需): 必须与搜索结果分类一致,支持疾病、疫苗、检查、治疗及对应英文值
**返回值**:
- `total`: 命中数量,通常为1
- `resultList`: 分类对应的完整知识详情
- 疾病类:病因、症状、预防、检查、治疗及相关疾病
- 疫苗类:接种对象、功效、指导、反应、禁忌和注意事项
- 检查类:检查目的、准备、部位、方法、禁忌和风险
- 治疗类:适用疾病、治疗准备、并发症、风险、饮食和康复
- 关联信息:相关医院、疾病、检查和治疗列表
## 使用注意事项
1. **ID与分类要求**: `medicalId` 和 `medicalType` 必须来自同一条搜索结果。
2. **分类映射**: 中文分类会映射为 Product API 使用的 Disease、Vaccine、Check、Treatment。
3. **API限制**: 分页查询一页最多获取50条数据。
4. **合法空结果**: 未命中时返回 `total=0` 和 `resultList=[]`。
5. **医疗边界**: 返回内容用于常见知识查询,不替代医生诊断、处方或紧急医疗服务。
## 使用提问示例
### medical_resource_search (疾病及常见医疗知识搜索)
1. 搜索流感相关的疾病知识
2. 查询乙肝疫苗的常见知识
3. 查找心内科相关的医疗检查资料
### medical_resource_detail (疾病及常见医疗知识详情查询)
1. 查看刚才疾病的病因、症状和预防方法
2. 查询这项检查需要做哪些准备
3. 查看该疫苗的接种禁忌和注意事项
## 测试验证
```bash
python -m py_compile server/mcp_server.py
python -m unittest discover -s tests -v
```
当前服务包含 5 个离线单元测试。真实接口验证需在本地 `.env` 配置有效凭据后执行,测试输出不得提交真实业务响应或凭据。
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues