败血症结果预测工具

基于患者纵向实验室结果和元数据预测ICU/败血症患者临床结果的MCP服务器工具。

  • by Why-Be-So-Septic
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 why-be-so-septic/mcp-server

使用说明

MCP服务器——脓毒症预后预测

概述 该存储库实现了一个模型上下文协议(MCP)服务器,该服务器公开了一个工具,该工具根据ICU/败血症患者的纵向实验室结果和元数据预测他们的临床结果。该工具对LLM隐藏了实现细节(如HTTP请求),并提供了一个干净的界面:提供患者记录,接收每日结果预测。

主要特点

  • MCP工具:预测结果
  • MCP工具:compute_lab_score
  • 使用Zod验证输入模式;所有字段都是可选的,可以为null,默认为null
  • 后端性别正常化(“男性”/“女性”→ “M”/“F”)
  • FastAPI后端集成在http://localhost:8000/predict具有所需的checkpoint_path
  • 基于文本的工具输出(JSON字符串化),以符合MCP响应类型

工具:predict_sepsis_result 描述 分析败血症患者的医疗数据,并预测其随时间的临床结果。

输入 该工具需要一个包含关键数据的对象,其中包含一组患者记录。每条记录代表患者的一个测量日,并接受以下字段:

  • id:字符串|数字|空
  • 开始日期:字符串(YYYY-MM-DD)|空
  • 结束日期:字符串(YYYY-MM-DD)|空
  • 账龄:数字|空
  • 性别:“男”|“女”|空
  • data:字符串(测量日期,YYYY-MM-DD)|空
  • 可选数字实验室(所有数字|空):ALT、APTT、AST、Amilasa、CRP、联胆红素、肌酐、D-二聚体、铁蛋白、纤维蛋白原、葡萄糖、血红蛋白、LDG、淋巴细胞、单核细胞、中性粒细胞、血小板、钾、降钙素原、钠、总蛋白、尿素、白细胞

重要

  • 该工具不接受请求负载中的Outcome或DaysBfOutcome。这些字段被有意从架构中排除,并将被拒绝。
  • 允许缺少字段,默认为null。

输出解释 对于患者时间线中的每一天t,模型预测以下之一:

  • 0=≤7天内无事件(患者仍住院)
  • 1=≤7天内出院
  • 2=≤7天内死亡

后端集成

  • 端点:POSThttp://localhost:8000/predict
  • 所需的身体形状: { “checkpoint_path”:“tsformer_best.pt”, “患者”:[…标准化记录…] }
  • 性别值由工具自动映射:“男性”→ “M”、“女性”→ "F".Null保持为Null。
  • 后端应清除响应中的任何NaN/Finity值(替换为null),以避免JSON序列化错误。

MCP工具请求示例 { “数据”:[ { “id”:“12345”, “开始日期”:“2025-01-10”, “结束日期”:“2025-01-20”, “衰老”:67, 性别:男 “数据”:“2025-01-12”, “ALT”:35.0, “APTT”:28.5, “AST”:22.0, C-反应蛋白:8.7, “肌酐”:1.1, “WBC”:7.8 } ] }

示例工具输出(文本) 患者分析完成。脓毒症预后预测可用。 { “预测”:[ {“id”:“12345”,“日期”:“2025-01-12”,“y_hat”:0} ], “meta”:{“model”:“tsformer_best.pt”} }

入门 先决条件

  • Node.js 20+
  • pnpm 9+(推荐)
  • 在以下位置运行FastAPI后端http://localhost:8000具有/预测终点

安装依赖项 pnpm安装

在开发中运行 pnpm-dev

构建 pnpm构建

类型检查 pnpm类型检查

备注

  • MCP服务器在src/index.ts中实现。工具描述包括一个详细的模式和示例。
  • 服务器返回符合MCP的文本内容;JSON在返回之前被字符串化。
  • 如果更改后端路径或检查点文件,请相应地更新src/index.ts。

许可证 专有/内部(酌情更新)。