hujjun/mcd-saver-strategist
麦当劳省钱点餐助手(麦门精算师)|麦当劳优惠券组合优化 Skill:拉取麦当劳菜单与全部可用优惠券,算出最省的点餐组合,巨无霸套餐 ¥47 → ¥21.9(省 53%)。McDonalds MCP(麦当劳 MCP)coupon optimizer · McDonalds China MCP Server · Agent Skill for WorkBuddy · 麦当劳程序员创意开发大赛参赛作品
这是什么
mcd-saver-strategist 是一个 WorkBuddy 技能,充当麦当劳中国的虚拟“价格计算器”。当用户询问类似 “我想要巨无霸套餐,怎么点最便宜?” 时,该技能会:
- 调用 麦当劳中国 MCP API 获取当前菜单、价格、营养数据以及用户账户可用的所有优惠券。
- 将该数据规范化为 JSON 请求。
- 运行 确定性组合优化器(
scripts/optimizer.py),枚举所有合法的商品和优惠券组合,并遵守 MCP 的叠加规则、预算或卡路里限制。 - 返回 前 N 个最低价且合规的组合,如果用户确认,则通过 MCP 创建订单。
这是一个竞赛参赛作品(麦当劳程序员创意开发竞赛),并非麦当劳官方产品。
快速安装
# 克隆仓库
git clone https://github.com/hujjun/mcd-saver-strategist.git
# 将技能复制到你的 WorkBuddy 技能目录
cp -r mcd-saver-strategist/skills/mcd-saver-strategist ~/.workbuddy/skills/
Windows 用户复制到 %USERPROFILE%\.workbuddy\skills\。
你还需要一个 MCP 令牌(参见 README 中的“申请麦当劳 MCP Token”部分),并通过 WorkBuddy 的 连接器 → 自定义连接器 → 配置 MCP 使用提供的 mcp-config.example.json 进行配置。
使用方法
- 在对话中:说类似 “我想吃巨无霸套餐,怎么点最便宜”。
- 代理会获取菜单和四向优惠券池,运行优化器并回复最便宜的可行组合(例如 “1+1 随心配 ¥12.9 + 可乐 ¥9 = ¥21.90,节省 ¥25.10”)。
- 你可以添加约束:
budget=30→ 显示 30 元以下的最佳餐点。max_calories=800→ 返回低卡路里、便宜的组合。delivery模式 → 包含配送费,并过滤仅限到店自取的优惠券。
- 当你确认时,技能会调用 MCP 的
calculate-price验证最终价格,然后调用create-order下单。
命令行演示(无需令牌)
仓库附带一个小型离线数据集,以便你本地尝试优化器:
cd skills/mcd-saver-strategist/scripts
python optimizer.py # 默认到店场景
python optimizer.py --json # 同时输出 JSON
python optimizer.py --mode delivery --fee 9 # 包含配送费
python optimizer.py --budget 25
python optimizer.py --max-calories 800
python selftest.py # 运行 19 个内置测试
技术亮点
| 特性 | 详情 |
|---|---|
| 确定性优化器 | 纯 Python,仅使用标准库;带剪枝的穷举搜索,遵守 MCP 的叠加规则(stackable:false 表示互斥)。 |
| 零外部依赖 | 可在 WorkBuddy 沙箱和静态 Web 演示(docs/index.html)中运行。 |
| MCP 集成 | 使用 MCP 端点获取菜单、优惠券、营养信息、价格验证和订单创建。 |
| 场景感知 | 优惠券带有 channel 字段(pickup、delivery、any)。优化器自动按所选场景过滤,并在需要时添加配送费。 |
| 预算/卡路里约束 | 简单的线性约束,优化器在找到全局最低价格的同时遵守这些约束。 |
| 自测套件 | selftest.py 包含 19 个断言,覆盖边缘情况(空优惠券列表、冲突优惠券等)。 |
| 在线交互式演示 | GitHub Pages 页面(docs/index.html)在浏览器中重现相同逻辑;用户可拖动滑块调整预算和卡路里,并立即看到结果。 |
谁可能觉得有用
- 学生或上班族,希望在不手动处理优惠券的情况下获得最便宜的麦当劳餐点。
- 健身/减肥爱好者,需要在预算内获得低卡路里选项。
- 团体,订购多份餐点并需要控制总花费。
- “优惠券猎人”,拥有大量优惠券并需要最优组合。
许可证
MIT(参见 LICENSE)。
相关
- 项目
- 项目
- 项目
- 项目