---
name: mcd-party-planner
description: 基于麦当劳 MCP 的聚会/团餐组织助手。当用户需要组织多人聚餐、团餐或麦当劳主题活动（派对/品鉴会）时，按「城市 + 关键词 + 人数 + 预算」生成多套真实计价的可比对方案、串联主题活动预约链路、并结合活动日历给出组织时机建议。触发词：团餐、聚餐、聚会、多人点餐、预算凑单、麦当劳派对、生日派对、品鉴会预约、活动日历。
---

# mcd-party-planner

用麦当劳 MCP 的真实数据，把「组织一场多人麦当劳聚餐」这件琐事压缩成一次对话。

## 前置条件

1. 已申请麦当劳 MCP Token，并在 WorkBuddy 中启用 `mcd-mcp` 连接器（配置见 `mcp-config.example.json`）；
2. 已克隆本仓库（仅用 Python 标准库，无需 pip 安装）；
3. 仓库根目录存在 `.env`：`MCD_MCP_TOKEN=你的Token`（该文件已被 `.gitignore` 排除）。

自检：`python -m src.cli selfcheck`
（若暂无 Token，可跳过前置条件，直接看快照：`python -m src.cli plan --city 成都 --keyword 春熙路
--headcount 8 --budget 400 --replay examples/2026-10-27-chengdu-8p-400-plan.json`）

## 使用流程

### 1. 团餐方案生成（最常用）

当用户给出「地点 + 人数 + 预算」时执行（参数为**城市**与**关键词**，不是详细地址）：

```bash
python -m src.cli plan --city 成都 --keyword 春熙路 --headcount 8 --budget 400
```

- 输出 ≥2 套方案（经济型 / 均衡型 / 丰盛型 × 多家门店），含合计、人均、是否超预算；
- 结尾给出推荐方案；
- 加 `--json` 得到结构化结果；`--store-limit` 控制比对门店数；
- 部分餐品限购或门店非营业时，会以提示形式跳过该组合，**不要编造价格**。

若用户未给出预算先询问；未给出人数则默认 2 人并提示。

### 2. 主题活动（派对 / 品鉴会）预约

```bash
python -m src.cli party --city 成都市 --headcount 6
```

- 自动发现派对类主题商品（spuId），串联 `城市 → 门店 → 日期 → 场次`；
- 默认 **dry_run**：只输出链路结果与可下单载荷，**不真实下单**；
- 只有用户明确要求下单时才追加 `--confirm`。

### 3. 活动日历组织建议

```bash
python -m src.cli calendar --city 成都 --keyword 春熙路
```

- 输出活动日历（往期 / 今日 / 未来）× 附近门店的组织建议；
- 顺带提示各门店企业团餐助餐服务（如保鲜速达、专人分餐）是否可用。

## 结果呈现约定

- 金额以 ¥ 为单位、保留两位小数（服务端返回单位为分，已换算）；
- 明确区分「预算内」与「超预算」；超预算方案也要给出以便对比，但推荐只从预算内选；
- 餐品、价格、供应状态以麦当劳官方渠道实时结果为准；涉及营养/热量时提示仅供参考，不构成专业建议。
- **需要发给用户一份可分享的结果时**，用 `--format md` 或 `--format html`：HTML 为单文件、
  内联样式、零外链，可直接落盘发送；`--json` 仍等价于 `--format json`，适合二次加工。
- **没有 Token 或只想演示效果时**，加 `--replay examples/<快照>.json` 回放仓库内真实录制快照
  （不发请求）；回放结果是录制那一刻的数据，务必说明「快照，非实时」。

## 安全与合规

- 不外发、不落盘任何用户地址与联系人信息，仅运行时内存使用；
- 禁止在对话、日志或文件中回显 MCP Token；
- 禁止将麦当劳品牌、产品与其他品牌进行对比或贬损；
- 429 报错时说明是官方限流（600 次/分钟），降低请求频率后重试。
