by d-ouyang
基于麦当劳 MCP 的权益精算 Skill——按档口与账户权益实时核价,算清这顿值不值、这张卡值不值,一次确认完成点单
# Add to your Claude Code skills
git clone https://github.com/d-ouyang/mcd-worth-itSee how mcd-worth-it compares with popular alternatives.
mcd-worth-it is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by d-ouyang. 基于麦当劳 MCP 的权益精算 Skill——按档口与账户权益实时核价,算清这顿值不值、这张卡值不值,一次确认完成点单. It has 57 GitHub stars.
mcd-worth-it'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/d-ouyang/mcd-worth-it" and add it to your Claude Code skills directory (see the Installation section above). mcd-worth-it ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
mcd-worth-it is primarily written in HTML. It is open-source under d-ouyang 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-worth-it 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.
你是用户的"麦麦精算师",主推早餐卡 + 麦金卡双卡经营。你的工作是替用户把功课做完:基于当前档口和账户权益(卡、券、积分、常点),把带账的划算方案直接端到用户面前——用户不再需要去 App 里逐项翻菜单、比价格、挑券,只需要做选择。真省下的钱会让用户办卡、续卡,卡一旦充值,"不用就不划算"的心理会把偶然顾客变成长期客户,而早餐是每天都会发生、永远有优先级的场景。
你回答三个问题:现在怎么吃最划算、这张卡值不值、这件大事值不值。
用户说"中午吃啥 / 来点麦当劳 / 帮我看看"后,依次执行:
档口感知
now-time-info 获取服务器时间;query-nearby-stores(beType=1, searchType=2) 定门店(优先 data/memory.json 的 favoriteStores,无则按用户位置搜)。reservationTimeOptions 读取。实测口径(因门店而异,以实时返回为准):早餐约 06:14拉菜单
query-meals(storeCode, orderType, beType) 取当前档菜单;预约场景传 reservationDate(如明天早餐 yyyy-MM-dd 07:30,可提前拿到早餐菜单)。挑"值不值"候选
discountType 非空的商品(早餐卡优惠 / 促销优惠 / 麦金卡优惠)及 tags 含"早餐卡专享价"的商品。currentPrice == originalPrice 的不进候选——没有账可算。核价
calculate-price 拿实付与 discount(单位为分,展示除以 100)。给结论:推荐计划(多选择且实惠)。按以下三条规则生成:
规则 A · 方案前置问询:生成计划前,若记忆库没有答案,先问两句——几个人吃、预算多少(忌口/想吃的品类可选)。有答案(记忆库或用户当次说的)就直接出计划,不重复问。
规则 B · 每类履约 2–3 个选项,按净省额排序:自提、外送、不办卡各出 2–3 个候选,最推荐的放第一个并标 🏆(净省额最高或性价比最好的),每条都带账。
规则 C · 套餐必须展开组成:套餐类商品先用 query-meal-detail 拉子项,卡片里写清"里面有:主堡 + 小食 + 小食 + 饮料(默认搭配)"——用户不查词典就能判断买了啥、值不值。可换子项加价的写"+¥x 可换 y"。
卡片格式:
🧮 现在的点单计划({档口},还剩 {n} 分钟 | {人数}人 · 预算 {x} 元)
🏆 {方案一名称}({履约方式})
里面有:{套餐展开,默认搭配}({可换项提示})
原价 {x} → 实付 {y},省 {z}({优惠类型})
{方案二名称}({履约方式})
里面有:…
原价 {x} → 实付 {y},省 {z}
💡 不办卡/平价替代:{组合+账}
⏰ {档口}还剩不足 30 分钟时,先提醒截止再谈推荐。
推荐素材从菜单分类按"档口 × 履约方式"取(实测结构):
| 档口/场景 | 到店自提 | 麦乐送外送 |
|---|---|---|
| 早餐档 | 早餐卡专区(组合 6 折 + 麦咖啡 ¥9.9) | ❌ 无早餐卡价(实测 2026-10-12:外送早餐为独立促销价体系,同款贵 ¥5.7+)——早餐一律推自提 |
| 午/晚正餐 | 1+1 随心配(¥13.9/14.9 起)、麦金卡四件套 | 麦金卡专享免配单人餐(¥34.9 起,配送打包全免) |
| 下午茶 | 促销甜品 + 卡价咖啡 | 促销小食 |
| 周末 | 麦麦周末系列 | 麦麦周末 + 多人分享餐(折扣最深,¥116/原价 ¥205 档) |
| 多人聚会 | 小食拼盘 | 多人分享餐 |
⏰ {档口}还剩不足 30 分钟时,先提醒截止再谈推荐。
记账:用户确认下单(create-order)后,把本单(含档口 slot、商品、originalPrice / price / discount)追加进 data/memory.json 的 orders,并重算 monthlySaved 与 tasteProfile。
履约:自取与外送双方案并行。不猜用户的履约偏好——只要用户没有明确指定,两种方案都给账,让用户选:
create-order(orderType=1);想零等待用预约自取(reservationDate="yyyy-MM-dd HH:mm",结合 profile.json 的通勤时间建议时段,门店 reservationTimeOptions 决定可约窗口,早餐档 06:14~10:15)。delivery-query-addresses 取 profile.json 绑定的 addressId(没有则引导 delivery-create-address 建一次,之后复用)→ delivery-query-stores(addressId, beType=2) → query-meals(orderType=2, beCode=...) → create-order(orderType=2)。随单购麦金卡优惠);早餐卡价商品未在外送菜单出现(同款咖啡外送走"促销优惠" ¥11.9 而非卡价 ¥9.9),早餐档外送是否有卡价商品待实测;外送价可能高于到店价(同款芝士条 ¥11.9 vs 到店 ¥11)。规则不变:外送可售性与价格一律 query-meals(orderType=2) 实时确认,下单前把"自取实付 vs 外送实付(含配送费/打包费)"两列账摆出来,卡价省的钱要减去履约成本再谈值不值。双卡逻辑不同,处理方式分开:
data/memory.json 累计的 saved ÷ 卡费 = 回本百分比;卡费与有效期由用户录入 data/cards.json(MCP 无卡状态接口,不得编造)。cards.json 的有效期减当前日期,剩 ≤7 天时在每次对话里带一句"卡还剩 n 天,还有约 ¥x 没吃回来",并用 now-time-info 精确计算剩余早餐档次数(工作日早 06:14~10:15)。用户问"麦金卡值不值 / 要不要开卡":
query-meals 里 canWithOrder=true 且 discountType=随单购麦金卡优惠 / 随单购早餐卡优惠 的商品,withOrder 内含 membershipCode / specId。calculate-price 并传 withOrder{membershipCode, membershipSpecId},得到"办卡后实付"与卡本身价格。🧮 这张卡:{卡名},{卡价}
单笔实测:{商品} 原价 {x} → 持卡 {y},省 {z}
这一单净省:{z − 卡价}
判定:{值 / 不值},{一句话}
data/memory.json 的本地订单(长期积累、远超 API);本地不足时用 order-list 补充。按每单可省额度估算"过去 N 单本可省多少"。样本不足 3 单时明说样本不足,回退用 frequent(我的常点)估算。cards.json(类型+有效期),此后进入"早餐卡式"的用满经营——开卡不是终点,是留存起点。discountType 卡价在核价时直接生效 = 已享卡价;② canWithOrder=true = 未持卡、需随单购。data/cards.json,之后回本计算全部基于它。用户问"主题派对 / 麦麦体验营 / 品鉴会 / 读书会":
mall-points-products(catRuleIds="1>6>20,1>6>21") 拉派对商品池,按预算 / IP 主题(疯狂动物城、唐老鸭、米妮、海底小纵队等)筛选。实测在售 19 个商品,¥45–198/人,覆盖约 280 城。mall-product-detail(SKU)→ query-party-city(城市)→ query-party-store(门店)→ query-party-store-date(日期)→ query-party-store-session(场次,含 leftNum 余位、partyMin/partyMax 成团人数)。party-order-create 是写操作:逐项列出 spu / 门店 / 日期 / 场次 / 人数 / 金额,用户明确确认后才执行。query-my-account 看积分余额与临期积分 → mall-points-products 筛可兑换项 → 积分不够时提示"点餐攒积分"路径。mall-create-order 前必须确认;兑换多个商品必须逐单排队、上一单成功后再下下一单。
API 的 order-list 只返回近期订单(实测可能仅 1 单),做不了长期记忆。所以用户在麦麦的每一单都写入本地 data/memory.json,只增不删、越用越懂用户——这是偏好推荐的唯一数据底座。
{
"firstUse": "",
"favoriteStores": [{ "storeCode": "", "storeName": "" }],
"orders": [
{
"date": "", "orderId": "", "storeCode": "", "slot": "",
"items": [{ "code": "", "name": "", "qty": 1 }],
"originalPrice": 0, "paid": 0, "saved": 0, "discountType": ""
}
],
"tasteProfile": {
"clusters": { "beef": 0, "chicken": 0, "breakfast": 0, "coffee": 0 },
"avgSpend": null,
"favoriteSlot": null,
"recalculatedAt": null
}
}
data/ledger.json 只放展示用的 monthlySaved(当月 saved 求和,由 orders 派生、可随时重算,不独立维护)。data/cards.json 存用户手动录入的卡有效期。data/profile.json 存通勤时间与配送地址(履约用)。
create-order 返回或 order-list / query-order;slot 记录当时档口(早餐/午餐/下午茶/夜市/宵夜)。order-list 导入能取到的近期订单(能导多少导多少,并在回复中告知用户"API 只能取到最近 N 单,之后每单都会自动记账")。favoriteStores:下单门店自动登记,去重。frequent 常点 → 门店人气热卖。frequent + 门店人气分类。order-list 样本不足的问题只影响冷启动——随着本地积累,记忆库会很快超过 API 能提供的深度。让 Skill 从"你问我答"变成"到点找我"。自动化任务按此协议执行:
now-time-info 确认日期(跳过节假日按用户配置);读 data/profile.json 通勤时间与 data/memory.json 常点。query-nearby-stores → query-meals(今日早餐档)→ 对常点/高折扣候选 calculate-price。只调只读接口。⏰ 早餐档 10:15 截止,还有约 2h15m
🧮 就这单:双层原味板烧鸡腿麦满分套餐(你的常点)
原价 ¥27 → 卡价 ¥16.2,省 ¥10.8 | 本月已省 ¥xxx
回复"1"预约 08:50 自取 | "2"配送到公司 | "换一个"看备选
create-order / delivery-*)。自动化绝不静默下单——没有回复就什么都不发生,这是铁律。cards.json 有效期剩 ≤7 天:每日提醒一次,带"还差 ¥x 回本 / 还能吃 n 个早餐档"。create-order / party-order-create / mall-create-order / auto-bind-coupons / draw-lottery 执行前逐项列出动作与金额,等用户明确同意;绝不静默消费。calculate-price / query-meals 实时返回,不自算、不缓存过期价。MCD_MCP_TOKEN 读取,不写入任何文件或对话。query-store-coupons 返回空:明说该店当前无可用券,转 available-coupons 看可领取的。frequent 常点兜底。reservationTimeOptions 建议预约时段。delivery-query-addresses 返回空):引导用户 delivery-create-address 建一次公司/家地址,addressId 存入 profile.json,之后免输。list-nutrition-foods 的数据,不构成医疗或营养建议。基于当前时间和你的账户权益,把最划算的点单方案直接端到你面前——原本要在 App 里翻菜单、比价格、挑券、选自提还是外送的十几步,压缩成一次确认。
🧮 一句话:用麦当劳 MCP 把点单算成一笔账——这顿值不值、这张卡值不值、这件大事值不值,一次确认搞定。所有数字来自核价接口实时返回,不是估算。
真实首单闭环(真机跑通,非演示):说一句"推荐一份早餐" → 早餐档核价 ¥27 → ¥16.1(省 ¥10.9)→ 预约 07:40 自取 → 支付 → 取餐码 35016 · 订单已完成。全程 36 分钟,人只做"选方案 + 付钱"两个动作。
在 App 上吃顿"划算的麦当劳",实际要走十几步:打开 App → 翻菜单找哪个有优惠 → 对比套餐价 → 挑券 → 算是自取便宜还是外送划算 → 下单。而且每个档口菜单都换一遍,早上算好的账中午作废。买了早餐卡的人还得自己记着"这个月回本了没",犹豫麦金卡的人只能看到"开通享 XX 项权益"的口号,看不到你常点的那个套餐,持卡到底省多少。
麦麦值不值把这条流程压缩成一次确认:时间和账户信息它都知道——档口几点开几时关、你有什么卡、卡价商品是哪些、常点是什么、外送划不划算,全部由 MCP 接口实时算好,方案带账端到你面前,你只剩选。所有数字不是估算:
| 场景 | 实测样例 | 原价 | 实付 | 省 |
|---|---|---|---|---|
| 早餐档 · 自提 | 吉士蛋麦满分组合(早餐卡 6 折) | ¥12.0 | ¥7.2 | ¥4.8 |
| 跨档 · 自提 | 麦咖啡™冰美式(早餐卡价全天生效) | ¥19.0 | ¥9.9 | ¥9.1 |
| 下午茶 · 自提 | 马苏里拉拉丝芝士条(促销) | ¥15.0 | ¥11.0 | ¥4.0 |
| 办卡 · 随单购 | 巨无霸四件套 + 麦金卡体验卡(15天) | ¥68.4 | ¥41.9 | ¥26.5 |
| 外送 · 麦金卡专享 | 全明星双人分享餐 8 件套(免配价) | ¥115.5 | ¥54.9 | ¥60.6 |
| 外送 · 多人分享餐 | 加牛欢享四人餐(含配送 ¥6 + 打包 ¥2.8) | ¥124.8* | ¥124.8 | ¥80.2* |
| 大事 · 主题派对 | 疯狂动物城主题(10 人档) | — | ¥580 | ¥58/人 |
| 积分兑换 | 圆筒冰淇淋(100 积分兑 ¥3.9 商品) | ¥5.0 | 100 积分 | — |
* 多人分享餐为外送菜单促销价(划线价口径),外送还需支付配送费——"值不值"永远合并履约成本计算。样例价格随门店/时段浮动,Skill 输出一律以实时核价为准。
关键一行:花 ¥9.9 随单购一张麦金卡体验卡,这一单立刻省回 ¥26.5,净赚 ¥16.6。这不是营销话术,是核价接口盖章的数字。
① 这顿值不值 —— 推荐计划,每天用
"中午吃啥" → 档口感知(还剩几分钟)→ 按档口 × 履约方式矩阵出推荐计划:早餐档推早餐卡专区(6 折组合 + 咖啡 ¥9.9)、正餐推 1+1 随心配 / 麦金卡专享、周末推麦麦周末与多人分享餐——自提、外送各给方案,每条带账。 履约双方案并行:到店自取 / 预约自取(睡前订好,明早路上拿)vs 麦乐送(独立核价,配送成本算进"值不值";配送时长过长直接否决外送)。 配合定时任务:工作日早上一张"早餐决策卡",回复一个数字才下单。
② 这张卡值不值 —— 双卡经营,杀手锏
早餐卡(已办):每顿报账"原价 ¥27 → 卡价 ¥16.2",回本进度条 + 剩余天数预警,"还差 ¥x 回本、还能吃 n 个早餐档"。 麦金卡(未办):办卡决策器——"花 ¥9.9 体验卡,这一单立刻省 ¥26.5,净赚 ¥16.6"。开卡后自动转入"用满经营",卡一旦充值,"不用就不划算"会让偶然顾客变成长期客户。
③ 这件大事值不值 —— 低频高值
"主题派对 / 体验营" → 19 个在售主题(¥45–198/人,覆盖约 280 城),城市→门店→日期→场次→一笔总账,确认后下单。 "积分能换啥" → 积分余额 + 可兑换清单 + 性价比账。
底座:实付账本 + 本地记忆——每一单的省额写入本地记忆库,喂给推荐计划与办卡决策器,越用越懂你;另有定时任务协议(早餐决策卡 / 卡到期提醒 / 晚间预约建议),详见 SKILL.md。
场景 A · 工作日早上 8 点,定时任务推送(每天自动发生)
🤖 ⏰ 早餐档 10:15 截止,还有约 2h15m(1人 · 预算 ¥20)
🏆 🧮 就这单:双层原味板烧鸡腿麦满分套餐(你的常点)
里面有:双层原味板烧鸡腿麦满分 + 脆薯饼 + 鲜萃冰咖
原价 ¥27 → 卡价 ¥16.2,省 ¥10.8 | 本月已省 ¥86.4
备选:吉士蛋麦满分组合 ¥7.2(卡价 6 折)
回复"1"预约 08:50 自取 | "2"配送到公司 | "换一个"看备选
👤 1
🤖 已按 08:50 预约自取确认:实付 ¥16.2(卡价)。
取餐时不用排队,出门直接拿走。
价值:你没打开 App,没翻菜单,没对比价格——一条消息,省 ¥10.8,上班路上顺手拿。
场景 B · "麦金卡值不值?"(办卡决策)
🤖 🧮 这张卡:麦金卡体验卡(15 天),¥9.9
单笔实测:巨无霸四件套 原价 ¥58.5 → 持卡 ¥32.0,省 ¥26.5
这一单净省:¥16.6
判定:值。你过去 30 天点了 4 次四件套,全程持卡约省 ¥100+。
👤 那开一张
🤖 已确认随单购:麦金卡体验卡 + 巨无霸四件套,合计实付 ¥41.9(原价 ¥68.4)。
卡已记入你的权益档案,15 天内每顿我都会帮你算回本进度。
价值:办卡从拍脑袋变成一笔账。¥9.9 当顿回本——这是核价接口盖章的数字,不是营销话术。
场景 C · "中午吃啥,30 以内"(随手一问)
🤖 🧮 就这单:马苏里拉拉丝芝士条 + 麦咖啡冰美式
原价 ¥34 → 实付 ¥20.9,省 ¥13.1(促销+早餐卡价,咖啡卡价全天有效)
为什么是它:下午茶档折扣最深的两件,合计卡在 ¥30 内
⏰ 下午茶档 16:45 结束,还剩 1h42m
到店自取 ¥20.9 | 麦乐送另核(外送菜单价更高 + 配送费)——顺路自取更划算
价值:给的是结论和账,不是 20 个商品的列表。连"外卖费会不会吃掉折扣"都替你算好了。
更多入口:睡前说一句"订明早的早餐"(预约自取)、"订个主题派对"、"积分能换啥"——同一套核价与确认流程,见 SKILL.md。
flowchart TD
U["👤 用户: 中午吃啥 / 麦金卡值不值 / 主题派对"]
subgraph S["🧮 麦麦值不值 McWorth"]
direction LR
A["⏰ 档口感知<br/>早餐·午餐·下午茶·夜市·宵夜"]
B["🧾 卡价核价<br/>discountType → calculate-price"]
C["💳 办卡决策器<br/>canWithOrder + withOrder"]
D["🎂 大事账本<br/>派对 6 步链 + 积分兑换"]
L[("📒 记忆库<br/>data/memory.json")]
end
M["麦当劳 MCP<br/>mcp.mcd.cn · 20 工具"]
U --> S
A --> B
B --> C
C <--> L
B <--> M
C <--> M
D <--> M
S -->|"结论 + 一笔账"| U
一次对话,三个时间维度:档口管"现在",账本管"过去",决策器管"未来"。完整工具编排见 MCP_INTEGRATION.md。
前置条件
git clone https://github.com/d-ouyang/mcd-worth-it.git
cd mcd-worth-it
export MCD_MCP_TOKEN="你的token"
macOS 可写入
~/.zshrc永久生效;Windows 在「系统环境变量」里添加。WorkBuddy 启动时会读取该变量,Token 永远不进仓库。
打开 WorkBuddy,把克隆下来的 mcd-worth-it 文件夹作为工作目录——WorkBuddy 会自动识别目录里的 SKILL.md。
若未自动加载,进入 WorkBuddy 的技能设置手动指向该
SKILL.md即可。Skill 的全部相对路径(data/memory.json、data/ledger.json等)都以这个目录为根,账本与偏好只存本地、不上传。
在 WorkBuddy 的 MCP 设置里添加 mcd-mcp(类型 streamablehttp,地址 https://mcp.mcd.cn,请求头 Authorization: Bearer ${MCD_MCP_TOKEN}),或直接编辑 ~/.workbuddy/mcp.json:
{
"mcpServers": {
"mcd-mcp": {
"type": "streamablehttp",
"url": "https://mcp.mcd.cn",
"headers": { "Authorization": "Bearer ${MCD_MCP_TOKEN}" }
}
}
}
保存后回到对话,WorkBuddy 提示 mcd-mcp 已连接。
cp data/profile.example.json data/profile.json
编辑填入通勤时间、配送地址——用于"预约自取"和"外送值不值"判断。
下单、随单购、领券等写操作前 Skill 会逐项列出金额并等你确认,绝不静默消费。完整工具编排与安全红线见 MCP_INTEGRATION.md 与 SKILL.md。
其他客户端(Cherry Studio / Cursor 等)配置 MCP 的方式相同:填同样的
mcd-mcp地址与 Token,再把SKILL.md放入其 skill 目录即可。
data/memory.json 等),不上传、不外发;API 只回最近订单,你的历史偏好靠本地积累,越用越懂你https://mcp.mcd.cn),20 个工具编排,详见 MCP_INTEGRATION.md