by cwmd2026
麦搭子 · 麦当劳 MCP Skill:一句话拼单、券与积分算最优、AA 分账、生成可分享海报(真实接口实测 ¥75.00)
# Add to your Claude Code skills
git clone https://github.com/cwmd2026/mcd-meal-butlerGuides for using ai agents skills like mcd-meal-butler.
See how mcd-meal-butler compares with popular alternatives.
mcd-meal-butler is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by cwmd2026. 麦搭子 · 麦当劳 MCP Skill:一句话拼单、券与积分算最优、AA 分账、生成可分享海报(真实接口实测 ¥75.00). It has 55 GitHub stars.
mcd-meal-butler'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/cwmd2026/mcd-meal-butler" and add it to your Claude Code skills directory (see the Installation section above). mcd-meal-butler ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
mcd-meal-butler is primarily written in Python. It is open-source under cwmd2026 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-meal-butler 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 calculate-price 的实时返回为准。
| 用途 | 工具 |
|---|---|
| 门店 | query-nearby-stores(到店/得来速)、delivery-query-stores(外送/团餐) |
| 拉菜单、匹配商品 | query-meals、query-meal-detail |
| 精算价格(核心) | calculate-price |
| 优惠券 | query-my-coupons、query-store-coupons、auto-bind-coupons |
| 积分 | query-my-account、mall-points-products、mall-product-detail |
| 活动 | campaign-calendar |
| 下单 | create-order |
若当前会话没有可用的麦当劳 MCP,先提示用户在【连接器】启用 mcd-mcp
(https://mcp.mcd.cn,Token 从 https://open.mcd.cn/mcp 申请),或让用户直接贴点单内容做离线演示。
query-nearby-stores:必传 beType(1-到店自提 / 5-得来速)+ searchType(1-收藏餐厅 / 2-按位置)。按位置搜索时传 city + keyword。返回 storeCode(beType=5 时还有 beCode,后续调用必传)。query-meals:必传 storeCode + orderType(1-到店 / 2-外送)+ beType(1/2/5/6)。到店自提(beType=1)不传 beCode;得来速/外送/团餐必传 beCode。data.categories[].meals[] 是分类→编码列表;data.meals 是 编码→详情 映射(name/currentPrice/originalPrice/discountType)。匹配商品 = 编码列表 ∩ 详情映射。calculate-price:items:[{productCode, quantity, couponId?, couponCode?, modification?}]。返回价格单位是"分",展示时 ÷100 转元。{"success":...} 开头的最后一段 JSON。从对话里抽出每个人的点单意图,结构化为:
[{ 说话人, 餐品名, 数量, 规格/忌口(如"不要酸瓜""可乐换无糖"), 原始文本 }, ...]
先定门店与场景(用户没说就问一句:到店自取 / 外送 / 得来速 / 团餐)。
调 query-nearby-stores(到店)或 delivery-query-stores(外送)拿 storeCode,
再调 query-meals(带 storeCode + orderType + beType)取当前可售菜单:
data.categories[].meals[] 给编码列表,data.meals 给编码→名称/价格详情。
把每个点单项落到真实商品码上;名字对不上的用别名容错;仍对不上(可能分时段不在售)就明确告诉用户没匹配到,不硬凑。需要看套餐可换项时调 query-meal-detail。
先取基线(不用任何优惠的实付,含配送费)作为"原价"口径。然后构造至少三套方案,逐套调 calculate-price 取实价:
| 方案 | 策略 | 依赖 |
|---|---|---|
| A | 纯现金 + 面额最大可用券(items[].couponId 挂券) |
query-my-coupons |
| B | 积分商城兑换等价商品 + 现金补差 | query-my-account + mall-points-products |
| C | 积分兑换部分 + 券点其余(组合,通常最省) | 组合 A/B |
先 auto-bind-coupons 领一下能领的券,避免"可领未领"遗漏。
积分消耗优先用在即将过期积分上(看 query-my-account 的 currentMothExpirePoint)。
比较各方案实付,取最低为最优方案。所有价格从"分"换算成"元"后再展示。
口径:节省金额 = 基线实付 − 本方案实付(含配送费影响)。估算的积分兑换价值要在文案里明确标注"估算"。
按每人餐品小计占比,把最优方案实付金额分到每个人,输出每人应付。金额合计必须守恒。
调 scripts/poster.py 生成一张 9:16 竖版、可保存转发的战报图(突出"一句话下单"的轻松体验)。
POSTER_JSON='{...}' POSTER_OUT=poster.png python scripts/poster.py
输入 JSON 字段:
| 字段 | 必填 | 说明 |
|---|---|---|
items |
✓ | [{speaker, name, spec, qty}] 本单明细 |
best |
✓ | {code, label, payable, original, savings, points} 最优方案 |
share |
✓ | [{speaker, amount}] AA 分账(金额需守恒) |
group_name |
场次名 / 副标题 | |
king |
麦门之王(缺省取 share[0]) | |
user_quote |
用户原话(海报"你说"板块,强烈建议传,效果最好) | |
ai_did |
它替你做的事(list[str])。必须传本次真实动作(如"匹配了你存的配送地址""核对了凌晨夜市库存");不传则用通用缺省文案 |
⚠️
ai_did与user_quote是海报的核心叙事("一句话 → 3 秒搞定")。若省略 user_quote,"你说"板块自动隐藏,版面仍成立。
字体:三级兜底,永不崩——汉仪雅酷黑(本机自装,视觉最佳)→ macOS 冬青黑体 Hiragino Sans GB → 华文黑体 STHeiti → Noto Sans CJK → PIL 默认。可用 MCD_FONT_LIGHT/REGULAR/BOLD/NUM 覆盖。别人 clone 无需装字体也能出图。
生成后用 present_files 把海报交给用户。
用户确认方案后,调 create-order 生成订单与支付链接,把链接原样给用户。
未经用户确认,绝不触发写操作(下单/兑换/领券外的破坏性动作)。
固定给这四块,清晰、可转发:
poster.png 预览(9:16 竖版,适合朋友圈/小红书)生成海报时要记得传 user_quote(用户原话)和 ai_did(本次真实动作清单)——这是海报叙事"一句话 → 3 秒搞定"的灵魂。
风格:简洁直接,数字说话,不啰嗦。
create-order、积分兑换只在用户明确确认后执行。群里报菜名 → 3 秒出最省方案 + AA 账单 + 一张能晒的开饭海报。 多人各自大白话点单,Agent 自动汇总、实价精算、分账出图——报价与麦当劳官方菜单分毫不差(¥75.00 实测)。 WorkBuddy Skill 形态,零服务器、零部署,clone 即用。
你:开个饭局,我们 3 个人:我巨无霸不要酸瓜,小李麦辣鸡腿堡可乐换无糖,小张两份薯条一杯可乐。
它:
┌─ 听懂 3 人点单(含 2 项口味定制)
├─ 匹配门店真实菜单 3 件商品
├─ calculate-price 实价精算:¥75.00(与菜单单价加总分毫不差)
├─ AA 分账:你 ¥36.5 / 小李 ¥25.0 / 小张 ¥13.5(金额守恒)
└─ 开饭海报 9:16 竖版已出图 → 直接发群里晒
🏆 本群麦当劳之王:你
2026-10-09 用真实 Token 打通全链路(上海黄浦·华旭国际大厦餐厅 1450713):
query-meals → 12 分类 64 商品(含现价/原价/时段供应)
calculate-price → 巨无霸三件套 ¥36.50 + 中薯条 ¥13.50 + 麦乐鸡经典中套餐 ¥25.00
返回 price = 7500(分)= ¥75.00,与菜单单价加总分毫不差
AA 分账 → 36.5 + 25.0 + 13.5 = 75.0 ✓ 金额守恒
海报 → scripts/poster.py 生成 1080×1480 PNG(上方样张即真实数据输出)
⚠️ 真实接口细节(Mock 里看不到的):价格单位是分(需 ÷100);
beType/searchType必传; 菜单分时段供应(凌晨麦辣/麦旋风不在售,匹配不到时如实告知、不硬凑)。
拼单点麦当劳,痛点就在这几处:
麦麦开饭官把这四件事一次做完,落点是一张愿意让人转发分享的开饭海报。
早期版本做成了 FastAPI + 网页 + 二维码分享的 Web 应用。但参赛项目要能被 clone 即用, 部署一台常驻服务器门槛太高;而且 Agent 本身就是 LLM,天然能把大白话点单解析成结构化订单, 不需要再配 LLM API。麦当劳 MCP 通过 WorkBuddy 连接器直接调用,无需自写客户端。
于是重构为 WorkBuddy Skill:一份 SKILL.md 指令 + 一个独立海报脚本,零服务器、零依赖(除 Pillow)。
| 能力 | 说明 |
|---|---|
| 🗣️ 大白话点单 | 随口说"板烧不要生菜""可乐换无糖",Agent 解析成结构化订单 |
| 🧮 最优价精算 | 自动构造多套方案(纯券 / 积分兑换 / 组合),以 MCP 实价为准选最省 |
| 👥 一键 AA 分账 | 按各人餐品金额占比,把优惠公平分摊到每个人 |
| 🖼️ 开饭海报 | 9:16 竖版战报图,全中文、环形饼图分账、含"本群麦当劳之王",可直接发朋友圈/小红书 |
| 🔗 一键下单 | 用户确认后输出 MCP 返回的支付链接 |
mcd-mcp(Streamable HTTP),把 mcp-config.example.json
中的 ${MCD_MCP_TOKEN} 替换为真实 Token 并启用。直接把 Skill 放进你的 ~/.workbuddy/skills/(用户级)或项目 .workbuddy/skills/(项目级),
然后跟 Agent 说:
"开个饭局,我们 5 个人:我巨无霸不要酸瓜,小李麦辣鸡腿堡可乐换无糖,小张两份薯条一杯可乐,老张开心乐园餐,小王麦旋风。"
Agent 会走完 解析 → 精算 → 分账 → 海报 → (可选)下单 全流程,最终给出四块内容: 本单明细 / 最优方案 / AA 分账 / 开饭海报。
仓库提供 Mock 数据样例(见 examples/mock_mcp_data.json 思路),
无 MCP 时 Agent 会用 Mock 跑通"精算 + 分账 + 海报"链路做演示,并明确标注"离线 Mock,价格非实时"。
pip install Pillow
echo '{
"group_name":"10.10 开饭 · 3人局",
"user_quote":"开个饭局,我们 3 个人:我巨无霸不要酸瓜,小李麦辣鸡腿堡可乐换无糖,小张两份薯条一杯可乐。",
"ai_did":["听懂了每人的口味定制","拉取了门店可售菜单","实时算出精确总价","给 3 人分好 AA 账单","出好这张可转发海报"],
"items":[{"speaker":"你","name":"巨无霸","spec":"不要酸瓜","qty":1},
{"speaker":"小李","name":"麦辣鸡腿堡","spec":"可乐换无糖","qty":1},
{"speaker":"小张","name":"中薯条","spec":"","qty":2}],
"best":{"code":"A","label":"纯现金","payable":84.0,"original":84.0,"savings":0.0,"points":0},
"share":[{"speaker":"小李","amount":34.0},{"speaker":"你","amount":27.0},{"speaker":"小张","amount":23.0}]
}' | python scripts/poster.py
# 生成 ./poster.png(9:16 竖版,适合朋友圈/小红书)
海报设计(v7):全中文紧凑竖版,叙事主线「点单,只需一句话 → 3 秒搞定」,含本单明细、麦门之王、环形饼图分账。突出方便快捷好玩,不主打价格。
字体无需自备:脚本三级兜底(汉仪雅酷黑 → macOS 冬青黑体 → 华文黑体 → Noto → PIL 默认),任何机器 clone 即跑。装了汉仪雅酷黑视觉最佳,可用 MCD_FONT_* 环境变量指定。
| 阶段 | 工具 |
|---|---|
| 门店与菜单 | query-nearby-stores、delivery-query-stores、query-meals、query-meal-detail |
| 券与积分 | query-my-coupons、query-store-coupons、auto-bind-coupons、query-my-account、mall-points-products、mall-product-detail |
| 精算与下单 | calculate-price、create-order |
| 活动 | campaign-calendar |
完整调用链路与业务价值见 MCP_INTEGRATION.md。
mcd-meal-butler-skill/
├── SKILL.md # ★ Skill 核心指令(Agent 读它执行全流程)
├── scripts/poster.py # 独立海报生成脚本(PIL,可单独跑)
├── assets/logo/logo.png # 项目 Logo
├── README.md
├── MCP_INTEGRATION.md
├── CONTEST_DECLARATION.md # 官方参赛声明(内容不可改动)
├── mcp-config.example.json # 脱敏 MCP 配置(环境变量占位)
├── workbuddy.md # WorkBuddy 开发上下文(联动奖励用)
├── LICENSE
└── .gitignore
个人非商业用途免费使用,详见 LICENSE 与 CONTEST_DECLARATION.md。
本项目为「麦当劳程序员创意开发大赛」(M-CODE)参赛作品,官方按 公开 Star 数排名(前 100 名入围奖励), Star 是最直接的支持方式。