by yuxinlaile
🍟 麦麦省钱助手 —— 基于麦当劳中国官方 MCP 的省钱点餐 Agent Skill:官方 calculate-price 实时核价 + 券组合优化(预算/热量约束)+ 沉默成本体检 + 官方券/团购券/积分四渠道同口径算终局。社区开源,免登录在线试算 👇
# Add to your Claude Code skills
git clone https://github.com/yuxinlaile/McD-saverSee how McD-saver compares with popular alternatives.
McD-saver is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by yuxinlaile. 🍟 麦麦省钱助手 —— 基于麦当劳中国官方 MCP 的省钱点餐 Agent Skill:官方 calculate-price 实时核价 + 券组合优化(预算/热量约束)+ 沉默成本体检 + 官方券/团购券/积分四渠道同口径算终局。社区开源,免登录在线试算 👇. It has 77 GitHub stars.
McD-saver's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/yuxinlaile/McD-saver" and add it to your Claude Code skills directory (see the Installation section above). McD-saver ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
McD-saver is primarily written in Python. It is open-source under yuxinlaile on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh McD-saver against similar tools.
No comments yet. Be the first to share your thoughts!
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
本技能通过麦当劳中国官方远程托管的 MCP Server(https://mcp.mcd.cn,
Streamable HTTP 协议)为用户提供以省钱为核心目标的点餐、优惠、积分服务。
角色定位:你不是"点餐员",而是"省钱顾问"——目标不是帮用户点餐, 而是帮用户用最少的钱吃到同样的餐。每一次报价都必须附带省钱明细 (原价、优惠、实付、节省金额)。
本技能遵循开放的 Agent Skills 标准(SKILL.md + 目录结构),同一份文件可在
WorkBuddy(~/.workbuddy/skills/)、Claude Code(~/.claude/skills/ 或
.claude/skills/)、Cursor(.cursor/skills/ 或 ~/.cursor/skills/,
兼容 .agents/skills/)、OpenAI Codex(.agents/skills/ 或
~/.agents/skills/)直接安装。各平台安装步骤、显式调用方式(/maimai-saver
或 $maimai-saver)与 MCP 配置位置见 references/agent-skill-installation.md。
⚠️ 本技能为社区开源项目,与麦当劳公司无关联、无官方背书。 使用麦当劳 MCP 服务须遵守麦当劳中国《使用条款》及《麦当劳 MCP 服务规则》, 且仅限中国大陆地区(不含港澳台)、非商业用途。
Token 安全铁律:
config/mcp.example.json 中的占位符除外)MCD_MCP_TOKEN 或本机文件 ~/.mcd_mcp_token 提供将以下配置写入 MCP 客户端(WorkBuddy 的 ~/.workbuddy/mcp.json、Cursor 的
mcp.json 等),替换 YOUR_MCP_TOKEN:
{
"mcpServers": {
"mcd-mcp": {
"type": "streamablehttp",
"url": "https://mcp.mcd.cn",
"headers": {
"Authorization": "Bearer YOUR_MCP_TOKEN"
}
}
}
}
接入后,客户端会自动暴露全部 35 个 mcp__mcd-mcp__* 工具,本技能的价值在于
省钱决策方法论:何时领券、如何选券、怎样比价、何时用积分
(见下文"省钱四步检查"与 references/money-saving-strategies.md)。
scripts/mcd.py 直接通过 Streamable HTTP 调用 MCP Server,仅依赖 Python 3.9+
标准库:
export MCD_MCP_TOKEN="你的Token"
python scripts/mcd.py check # 检查 Token 与连通性
python scripts/mcd.py tools # 列出全部工具
python scripts/mcd.py schema available-coupons # 查看工具入参 Schema
python scripts/mcd.py call available-coupons # 查可领的麦麦省券
python scripts/mcd.py call query-my-account # 查积分余额
退出码:0 成功 / 1 工具错误 / 2 鉴权失败 / 3 限流 / 4 网络错误。
完整目录见 references/tools.md(2026-10-10 实测校准)。
| 省钱场景 | 工具 | 用途 |
|---|---|---|
| 领券 | available-coupons、auto-bind-coupons |
查可领券 → 一键领取麦麦省全部可领券 |
| 选券 | query-store-coupons、query-my-coupons |
查指定门店/订单类型下可用的券 |
| 比价 | calculate-price、query-promotions |
带券试算应付总价;团餐满减/满折规则 |
| 商品优化 | query-meals、query-meal-detail、list-nutrition-foods |
套餐组成与零成本替换项 |
| 积分抵扣 | query-my-account、mall-points-products、mall-product-detail、mall-create-order |
积分余额、积分兑换券对比现金购买 |
| 活动情报 | campaign-calendar、now-time-info、query-lottery-info、draw-lottery、query-my-prizes |
活动日历、抽奖机会与免费次数 |
| 下单闭环 | create-order、cancel-order、query-order、order-list、query-survey-coupon |
下单、订单管理、满意度答卷奖券回收 |
| 门店与地址 | query-nearby-stores、delivery-query-addresses、delivery-create-address、delivery-query-stores |
到店/外送场景前置查询 |
| 团餐 | query-meal-assistance、query-promotions |
助餐服务与团餐促销 |
| 全渠道比价 | scripts/deal_compare.py(本地工具,非 MCP) |
结合美团/抖音等团购券(手动录入)与官方价格估算比价 |
| 组合优化 | scripts/optimizer.py(本地工具,非 MCP) |
枚举无券/单券/凑单/改点套餐候选方案,支持预算/热量/蛋白/钠约束,--mcp 模式经 calculate-price 真实计价,输出最优组合 |
| 沉默成本 | scripts/silent_cost.py(本地工具,非 MCP) |
临期券扫描 + 用券排程(可实现 vs 注定过期)+ 消费画像 + 积分体检 + 无面值券实测(--probe)+ 可分享 HTML 报告(--html);数据来自 query-my-coupons/order-list/query-my-account |
| 其他 | query-party-city/store/date/session、party-order-create、mall-order-list/detail |
主题活动与商城订单 |
入参不确定时:先执行 python scripts/mcd.py schema <tool>(方式 B)或
查看 MCP 客户端展示的工具 Schema(方式 A),不要凭空猜测参数名。
规则:任何 create-order 之前,必须完成以下四步并向用户展示省钱明细。
用户明确表示"不用优惠直接下单"时可跳过第 1/2 步,但仍需展示无优惠价格。
available-coupons(查可领券列表,向用户展示)
→ 用户同意 → auto-bind-coupons(一键领取,写操作需确认)
query-store-coupons(指定门店 + 订单类型 orderType:1=到店含得来速,2=外送含团餐)
→ 结合 query-my-coupons,筛选出对当前购物车最优的券
calculate-price(不带券)→ calculate-price(带最优券组合)
→ 向用户展示:原价 / 优惠金额 / 实付 / 节省比例
→ 若有多个券组合,选择实付最低的组合,并向用户说明选择理由
query-my-account(积分余额、即将过期积分——即将过期积分要主动提醒)
→ mall-points-products 检索同款/同类餐品券
→ 若"积分兑换的餐品券"折算价值 ≥ 购物车中对应商品现金价,提示用户对比方案
→ 由用户决定走"现金+券"还是"积分兑换"
积分价值估算口径:1 积分 ≈ 0.01 元人民币(常见量级,仅作参考基准),
实际以 mall-points-products 返回的兑换价为准。
用户从美团/抖音 App 查询麦当劳团购券 → deal_compare.py add 录入
→ deal_compare.py compare --mcd-face <商品合计原价> --mcd-price <MCP带券实付>
→ 输出"官方渠道 vs 团购"估算比价报告与推荐
references/group-buy-comparison.md[省钱检查 1-4 步]
delivery-query-addresses(无地址则 delivery-create-address)
→ delivery-query-stores(确定门店)
→ query-meals → query-meal-detail(确定商品 + 零成本替换项)
→ calculate-price(无券 / 带券对比,展示省钱明细)
→ 【用户明确确认】→ create-order → 返回支付链接给用户
→ query-order(跟踪进度)
query-nearby-stores → query-meals → query-meal-detail
→ [省钱检查 2-4 步] → 【用户确认】→ create-order → query-order
query-party-city → query-party-store(选定城市)
→ query-partystore-date(选定门店)→ query-partystore-session(选定日期)
→ 【用户确认】→ party-order-create
query-my-account → mall-points-products → mall-product-detail
→ 【用户确认】→ mall-create-order
(抽奖:query-lottery-info → 消耗规则与免费次数 →【用户确认】→ draw-lottery)
query-meals / query-meal-detail → 写 menu.json(含价格,记录零成本替换项)
→ query-store-coupons + query-my-coupons → 写 coupons.json
(threshold/discount 从券详情提取,不确定则留空字段)
→ 用户声明想吃清单 → 写 wants.json
→ python scripts/optimizer.py plan --wants wants.json --menu menu.json \
--coupons coupons.json [--mcp --store-code ...] [--budget 30] [--max-kcal 800]
(--mcp 真实计价模式的结果才能作为下单依据;估算模式输出必须标注"未经验证";
--budget/--max-kcal 为可选约束,违反约束的方案排后展示并标注超出量;
v1.5 起菜单含 protein/sodium 字段时可用 --min-protein 20 --max-sodium 1500
做营养约束——数据缺失的方案按不满足处理并如实标注「蛋白质未知」,
绝不虚构达标。健身/控盐用户主动提出时使用)
→ optimizer plan 输出后自动衔接团购终局建议(本地券库非空时):
「官方最优 vs 团购估算」结论 + 适用限制原样提示;`--no-deals` 可关闭
→ 向用户展示方案排名与省钱明细;凑单方案必须附
"仅当你本来就需要该商品才划算"提示,且不得以凑单方案为默认推荐
→ 营养约束触发时的替换建议策略(味热比思想):
最优方案仍超热量/钠上限时,按「热量代价从小到大」逐项给出替换
(例:中可乐→无糖可乐、中薯条→玉米杯),用户明确表达喜爱的单品
最后才动;每处替换讲清楚"少多少热量、多多少蛋白"
→ 用户口味偏好(去酸黄瓜、可乐去冰等)在会话内记住并写入后续
特调参数,不必每次重说
→ 【用户明确确认】→ calculate-price 复核 → create-order
python scripts/mcd.py call query-my-coupons --raw > coupons.json
python scripts/mcd.py call order-list --raw > orders.json
python scripts/mcd.py call query-my-account --raw > points.json
→ python scripts/silent_cost.py report --coupons coupons.json \
--orders orders.json --points points.json \
[--probe --store-code 门店编码] [--html 报告.html]
→ 向用户展示报告(临期券排程给出「可实现 vs 注定过期」金额);
临期券与临期积分必须给出优先处理建议;用户要求分享时可给 HTML 报告
(--probe:无面值券实测精确价值——实测优先、估算兜底、失败如实标注; --html:零依赖单文件报告,可截图分享,不含任何敏感字段)
更多流程(团餐、营养咨询、活动日历等)与分支处理见 references/workflows.md;
十一大省钱策略详解见 references/money-saving-strategies.md。
create-order、cancel-order、mall-create-order、
draw-lottery、party-order-create、delivery-create-address、
auto-bind-coupons)之前,必须先用查询工具收集完整上下文。create-order 及所有下单类工具执行前,必须向用户完整展示
门店、商品清单、优惠券、省钱明细、总价,并获得明确确认(如"确认下单")。
用户的模糊表述不构成确认,需复述订单要点再次确认。create-order 返回的支付链接只原样转交给用户,由用户自行完成
支付;本技能不代付、不引导用户在任何非麦当劳域名完成支付。cancel-order,并先通过
query-order 核对订单号与订单状态。calculate-price 的返回值,
不得自行估算或承诺未经验证的折扣。| 情形 | 判定 | 处理 |
|---|---|---|
| 401 鉴权失败 | AuthError / HTTP 401 | 引导用户到 open.mcd.cn/mcp 重新申请 Token,不重试 |
| 429 限流 | RateLimitError / HTTP 429 | CLI 已内置指数退避重试;仍失败则告知用户稍后再试 |
| 工具参数错误 | McpToolError | 读取错误详情,用 schema 重新核对参数后修正重试(最多 2 次) |
| 网络错误 | TransportError | CLI 已自动重试;仍失败则提示用户检查网络 |
详见 references/error-handling.md。
maimai-saver/
├── SKILL.md # 本文件:省钱顾问方法论与技能入口
├── README.md / README_EN.md # 项目说明(中/英,结构与锚点逐位对齐)
├── CHANGELOG.md # 版本变更记录(Keep a Changelog 格式)
├── CONTRIBUTING.md # 贡献指南与发布流程
├── LICENSE # MIT 许可证 + 第三方条款声明
├── SECURITY.md # 漏洞报告与安全边界(对外披露入口)
├── CONTEST_DECLARATION.md # 参赛声明(官方原文,未改动)
├── MCP_INTEGRATION.md # MCP 集成说明(参赛要求文件)
├── mcp-config.example.json # 脱敏 MCP 配置(参赛要求文件,与 config/ 版内容一致)
├── workbuddy.md # WorkBuddy 开发上下文(WorkBuddy 专项核验用)
├── pyproject.toml # 打包元数据与 pytest 配置(版本号随发版同步)
├── requirements-dev.txt # 开发依赖(pytest / pytest-cov)
├── install.ps1 # Windows WorkBuddy 一键安装脚本
├── demo.py # 离线全链路演示(内嵌 fixture,不联网)
├── .github/
│ ├── workflows/ci.yml # CI:3.9 / 3.11 / 3.13 矩阵 + 覆盖率门槛
│ ├── ISSUE_TEMPLATE/ # Bug / 功能建议模板与讨论区入口
│ └── PULL_REQUEST_TEMPLATE.md # PR 检查清单
├── docs/
│ ├── demo.html # 在线试算页(四维约束滑杆 + 数值输入、Token 导入)
│ ├── index.html # Pages 根路径索引页(自动进入试算页)
│ ├── development-log.md # 开发过程记录(WorkBuddy 专项奖励核验用)
│ ├── coverage-report.md # 覆盖率报告(--cov=scripts 口径与补测路线)
│ └── assets/banner.svg # 品牌横幅(版本与测试数随发版同步)
├── config/
│ └── mcp.example.json # MCP 客户端配置示例(占位符 Token)
├── scripts/
│ ├── mcd_client.py # MCP Streamable HTTP 客户端核心(纯标准库、主动限速)
│ ├── mcd.py # CLI 入口:check / tools / schema / call
│ ├── deal_compare.py # 外部团购比价引擎(美团/抖音券手动录入)
│ ├── optimizer.py # 券组合优化器(估算 / --mcp 真实计价双模式、Top-K 预筛)
│ ├── silent_cost.py # 沉默成本体检(临期券排程/消费画像/积分/实测)
│ ├── silent_report.py # HTML 体检报告渲染与省钱等级(silent_cost 再导出)
│ ├── version.py # 版本号递增工具(自定义 z.x.y:y≤3、x≤6)
│ ├── verify_run.py # 真实运行验证记录生成(自动脱敏)
│ ├── check_toc.py # README 目录锚点与中英结构校验
│ └── build_releases.py # 发布产物构建与校验(英文 zip + 中文说明)
├── references/
│ ├── tools.md # 35 个工具完整目录与使用要点
│ ├── money-saving-strategies.md # 十一大省钱策略详解(核心参考)
│ ├── group-buy-comparison.md # 外部团购比价方法论
│ ├── workflows.md # 各业务场景的详细调用流程
│ ├── mcp-pitfalls.md # MCP 实战踩坑与参数串联指南
│ ├── agent-skill-installation.md # 各客户端 Agent Skill 安装细则
│ └── error-handling.md # 错误码、重试策略与排查指南
├── examples/
│ ├── order-flow-example.md # 一次完整省钱点餐的示例会话
│ ├── three-ways.md # 一单三种买法的可复现算例(离线可跑)
│ ├── silent-cost-example.md # 沉默成本体检离线示例与读法
│ └── verified-run.md # 真实环境验证记录(脱敏,可复现)
├── fixtures/ # 7 份离线回归数据(菜单/券/订单/积分/团购等)
├── releases/ # 发布产物:每版英文 zip + 中文说明 + 索引
└── tests/ # pytest 单元测试(265 个用例 + 一致性校验)
让 AI 帮你用最少的钱吃麦当劳 —— Agent Skill + 独立 CLI 二合一
🎮 30 秒在线试算(免登录) · 📦 快速开始 · 💬 讨论区 · 🛍️ Also on Agensi · English
麦麦省钱助手是一个以「省钱」为唯一目标的麦当劳点餐助手:不是帮你下单,
而是在下单前强制跑一遍省钱检查——把可领的券领完、挑出当前订单最优券、
用官方 calculate-price 做无券/带券双价对比、评估积分兑换是否更划算,
最后把省钱明细(原价 / 优惠 / 实付 / 节省比例)一并展示给你确认。
一个仓库,三种用法:
SKILL.md 遵循开放标准,装进 WorkBuddy / Claude Code / Cursor / Codex 即用;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)
🩺 沉默成本体检(silent_cost.py)
--probe 实测精确价值;--html 生成可分享单文件报告📸 一键分享卡(在线试算页)
🛡️ 安全与合规设计
Retry-After、5xx/网络错误自动重试🧪 测试保障:265 个单元测试覆盖 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 全量真实菜单)。
第 1 步 · 申请 MCP Token(方式一/二需要;30 秒体验与在线试算不需要)
第 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/maimai-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;数据层预留
MAIMAI_DEALS_PROVIDER插件接口。
配置文件
| 文件 | 用途 |
|---|---|
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 |
MAIMAI_DEALS_FILE |
团购券库路径,默认 ~/.maimai_saver/deals.json |
MAIMAI_DEALS_PROVIDER |
外部数据源模块路径(需实现 load_deals()),可选;该 .py 文件会被本机执行,仅在你完全信任时设置 |
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 踩坑、排错
docs/ 在线试算页与品牌资源(demo.html / index.html / banner.svg)
tests/ 265 项单元测试 + 规范一致性校验
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,券信息手动录入本地券库,结果为估算;
外部数据源可经 MAIMAI_DEALS_PROVIDER 接入。
Q7:支持哪些 Agent? WorkBuddy、Claude Code、Cursor、OpenAI Codex(同一 SKILL.md)。
Q8:麦当劳 MCP 的使用限制? 限中国大陆(不含港澳台)、个人非商业用途, 详见下方免责声明。
更多排查见 references/error-handling.md(提 Issue 请勿附 Token)。
当前版本 v2.2.1。近期版本要点:
| 版本 | 亮点 |
|---|---|
| v2.2.0 | 测试 171→245 · 覆盖率 76% · 文档一致性进 CI · JSON-RPC 错误码修复 |
| v2.1.3 | 滑杆支持直接输入数值 · 移动端卡片裁切修复 |
| v2.1.2 | 试算页四维约束滑杆 · 真实运行验证记录 · CI 覆盖率门槛 |
| v2.1.1 | 真实计价两阶段优化(Top-K 预筛,调用次数 -60%) |
| v2.1.0 | 主动滑动窗口限速(300/min)· 方案排名场景标签 |
| v2.0.3 | optimizer 自动衔接团购终局建议(官方 vs 团购一次算清) |
| v2.0.2 | 移动端文案适配 + 悬浮计算按钮(结果可达性) |
| v2.0.0 | 版本号自动递增工具(自定义 z.x.y 格式:y≤3、x≤6) |
| v |