让 AI 帮你用最少的钱吃麦当劳 —— Agent Skill + 独立 CLI 二合一
English · 🎮 30 秒在线试算(免登录) · 📦 快速开始 · 💬 讨论区 · 🛍️ Also on Agensi
麦麦省钱助手是一个以「省钱」为唯一目标的麦当劳点餐助手:不是帮你下单,
而是在下单前强制跑一遍省钱检查——把可领的券领完、挑出当前订单最优券、
用官方 calculate-price 做无券/带券双价对比、评估积分兑换是否更划算,
最后把省钱明细(原价 / 优惠 / 实付 / 节省比例)一并展示给你确认。
一个仓库,三种用法:
- Agent Skill:一份
SKILL.md遵循开放标准,装进 WorkBuddy / Claude Code / Cursor / Codex 即用; - 独立 CLI:
scripts/mcd.py直连官方 MCP Server(M-China/mcd-mcp-server 集成指南),无需任何客户端; - 在线试算页:纯前端免登录,支持一键导入真实菜单。
设计原则——本项目在同类工具普遍做法的基础上做了这些取舍:
| 常见做法 | 本项目的做法 | 带来的差别 |
|---|---|---|
| 只对比官方券 | 官方券 + 美团/抖音团购 + 积分 全渠道同口径估算「终局建议」 | 团购 App 里囤着的券也纳入决策 |
| 鼓励凑单用券 | 凑单以「不凑单」为基准,主动提示凑单陷阱 | 为用券而多买常常反而更贵 |
| 券是可用资源 | 券是有保质期的钱:用券排程算出「可实现 vs 注定过期」 | 名义 ¥150 的券包,可能只有 ¥60 用得上 |
| 无面值券靠估算 | 券码 + couponId 传 calculate-price 实测,失败如实标注 | 模型给不出真实价格,只能猜 |
| 营养靠口算 | 预算/热量/蛋白/钠四维约束,数据缺失按不满足处理并标注 | 健身控卡人群的硬需求 |
| 定时轮询领券 | claim 一次性交互确认,不含自动化与定时任务 |
降低风控与封号风险 |
| 菜单靠手抄 | 在线试算页一键导入真实菜单(粘贴 MCP 输出即全量替换) | 官方菜单全量同步的合规路径 |
设计内核:把官方 App、美团、抖音、积分商城四个渠道放在同一张桌子上 算终局,而不是只在单一渠道内找局部最优。
订单安全:用户明确确认前绝不创建订单;创建订单 ≠ 支付成功, 支付始终在麦当劳官方页面完成。
💰 省钱四步检查(核心方法论,Agent 自动执行)
- 领券前置 → 门店选券 → 无券/带券双价对比 → 积分抵扣评估
- 每一笔优惠金额必须来自官方工具实际返回值,绝不虚构
🧮 券组合优化器(optimizer.py)
- 确定性枚举「无券直点 / 单券 / 凑单达标 / 改点套餐」候选,逐方案计价排名
- 四维约束:
--budget预算 /--max-kcal热量 /--min-protein蛋白 /--max-sodium钠 - 违规方案排后并标注差多少,数据缺失如实标注「未知」——绝不静默过滤
📉 全渠道比价引擎(deal_compare.py)
- 美团/抖音团购券手动录入(平台无公开 API,不做爬虫),与官方价格同口径折算对比
- 输出「官方 vs 团购」终局建议,叠加规则与限制原样提示
🩺 沉默成本体检(silent_cost.py)
- 临期券扫描 + 用券排程(过期窗口 × 点单频率 →「可实现 vs 注定过期」)
- 消费画像(客单价/高频单品)+ 积分影子价格
- 无面值券
--probe实测精确价值;--html生成可分享单文件报告
📸 一键分享卡(在线试算页)
- 试算完成后点相机按钮,直接导出 1080×1350 的「省钱账单」图(无第三方依赖,Canvas 绘制)
- 图内含无券价、最优方案、实付与省下金额,发群里比截图更清楚
🛡️ 安全与合规设计
- Token 三通道解析(环境变量/文件/参数),绝不写入日志
- 401 快速失败、429 指数退避尊重
Retry-After、5xx/网络错误自动重试 - 范围边界:聚焦下单前的省钱决策——不包含爬虫、自动下单、无人值守定时领券等自动化能力
🧪 测试保障:329 个单元测试覆盖 SSE 解析、Token 解析、退避计算、比价决策、
组合优化与 CLI 退出码;demo.py 全链路输出被 tests/test_demo_pipeline.py
断言——demo 即回归测试。
git clone https://github.com/yuxinlaile/McD-saver.git
cd McD-saver
python demo.py # 离线全链路:领券→选券→比价→积分→排程→跨渠道或直接打开在线试算页(免登录, 31 项菜单 / 9 张券 / 11 条团购示例;支持 Token 快速导入——桌面生成命令、 手机端 Agent 粘贴或 menu.json 文件导入,同步麦当劳 App 全量真实菜单)。
运行要求:Python 3.9+(全部功能仅用标准库,无第三方运行时依赖);跑测试需
pip install -r requirements-dev.txt(pytest / pytest-cov)。
第 1 步 · 申请 MCP Token(方式一/二需要;30 秒体验与在线试算不需要)
- 打开 https://open.mcd.cn/mcp,右上角【登录】(手机号验证,限中国大陆)
- 【控制台】→【激活】→ 同意服务协议 → 复制 MCP Token
第 2 步 · 按场景选一种方式
| 方式 | 适合谁 | 怎么做 |
|---|---|---|
| 方式一 · MCP 客户端直连 | 用 WorkBuddy / Cursor / Claude Code 等客户端 | 把 config/mcp.example.json 中 ${MCD_MCP_TOKEN} 换成真实 Token,粘贴到客户端 MCP 设置(位置见配置说明)并启用 mcd-mcp |
| 方式二 · Agent Skill 安装 | 想让 Agent 自动触发省钱检查 | git clone https://github.com/yuxinlaile/McD-saver.git ~/.claude/skills/mcd-saver(Cursor: ~/.cursor/skills/ · Codex: ~/.agents/skills/ · WorkBuddy: ~/.workbuddy/skills/,Windows 可直接运行仓库内 install.ps1),另按方式一配置 MCP 连接;各平台细节见 agent-skill-installation.md |
| 方式三 · CLI 独立使用 | 脚本与调试,不装任何客户端 | export MCD_MCP_TOKEN="你的Token"(或写入 ~/.mcd_mcp_token 文件),然后 python scripts/mcd.py check 验证连通性 |
安装 Skill 后 Agent 会按 SKILL.md 自动执行四步检查,并遵守四条规范:
先查后改 / 下单必确认 / 省钱必检查 / 不虚构优惠。
| 命令 | 作用 |
|---|---|
python demo.py |
30 秒离线全链路演示(免 Token;--section 比价 看单段) |
python scripts/mcd.py check |
验证 Token 与服务器连通性 |
python scripts/mcd.py tools |
列出全部 35 个官方工具 |
python scripts/mcd.py schema <tool> |
查看指定工具的入参 JSON Schema |
python scripts/mcd.py call <tool> --arg k=v |
调用官方工具(--raw 原始输出) |
python scripts/mcd.py claim |
一键领取可领券(展示清单→确认→领取) |
python scripts/optimizer.py plan --wants w.json --menu m.json --coupons c.json [--mcp] |
券组合优化;--budget/--max-kcal/--min-protein/--max-sodium 四维约束;本地券库非空时自动输出团购终局建议(--no-deals 关闭) |
python scripts/deal_compare.py add/list/compare |
团购券录入与全渠道比价 |
python scripts/silent_cost.py report --coupons c.json --orders o.json --points p.json |
沉默成本体检;--probe 实测券价值 / --html 生成分享报告 |
CLI 退出码(mcd.py):0 成功 · 1 工具错误 · 2 鉴权失败 · 3 限流 · 4 网络错误
(deal_compare.py:0 成功 · 1 用法/数据错误 · 2 券库为空)
全局选项:--token、--url、--timeout(默认 30s)、--retries(默认 3)、--verbose。
claim 的安全边界:用户主动触发、单次执行、领取前必须 y 确认(
--yes仅供 脚本);不提供定时轮询与无人值守后台,以符合平台风控要求。
# 录入你在美团查到的团购券
python scripts/deal_compare.py add \
--platform meituan --title "麦当劳满40减14代金券" \
--price 25.9 --face 40 --channel store --time limited \
--valid-until 2026-11-30 --notes "每日限用1张"
# 与官方渠道(原价 48.5 / 带券实付 38.5)同口径对比
python scripts/deal_compare.py compare --mcd-face 48.5 --mcd-price 38.5比价结果为本地估算(团购平台无公开 API),方法论见 group-buy-comparison.md;数据层可用
--provider <模块路径>显式接入外部数据源(该 .py 会在本机执行,仅在完全信任时使用)。
配置文件
| 文件 | 用途 |
|---|---|
config/mcp.example.json |
MCP 客户端接入模板(${MCD_MCP_TOKEN} 占位符) |
mcp-config.example.json |
仓库根目录脱敏配置(参赛要求文件) |
环境变量
| 变量 | 说明 |
|---|---|
MCD_MCP_TOKEN |
MCP Token(优先级最高) |
MCD_MCP_TOKEN_FILE |
Token 文件路径,默认 ~/.mcd_mcp_token |
MCD_MCP_URL |
MCP Server 地址,默认 https://mcp.mcd.cn;非官方地址默认被拒绝(请求头带 Token),需显式加 --allow-non-official-url 才会放行并打印告警 |
MCD_DEALS_FILE |
团购券库路径,默认 ~/.mcd_saver/deals.json(旧名 MAIMAI_DEALS_FILE 仍兼容,优先级更低) |
MCD_DATA_DIR |
券库根目录,默认 ~/.mcd_saver(旧名 MAIMAI_DATA_DIR 仍兼容) |
MCP 客户端配置位置:WorkBuddy ~/.workbuddy/mcp.json · Cursor 设置 → Tools & MCP ·
Cherry Studio / Trae / VSCode / Kiro 各自 MCP 设置页 · Codex ~/.codex/config.toml 的
[mcp_servers.mcd-mcp] 段。
Token 安全:仅通过环境变量、Token 文件或 --token 参数提供;绝不写入仓库文件、
绝不出现在日志中;泄露后立即到 open.mcd.cn/mcp 重新申请。
scripts/ 核心实现:MCP 客户端、CLI、券组合优化器、沉默成本体检、版本与发布工具
references/ 方法论手册:工具目录、省钱策略、团购比价、场景工作流、MCP 踩坑、排错
config/ MCP 客户端配置示例(占位符 Token)
examples/ 示例会话、可复现算例与真实环境验证记录
docs/ 在线试算页与品牌资源(demo.html / index.html / banner.svg)
tests/ 329 项单元测试 + 规范一致性校验
fixtures/ 离线回归数据(菜单、券、订单、积分、商城、团购)
releases/ 发布产物:每版英文压缩包 + 中文说明 + 索引
完整文件级目录树见 SKILL.md。
| 业务域 | 工具 |
|---|---|
| 营养健康 | list-nutrition-foods |
| 地址与门店 | delivery-query-addresses delivery-create-address delivery-query-stores query-nearby-stores query-meal-assistance |
| 菜单与价格 | query-meals query-meal-detail calculate-price query-promotions |
| 点餐与订单 | create-order cancel-order query-order order-list query-survey-coupon |
| 优惠券 | query-store-coupons available-coupons auto-bind-coupons query-my-coupons |
| 积分与商城 | query-my-account mall-points-products mall-product-detail mall-create-order mall-order-list mall-order-detail |
| 积分抽奖 | query-lottery-info draw-lottery query-my-prizes |
| 主题活动 | query-party-city query-party-store query-partystore-date query-partystore-session party-order-create |
| 辅助 | now-time-info campaign-calendar |
完整说明见 references/tools.md;工作流详解见
references/workflows.md 与 SKILL.md;
接入实战踩坑(响应格式/单位/多态字段/时效性)见
references/mcp-pitfalls.md。
Q1:401 鉴权失败? Token 无效/过期/未提供。401 不重试,检查三个通道后到 open.mcd.cn/mcp 重新申请。
Q2:429 限流? 每 Token 每分钟 600 次。CLI 已内置指数退避(尊重 Retry-After);
仍失败请降低频率,检查是否在循环逐个调用 query-meal-detail。
Q3:tools 列表为空? 先 check 验证连通性;确认 --url / MCD_MCP_URL 未改错。
Q4:工具报参数错误? 不要猜参数名:python scripts/mcd.py schema <tool> 查权威入参;
编码类参数(storeCode、餐品编码、couponId)必须原样透传前序工具返回值。
Q5:optimizer 估算模式和 --mcp 有什么区别? 估算模式本地计算、标注「未经验证」,
仅用于快速比较;--mcp 模式逐方案走官方 calculate-price(含配送费与叠加规则),
结果才能作为下单依据。
Q6:比价数据从哪来? 美团/抖音无公开 API,券信息手动录入本地券库,结果为估算;
外部数据源可用 --provider <模块路径> 显式接入(该 .py 会在本机执行)。
Q7:支持哪些 Agent? WorkBuddy、Claude Code、Cursor、OpenAI Codex(同一 SKILL.md)。
Q8:麦当劳 MCP 的使用限制? 限中国大陆(不含港澳台)、个人非商业用途, 详见下方免责声明。
更多排查见 references/error-handling.md(提 Issue 请勿附 Token)。
当前版本 v2.5.2。最近 3 个版本(由 CHANGELOG 自动生成):
| 版本 | 亮点 |
|---|---|
| v2.5.2 | README 中英 Release 徽章链接指向不存在的 tag |
| v2.5.1 | CI 的发布产物校验必然失败 |
| v2.5.0 | 文档事实同步 |
完整变更记录见 CHANGELOG.md,各版本下载见 Releases。
如有问题或建议,欢迎在 讨论区留言, 或按场景选择:🐛 提交 Bug 报告 · 💡 提出功能建议 · 🤝 分享团购券数据(助力比价库更全)。 每一条反馈都会认真查看——这也是试算页持续按真实使用场景优化的依据。
欢迎 Issue / PR / Discussions。动手前请先读 CONTRIBUTING.md(开发环境、分支与提交规范、 发版流程),并遵守贡献者行为准则。
| 你可以做什么 | 从这里开始 |
|---|---|
| 报 Bug | 提交 Bug 报告——附复现命令与 --verbose 输出(请勿粘贴 Token) |
| 提需求 | 提交功能请求 |
| 改代码 | 认领 Issue → 从 main 拉分支 → 按 PR 模板 填写 → 提交前跑 python -m pytest tests/ |
| 补文档 / 算例 | references/workflows.md 补场景、examples/ 补离线算例;中英校对后跑 python scripts/check_toc.py |
提交前自查:python -m pytest tests/ 全过 · 无 Token 等敏感信息 · references/ 与
SKILL.md 同步 · CHANGELOG 补条目 · README 中英同步。
真实运行留档见 examples/verified-run.md;离线算例见 examples/three-ways.md(一单三种买法)与 examples/silent-cost-example.md(沉默成本体检读法)。
本项目为社区开源项目,与麦当劳公司及其关联方无任何隶属、合作或背书关系。 使用麦当劳 MCP 服务须遵守麦当劳中国《使用条款》及《麦当劳 MCP 服务规则》, 仅限中国大陆地区(不含港澳台)、个人非商业用途;省钱明细来自官方工具 实际返回值,不构成价格承诺。"McDonald's"、"麦当劳"、"麦乐送"、"麦麦"等商标 权利归属麦当劳公司。
本项目代码以 MIT 许可证发布;运行依赖麦当劳中国 MCP 服务及上游 集成指南仓库(M-China/mcd-mcp-server), 相关使用须遵守其服务条款与上游限制。
觉得有用的话,点个 ⭐ 让更多人看到:
🔍 搜索关键词
麦当劳省钱 优惠券管理 团购比价 美团抖音券 积分价值 Agent Skill MCP CLI 组合优化 净价值 沉默成本 营养约束 免登录试算 麦麦省钱助手 McD Saver 麦门 精算师 · McDonald's China, coupon optimizer, deal comparison, group-buy, points valuation, nutrition budget, silent cost audit, MCP agent skill, Claude, WorkBuddy, Cursor, Codex, online calculator