# Mcd Saver Strategist

麦门省钱精算师。当用户在麦当劳（麦当劳/麦麦/金拱门/麦乐送/到店取餐）点餐，并希望"最省钱、凑满减、把优惠券用到极致、性价比最高、在预算内吃好"时使用；也适用于"帮我看看这些...

- Repository: https://github.com/hujjun/mcd-saver-strategist (1543 stars)
- Category: AI and agents
- License: MIT
- Last updated: 2026-10-19
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add hujjun/mcd-saver-strategist --skill mcd-saver-strategist -g -a claude-code -y`
Codex: `npx skills add hujjun/mcd-saver-strategist --skill mcd-saver-strategist -g -a codex -y`
Cursor: `npx skills add hujjun/mcd-saver-strategist --skill mcd-saver-strategist -g -a cursor -y`
Gemini CLI: `npx skills add hujjun/mcd-saver-strategist --skill mcd-saver-strategist -g -a gemini-cli -y`

## Description

麦门省钱精算师。当用户在麦当劳（麦当劳/麦麦/金拱门/麦乐送/到店取餐）点餐，并希望"最省钱、凑满减、把优惠券用到极致、性价比最高、在预算内吃好"时使用；也适用于"帮我看看这些券怎么用最划算""我想吃XX但想便宜点""30块钱能吃到什么"这类诉求。它通过麦当劳 MCP 拉取门店菜单、可用优惠券、营养信息，再用确定性组合优化算法穷举出总价最低的合规点餐方案，并在用户确认后下单。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 麦门省钱精算师

## 这个 Skill 解决什么问题

麦当劳的优惠体系是「菜单 × 优惠券 × 叠加规则」的组合爆炸问题：同一顿饭，
直选可能花 47 元，「1+1 随心配」+ 单点一杯饮料只要 21.9 元。人类用户懒得算，
大模型**算不准**（组合数多、券规则细、口算容易错）。

本 Skill 的分工非常明确：

- **MCP 负责「取数」**：菜单、价格、优惠券、营养、门店。
- **`scripts/optimizer.py` 负责「算」**：在组合空间里穷举，给出确定性最优解，
  并回答四个衍生问题, , 多目标选型、券体检、凑单建议、帕累托前沿。
- **你（Agent）负责「说」和「做」**：把结果讲成人话、给出推荐、经用户确认后下单。

> 核心纪律：**永远不要自己口算价格或用券组合**。所有金额必须来自
> `optimizer.py` 的输出或 MCP 的 `calculate-price` 返回值。

## 何时使用

触发场景举例：

- "我想吃巨无霸套餐，怎么点最便宜？"
- "我有这些券，帮我看看怎么用最划算"
- "30 块钱在麦当劳能吃到什么？"
- "减肥中，想吃麦当劳但热量控制在 800 大卡以内，还要便宜"
- "帮我在麦乐送点一份午餐，别超过 40"

## 工作流

### 第 0 步：确认前提（缺一不可）

开始前必须明确这几件事，缺哪个就向用户问哪个：

1. **就餐方式**：外送到家 / 到店取餐 / 堂食外带（决定用 `delivery-*` 还是 `query-nearby-stores`）。
2. **位置或门店**：外送需要配送地址，到店需要哪个门店。
3. **想吃的东西 / 约束**：想吃什么（可模糊）、预算上限、热量上限、几人吃。
4. **点餐目标**（可选）：默认「最省钱」；用户在意"吃全一点""低卡""少点几件"时，
   分别用 `objective: balanced / lightest / fewest`。不用反复追问，按语气判断即可。

### 第 1 步：通过 MCP 取数

按顺序调用（注意 600 次/分钟的限流）：

1. `now-time-info`, , 拿当前时间，判断早餐/正餐时段与活动。
2. **门店**
   - 到店：`query-nearby-stores` 定位门店。
   - 外送：`delivery-query-addresses` 选地址 → `delivery-query-stores` 查可配送门店。
   - 团餐：额外 `query-meal-assistance`。
3. `query-meals`, , 拉当前门店可售菜单（分类、编码、价格、标签）。
4. `query-meal-detail`, , 对候选套餐拉详情，确认可选替换项。
5. **优惠券（四路都要查，缺一会漏钱）**
   - `available-coupons`, , 麦麦省当前可领券。
   - `auto-bind-coupons`, , 一键领取麦麦省全部可用券（**必须调用**，否则券池不全）。
   - `query-my-coupons`, , 我账户下已有的券。
   - `query-store-coupons`, , 当前门店专属券。
6. `list-nutrition-foods`, , 当用户有热量/营养约束时拉取。

### 第 2 步：归一化数据并调用优化器

把 MCP 结果整理成 `optimizer.py` 的输入契约（见
[`references/mcp-tools.md`](references/mcp-tools.md) 的「字段映射表」），写到临时目录：

The rest: https://github.com/hujjun/mcd-saver-strategist/blob/HEAD/skills/mcd-saver-strategist/SKILL.md
