mcd-fit-buddy

mcp
Security Audit
Warn
Health Warn
  • License — License: NOASSERTION
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

麦麦减脂搭子 McFit Buddy — 输入体重与目标即自动搭配三餐麦当劳,支持自提/外送自动比价与券适配。核心主张:不美化结果,如实指出麦当劳餐单「热量+蛋白+钠」三目标不可兼得的结构性缺口。2026 麦当劳程序员创意开发大赛参赛作品

README.md

🍔 麦麦减脂搭子 McFit Buddy

在麦当劳,吃出腹肌

不是少吃,而是增肌减脂。

想减脂,又想吃麦当劳?
填上你的身体数据和目标,让它帮你算算这一顿怎么吃。

👀 先玩一下

🚀 在线体验 Demo

不用配置环境,打开就可以直接体验麦麦减脂搭子的核心能力。

你可以填写:

  • 体重、身高、年龄
  • 活动强度(每一档都有说明)
  • 体脂率
  • 基础代谢 BMR(有实测值可填,留空则按公式估算)
  • 减脂 / 增肌减脂 / 增肌目标
  • 早餐、午餐、晚餐哪些在麦当劳吃(没选的餐次可以填"已经吃了什么",它会自动估算营养)

然后生成对应的餐次方案和点餐清单。

目前 Demo:

  • 158 项麦当劳官方营养数据
  • 3 种目标模式、7 种餐次组合
  • 配餐偏好一键切换:蛋白优先 / 控钠优先 / 钠达标
  • 体脂率 → 腹肌可见度测算(含钠致水潴留对线条的影响)
  • 钠超标时给出「钠达标餐单 + 非麦当劳食物补齐数量」
  • 支持热量、蛋白质、钠等目标计算
  • 已完成真实账户、真实门店的下单验证

Demo 是这个 Skill 的能力展示页,本身不接触你的麦当劳凭证,也不会直接下单。
需要实际下单时,可以把生成的点餐清单交给 WorkBuddy,由它使用你的 Token 完成后续操作。

🔧 本地跑(可选)

不想用 Demo、想直接跑命令行的话:

git clone https://github.com/ctkok1986/mcd-fit-buddy
cd mcd-fit-buddy

# 只跑配餐求解,不需要任何 Token
python scripts/meal_planner.py \
  --weight 78 --height 175 --age 40 --sex male \
  --bodyfat 22 --goal recomp
  • 依赖为零 —— 只用 Python 标准库,不需要 pip install
  • 只有真实下单才需要麦当劳 Token,配置方式见 MCP_INTEGRATION.md
  • 网页版(demo.html)与本命令行引擎逐项对拍,结果一致

🧑‍🍳 在 WorkBuddy 里用起来(三步)

Demo 只是能力展示,真正帮你点餐需要把 Skill 装进 WorkBuddy:

① 装 Skill

把仓库里的 SKILL.md 连同 scripts/、data/ 一起放进 WorkBuddy 的技能目录:

~/.workbuddy/skills/mcfit-buddy/
├── SKILL.md
├── scripts/
└── data/

脚本做了路径无关处理,放好即用。

② 配麦当劳 MCP

  1. 在官方开放平台 open.mcd.cn/mcp 申请你的 Token
  2. 复制 mcp-config.example.json,把 ${MCD_MCP_TOKEN} 换成你的真实 Token,添加到 WorkBuddy 的 MCP 配置

③ 开聊

我今天想吃麦当劳,帮我配一顿适合减脂的:男,78kg / 175cm / 40 岁 / 体脂 22%

  • 「我中午已经吃了两个包子一杯豆浆」→ 扣除已吃额度,重新配剩下的
  • 「今天还能吃什么」→ 按剩余额度给选择
  • 「帮我下单」→ 查门店、比价、算实付,你确认金额后才创建订单

🍟 这个 Skill 是干什么的?

我想解决一个很简单的问题:

减脂的时候,今天就是想吃麦当劳,到底应该怎么点?

普通的热量计算器只能告诉你一个数字。

但真正点餐的时候,还要同时考虑:

  • 今天还剩多少热量
  • 蛋白质够不够
  • 钠会不会太高
  • 哪些餐品可以组合
  • 有没有更合适的优惠
  • 自提和麦乐送哪个更划算
  • 门店有没有货

所以我做了一个“减脂搭子”,让它直接参与到选餐和点餐这件事情里。

它不是告诉你:

“减脂不能吃麦当劳。”

而是帮你算:

“那今天到底怎么吃?”


🎯 适合谁

  • 在减脂、但不想戒掉麦当劳的人 —— 想知道"今天这么点到底行不行"
  • 增肌期要盯蛋白质的人 —— 麦当劳凑得够蛋白,但钠会上去,它把取舍摊开给你看
  • 想用优惠券又懒得算的人 —— 哪张券、是不是临期、用了到底划不划算
  • 已经在用 WorkBuddy 的人 —— 生成的清单可以直接交给它下单

🤖 WorkBuddy + 麦当劳 MCP

这个项目是参加 2026 麦当劳程序员创意开发大赛的参赛作品,也是我使用 WorkBuddy 辅助开发和实际使用的一次实践。

整个流程大致是:

用户提出需求
      ↓
麦麦减脂搭子 Skill
      ↓
读取麦当劳 MCP 数据
      ↓
计算营养目标
      ↓
组合餐品
      ↓
生成点餐清单
      ↓
WorkBuddy
      ↓
使用用户自己的 Token
      ↓
完成实际点餐

其中 Demo 只负责展示 Skill 的计算和推荐能力。

实际需要账号权限的操作,则交给 WorkBuddy 和 Skill 完成。


🔌 麦当劳 MCP

营养数据来自麦当劳官方 MCP 接口:

list-nutrition-foods

目前使用 158 项官方营养数据快照。

除了营养数据之外,实际点餐过程中还会涉及门店、库存、价格等真实信息。

项目中标记为「实测」的内容来自真实账户和真实门店调用。


🧮 它不只是算热量

输入体脂率后,会根据瘦体重计算蛋白质目标;没有填写体脂率,则使用体重进行估算。

每日摄入以 TDEE 为主要参考,而不是直接拿 BMR 当成每天应该吃的量。

然后根据用户选择的目标:

  • 减脂
  • 增肌减脂
  • 增肌

以及选择在麦当劳吃的餐次,寻找合适的餐品组合。

蛋白质和钠怎么办?

这是实际餐单里很容易遇到的问题。

有时候:

蛋白质够了,钠就偏高。

有时候:

钠控制住了,蛋白质又不够。

所以这个 Skill 不会为了“达标”无限往餐单里塞东西,而是尽量在热量、蛋白质和钠之间做取舍。

如果确实没有完美方案,就把这个取舍展示出来,而不是硬凑一个答案。


📋 从“算一算”到“点出来”

最后生成的不是单纯的营养报告,而是一份可以继续用于点餐的清单。

Demo 中:

生成方案
    ↓
生成点餐清单
    ↓
复制清单
    ↓
发送给 WorkBuddy
    ↓
WorkBuddy 使用用户 Token
    ↓
完成实际下单

这也是这个项目和普通“减脂计算器”最大的区别之一。


📊 跑一次看看

输入:78kg / 175cm / 40岁 / 男 / 体脂 22% / 目标「增肌减脂」

输出(真实运行,非示意):

基础代谢 BMR:1679 kcal      每日消耗 TDEE:2308 kcal
每日摄入目标:2124 kcal      蛋白目标:146 g(瘦体重 60.8 kg × 2.4)

【早餐】烟肉蛋麦满分 + 冰牛奶大杯
        529 kcal|蛋白 31g|钠 637mg
【午餐】…(略)
【晚餐】…(略)

【全天合计】
  热量      2116 / 2124 kcal   剩余 8
  蛋白       140 / 146 g        缺口 6
  钠        3642 / 2000 mg      ⚠️ 比建议值高 1642 mg

注意最后一行:它没有为了好看而把钠藏起来。
同一组参数如果改成「控钠优先」,蛋白就只有 94 g 左右 ———
这个取舍会被如实摆出来,而不是硬凑一个"全都达标"的答案。


🧪 数据与验证

Demo 页面中的计算逻辑与仓库内 Python 引擎保持一致,并通过对拍脚本逐项校验。

营养数据来自麦当劳官方 MCP:

list-nutrition-foods

标注「实测」的数值来自真实账户与真实门店调用。

价格属于示例快照,实际下单时以对应门店信息为准。


如果它帮到了你,右上角点个 ⭐ Star 就行 —— 这个项目正在参赛,排行榜只看 Star 数。

Reviews (0)

No results found