article
README
🚀 医疗计算器MCP服务
本项目实现了医疗计算器MCP服务,完成了56个医疗计算器,覆盖了多个医疗领域,包括人体测量学、心血管、肾功能、肝功能、实验室检测、重症监护评分、呼吸系统、感染与炎症、液体与药物、妇产科和肿瘤学等。
🚀 快速开始
安装依赖
pip install -r requirements.txt
运行测试
# 运行所有API测试
python test/api_test_bmi_calculator.py
python test/api_test_pregnancy_calculators.py
python test/api_test_lung_cancer_staging.py
python test/api_test_tools.py
# 运行基础测试
python test_bmi.py
启动服务器
python server.py
✨ 主要特性
- ✅ 完整的医疗计算器集合:拥有56个专业医疗计算器
- ✅ 多领域覆盖:涵盖各种临床医疗专业领域
- ✅ 智能单位转换:支持各种医疗单位的自动转换
- ✅ 详细的计算解释:每个结果都包含详细的医学解释
- ✅ 完整的参数验证:确保输入数据的准确性和安全性
- ✅ 支持MCP协议:标准化的接口协议
- ✅ 异步处理:高性能的异步计算处理
- ✅ 完整的测试覆盖:全面的API和功能测试
📦 安装指南
安装依赖
pip install -r requirements.txt
💻 使用示例
启动服务器
# 启动FastMCP服务器(推荐)
python server.py
# 或者启动MCP API服务器
python api_server.py
# 服务器将运行在 http://127.0.0.1:8010/mcp/
📚 详细文档
🏥 计算器分类
人体测量学和基础计算(5个)
- BMI计算器 - 身体质量指数计算
- 体表面积计算器 - BSA计算
- 理想体重计算器 - IBW计算
- 调整后体重计算器 - ABW计算
- 目标体重计算器
心血管系统(11个)
- 平均动脉压计算器
- QTc间期计算器(5种公式)
- CHA2DS2 - VASc中风风险评分
- HAS - BLED出血风险评分
- HEART评分计算器
- 心脏风险指数计算器
- 弗雷明汉风险评分
- 韦尔斯深静脉血栓评分
- 卡普里尼血栓形成风险评估
肾功能(4个)
- 肌酐清除率计算器(Cockcroft - Gault)
- CKD - EPI肾小球滤过率计算器
- MDRD肾小球滤过率计算器
- 钠排泄分数计算器
肝功能(3个)
- Child - Pugh肝功能分级
- MELD - Na评分计算器
- FIB - 4肝纤维化指数
实验室检测(12个)
- 阴离子间隙计算器及相关计算器
- 钙校正计算器
- 高血糖时钠校正
- 血清渗透压计算器
- 低密度脂蛋白胆固醇计算器
- HOMA - IR胰岛素抵抗指数
- 自由水缺乏计算器
重症监护和评分系统(8个)
- APACHE II急性生理学评分
- SOFA序贯器官衰竭评估
- SIRS全身炎症反应综合征
- 格拉斯哥昏迷评分
- 格拉斯哥出血评分
- 查尔森合并症指数
呼吸系统(4个)
- CURB - 65肺炎严重程度评分
- 肺炎严重程度指数(PSI)
- 韦尔斯肺栓塞评分
- PERC肺栓塞排除标准
感染与炎症(2个)
- 森托尔链球菌性咽炎评分
- FeverPAIN咽炎评分
液体与药物(3个)
- 维持液计算器
- 类固醇转换计算器
- 吗啡毫克当量计算器
妇产科(3个)
- 估计受孕日期计算器
- 估计孕周计算器
- 估计预产期计算器
肿瘤学(1个)
- 肺癌TNM分期计算器
📁 项目结构
medcalcmcp/
├── medcalc/ # 核心框架模块
│ ├── __init__.py # 模块导出
│ ├── models.py # 数据模型
│ ├── base.py # 基础计算器类
│ ├── registry.py # 计算器注册系统
│ ├── service.py # 计算器服务
│ ├── utils.py # 实用工具(单位转换等)
│ └── exceptions.py # 异常定义
├── calculators/ # 计算器实现(56个计算器)
│ ├── __init__.py # 计算器包(管理所有计算器)
│ ├── bmi_calculator.py # BMI计算器
│ ├── bsa_calculator.py # 体表面积计算器
│ ├── creatinine_clearance_calculator.py # 肌酐清除率计算器
│ ├── cha2ds2_vasc_calculator.py # CHA2DS2 - VASc评分
│ ├── lung_cancer_staging_calculator.py # 肺癌TNM分期计算器
│ └── ... # 其他53个计算器
├── test/ # 测试文件目录
│ ├── api_test_bmi_calculator.py # BMI计算器API测试
│ ├── api_test_pregnancy_calculators.py # 与妊娠相关的计算器API测试
│ ├── api_test_lung_cancer_staging.py # 肺癌分期计算器API测试
│ └── api_test_tools.py # MCP工具动态测试
├── server.py # FastMCP服务器主文件
├── api_server.py # MCP API服务器
├── requirements.txt # 项目依赖
└── README.md # 项目文档
🔧 开发指南
创建新的计算器
- 在
calculators/目录下创建一个新的计算器文件 - 继承
BaseCalculator类 - 实现所需的方法:
get_info()、validate_parameters()、calculate() - 使用
@register_calculator装饰器进行注册 - 在
calculators/__init__.py中添加导入
运行测试
# 测试特定计算器
python test/api_test_bmi_calculator.py
# 测试所有计算器(动态测试)
python test/api_test_tools.py
# 测试与妊娠相关的计算器
python test/api_test_pregnancy_calculators.py
# 测试肺癌分期计算器
python test/api_test_lung_cancer_staging.py
🔧 技术细节
🛠️ 技术架构
本项目采用模块化设计,主要组件如下:
- MCP服务器 (
server.py):提供MCP协议接口 - 核心框架 (
medcalc/):数据模型、基类、实用工具 - 计算器引擎 (
calculators/):56个特定的医疗计算器 - 测试套件 (
test/):API测试和功能验证
📋 项目状态
- 当前版本:0.1.0
- 计算器数量:56个
- 测试覆盖率:100%
- 支持的医疗领域:11个专业领域
🤝 贡献说明
欢迎提交拉取请求和提出问题,以帮助改进项目。
🙏 致谢
本项目基于[MedCalc - Bench](https://github.com/ncbi - nlp/MedCalc - Bench)项目。感谢NCBI - NLP团队提供了优秀的基础医疗计算器实现。我们将其转换为MCP(模型上下文协议)服务,以便更好地与现代AI应用集成。
原始项目参考:
- GitHub: https://github.com/ncbi - nlp/MedCalc - Bench
- 论文: MedCalc - Bench: A Large - scale Medical Calculator Benchmark
微信扫一扫