DevTrendsDeveloper trends
Accent color

minxin88 /

mcd-meal-optimizer

一个跑在 WorkBuddy 上的开源 Skill:接麦当劳中国官方 MCP,拉门店真实菜单、真实营养数据、真实可用优惠券,再用本地 Python 脚本穷举所有搭配,算出「最省 / 最健康 / 性价比最高」三套能直接下单的方案。 它只依赖 Python 标准库,不需要 pip install,也不需要 MCP Token 就能先跑一遍离线示例看效果。 为什么做这个项目? 麦当劳的优惠券是满减、折扣、品类限定混着来的,单看每一张都懂,放在…

LanguagePythonDTData & operationsDTLifestyle & entertainmentDTAgent extensionDTMCP serviceDTSkill / pluginOriginalai-agentOriginalmcdonaldsOriginaloptimizationOriginalworkbuddy

About

一个跑在 WorkBuddy 上的开源 Skill:接麦当劳中国官方 MCP,拉门店真实菜单、真实营养数据、真实可用优惠券,再用本地 Python 脚本穷举所有搭配,算出「最省 / 最健康 / 性价比最高」三套能直接下单的方案。 它只依赖 Python 标准库,不需要 pip install,也不需要 MCP Token 就能先跑一遍离线示例看效果。 为什么做这个项目? 麦当劳的优惠券是满减、折扣、品类限定混着来的,单看每一张都懂,放在一起就不会算了。 举个真实的坑:手里有「满 40 减 10」和「汉堡 8.8 折」两张券。 买一个 25.5 元的汉堡:8.8 折省 3.06 元,满减用不了 → 折扣赢 买两个(51 元):8.8 折省 6.12 元,满减省 10 元 → 满减赢 再加一份 12 元薯条凑到 63 元:薯条白买了 —— 券已经封顶在减 10,多花的 12 元一分没省 也就是说,哪张券最省、要不要凑单,完全取决于你这单的构成,没有标准答案。 再叠上「预算 45 元、热量不超 1100 kcal、蛋白质要 35 克以上」这类约束,满足条件的组合轻松上千套,人手不可能算完。 它是怎么工作的? 核心设计是把「算」和「说」分开: 用户说人话 │ "两个人吃、50 块以内、别太油" ▼ 大模型理解意图 ──► 翻译成硬约束(预算/热量/蛋白质/忌口) │ ▼ 麦当劳 MCP 拉真实数据 ──► 门店菜单 / 营养 / 可用券 │ ▼ 本地 Python 脚本(无网络)──► 穷举全部组合 + 券最优匹配 │ ▼ 大模型组织成人话 ──► 三套方案 为什么不把枚举交给大模型? 上千套组合的枚举是纯数学问题,不是语言问题。交给大模型:慢、贵、会算错钱;交给脚本:几毫秒出结果、可复现、零 token 消耗。 功能与特点 真实数据:菜单、价格、营养、优惠券全部来自麦当劳官方 MCP 实时接口,不内置任何硬编码数据表 券最优匹配:对每个组合遍历所有券,按「这一单实际能减多少」挑最省的那张(一张订单只能用一张券,不能简单挑面额大的) 三种口味排序:最省(实付升序)/ 最健康(热量蛋白质偏离度)/ 性价比(每 1 元换到的蛋白质克数) 零依赖:Python 3.9+,只用标准库,无网络请求 先试后配:内置离线示例数据,python scripts/optimizemeal.py --demo 无需 Token 即可跑出结果 有边界:不主动下单、不自动领券;涉及花钱的操作一律先让用户确认门店、取餐方式和商品清单 实测 2026-10-12 在深圳北站站内一店(早餐时段)真实跑过一次:约束为预算 ≤ 45 元、热量 ≤ 1100 kcal、蛋白质 ≥ 35 g,共枚举出 127 套可行组合,最省方案实付 29.4 元。

Discovery history

  1. 阮一峰周刊·用户投稿

    Oct 12, 2026 · 1 observations

Discuss this product