ckd-meal-plan-mcp
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"kidney_hero_care": {
"args": [
"nfyy-ckd-meal-plan-mcp"
],
"command": "uvx"
}
}
}
可用工具 (13 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
list_patients
列出全部模拟患儿(ID / 姓名 / 年龄 / CKD 分期 / 透析方式 / 饮食模式)。
该工具无需必填参数,直接调用即可
get_patient_profile 1 个参数 需填 1 项
获取某患儿完整档案:年龄/体重/CKD 分期/透析/过敏原/地方饮食文化/3 天日记概况。
必填参数:patient_id
get_labs 1 个参数 需填 1 项
获取患儿化验记录(含血钾/血磷/白蛋白/BUN/尿量等)。
必填参数:patient_id
get_diet_diary 2 个参数 需填 1 项
获取患儿最近 N 天饮食日记(餐次/食物/克重/烹饪方式)。
必填参数:patient_id
analyze_diet_diary 2 个参数 需填 1 项
分析患儿最近 N 天饮食日记:识别高钾水果、老火汤、加工食品钠磷超标、蛋白不足/过量、隐藏过敏原。
必填参数:patient_id
compute_nutrition_targets 1 个参数 需填 1 项
根据患儿档案 + 最新化验,输出 KDIGO 2024 / PRNT 2020 个体化营养目标(能量/蛋白/钠/钾/磷/钙/液体)。
必填参数:patient_id
generate_meal_plan 4 个参数 需填 1 项
生成一日五餐可执行食谱(含克重/餐次/替代方案),并自动写入 SQLite。
必填参数:patient_id
save_meal_plan 2 个参数 需填 2 项
把已生成的食谱 JSON 字符串写入 SQLite(plan_json 来自 generate_meal_plan 的原始输出)。
必填参数:patient_id、plan_json
list_meal_plans 1 个参数 需填 1 项
列出某患儿已保存的食谱记录(日期/能量/蛋白)。
必填参数:patient_id
search_food 3 个参数 需填 1 项
按名称关键词检索《中国食物成分表》食物,返回肾友分级(钾/磷/钠/嘌呤)。
必填参数:keyword
get_food_profile 1 个参数 需填 1 项
查询某食物的完整营养素与肾友分级(含每 100g 能量/蛋白/钾/磷/钠/钙)。
必填参数:food_name
get_alternatives 2 个参数 需填 1 项
给出某食物的同类等效替代(蛋白源按等蛋白、主食/油脂按等能量换算)。
必填参数:food_name
knowledge_card 1 个参数 需填 1 项
返回儿童 CKD 营养管理知识卡片(主题可选:限钾/限磷/限钠/蛋白/能量/液体/嘌呤/低蛋白淀粉)。
必填参数:topic
服务介绍
测试项目 请勿用
测试项目 请勿用
测试项目 请勿用
测试项目模拟数据 童肾营养师 · 个体化食谱生成记录 MCP Server
面向儿童慢性肾脏病(CKD 1–5 期及透析)的确定性个体化食谱生成服务。
结合患儿年龄、CKD 分期、透析状态、食物过敏、地方饮食文化与 3 天饮食日记,
输出符合 KDIGO 2024 / PRNT 2020 / KRCP 2025 营养目标的可执行一日五餐食谱
(含克重、餐次、量具换算、替代方案与烹饪去钾/去磷要点)。
团队:南方医科大学南方医院 NFYY038 团队 | 复赛交付物
✨ 功能特性
- 严格参考权威依据:能量按 IOM/DRI 2005 EER 方程估算;蛋白按 PRNT 2020 取区间上限促生长、下限为不可破安全底线;钾/磷/钠分层参照 KRCP 2025。
- 确定性计算,零模型幻觉:所有克重、能量、钠钾磷换算均由代码层硬规则完成,模型不参与任何算术(与 NFYY038 风险预警 Agent 的硬规则范式一致)。
- 覆盖全场景:15 名模拟患儿覆盖 CKD G1–G5D 全分期、非透析/腹透/血透/HDF 四种透析、10 类过敏原、10 种地方饮食文化。
- 个体化约束:限钾/限磷时剔除危险食材(高钾主食/水果/蛋白、高磷蛋白源),优先低钾低磷品种,并用焯水/浸泡/水煮弃汤等烹饪折减。
- 零蛋白能量模块:用粉丝/米粉/藕粉/凉粉等近乎零蛋白淀粉补足能量,避免靠谷物堆热量而冲爆低蛋白上限。
- 可轮换多日食谱:传入不同
variant即可得到不同食材搭配,便于编排连续多日食谱。 - 饮食日记分析:对比 KDIGO 目标识别高钾水果、老火汤、加工食品钠磷超标、蛋白不足/过量、隐藏过敏原。
🧰 MCP 工具清单(13 个)
| 工具 | 作用 |
|---|---|
list_patients |
列出全部模拟患儿 |
get_patient_profile |
患儿完整档案 |
get_labs |
化验记录 |
get_diet_diary |
最近 N 天饮食日记 |
analyze_diet_diary |
3 天日记营养风险分析 |
compute_nutrition_targets |
KDIGO 2024 个体化营养目标 |
generate_meal_plan |
生成一日五餐食谱(自动落库) |
save_meal_plan |
手动保存食谱 JSON |
list_meal_plans |
已保存食谱列表 |
search_food |
《中国食物成分表》检索 + 肾友分级 |
get_food_profile |
单食物完整营养素与分级 |
get_alternatives |
同类等效替代 |
knowledge_card |
儿童 CKD 营养知识卡片 |
🛠 技术栈
- Python 3.10+ · FastMCP 2.x/3.x · stdio 传输
uvx经由pyproject.toml的console_scripts入口直接拉起- 内置 SQLite 存储(患者档案、化验、日记、已生成食谱)
📦 安装与运行
# 方式一:从源码
pip install -e .
python -m nfyy_ckd_meal_plan.server # stdio 模式
# 方式二:uvx(发布到 PyPI 后)
uvx nfyy-ckd-meal-plan-mcp
# 自定义 SQLite 路径(默认 ~/.nfyy-ckd-meal-plan/meal_plan.db)
export NFYY_MEAL_DB=/path/to/meal_plan.db
首次运行会自动用内置的 15 名模拟患儿数据播种 SQLite。
🔌 与 MCP 客户端对接
服务以 stdio 暴露,任何兼容 MCP 的客户端(Claude Desktop、魔搭社区、自建 Agent)
只需配置启动命令:
{
"mcpServers": {
"nfyy-ckd-meal-plan": {
"command": "uvx",
"args": ["nfyy-ckd-meal-plan-mcp"]
}
}
}
📚 数据来源
CKD儿童能量与蛋白质营养管理_KRCP2025知识库.md—— 营养目标、分级阈值、临床铁律中国食物成分表.xlsx—— 1752 条食物 × 35 项营养素(已转为data/food_data.csv)- 15 名患儿为虚构演示数据,仅用于复赛功能验证,不构成任何真实诊疗建议。
📐 配餐铁律(摘要)
- 先定蛋白源,再用零蛋白能量补热;能量缺口不靠加肉补。
- 加餐近零蛋白,只承担能量与愉悦感。
- 限钾不等于不吃菜:先选低钾品种,再改刀→浸泡→焯水弃汤。
- 限磷优先砍无机磷(加工食品磷酸盐添加剂吸收率≈100%)。
- 蛋白下限是绝对安全底线,任何情况不可突破。
🚀 部署
详见 docs/deploy.md:GitHub(代码)→ PyPI(可安装包)→ 魔搭社区(登记为可调用的 MCP 服务)。
⚠️ 合规声明
本服务为营养管理辅助决策工具,所有输出不构成医疗建议。蛋白质/钾/磷/钠的最终处方上限
须由儿科肾脏专科医师或注册营养师核定;磷结合剂、钾结合剂、透析处方调整不得依据本服务自行变更。