内容
# 麦当劳周边情报站 (mcd-merch-intel)
> 麦当劳程序员节创意开发大赛参赛作品 · 基于麦当劳 MCP 构建
一个工具编排型 Skill:把用户关于麦当劳联名玩具、限定周边、套餐赠品的零散提问,转成一份**可溯源、有时效判定、带风险提示**的结构化官方情报。
它不做的事同样重要:不补网传爆料、不预测未官宣新品、不引导去已结束的活动兑换、不提供任何二手交易渠道。
---
## 项目介绍
### 解决什么问题
麦当劳周边(联名玩具、限定周边、套餐赠品)的信息天然分散在两个官方渠道里:
- **活动日历**:有活动和开售时间,但只返回非结构化文案,且**不写结束时间**
- **积分商城**:有周边本体和兑换规则,但**只覆盖积分兑换渠道**,门店加价购类周边查不到,且限量规则藏在卖点文案里
单看任意一个源都容易给出错误结论。常见翻车场景:
| 场景 | 单源会犯的错 | 本 Skill 的处理 |
|---|---|---|
| 用户问「还能换吗」 | 日历里活动还在排期就答「可以」 | 双源交叉 + 三态时效判定(即将上线/进行中/已结束) |
| 用户问「什么时候结束」 | 把活动最后出现的日期当成结束时间倒推 | 官方未写结束时间就如实标「官方未公开」,禁止倒推 |
| 用户问「限不限量」 | 只看结构化字段,漏掉卖点文案里的「每日限量 5 份」 | 强制逐条解析 `selling` 文案提取限量/限购 |
| 用户问的周边没数据 | 开始编造或给模糊承诺 | 固定兜底话术,禁止猜测 |
### 核心设计
1. **双源交叉校验**:活动日历(时效权威)+ 积分商城(周边本体),缺一不做单点结论
2. **三态时效判定**:`即将上线|进行中|已结束`,已结束一律不输出任何可兑换描述
3. **固定五模块输出**:周边名称 / 活动时效 / 获取规则 / 核心亮点 / 注意事项,缺项写「官方未公开」而非省略
4. **可执行自检**:自带 `scripts/check_output.py`,校验模块齐全性、违禁词、时效状态与时间一致性
### 目录结构
```
mcd-merch-intel/
├── SKILL.md # Skill 主流程与硬约束
├── MCP_INTEGRATION.md # MCP 调用说明
├── CONTEST_DECLARATION.md # 参赛声明(官方文件,内容未改动)
├── workbuddy.md # WorkBuddy 开发上下文
├── references/
│ └── mcp-tool-reference.md # MCP 参数、返回字段、清洗与冲突处理规则
├── assets/
│ └── output_template.md # 五模块输出模板
└── scripts/
└── check_output.py # 输出自检脚本
```
---
## 安装方法
### 前置条件
- 已申请到[麦当劳中国 MCP Token](https://github.com/M-China/mcd-mcp-server)
- 已在 WorkBuddy 中配置并启用 `mcd-mcp` 连接器
### 步骤
1. 把本仓库的 `mcd-merch-intel/` 目录整体复制到 WorkBuddy 技能目录:
```bash
# 用户级(所有项目可用)
cp -r mcd-merch-intel ~/.workbuddy/skills/
# 或项目级(团队共享)
cp -r mcd-merch-intel .workbuddy/skills/
```
2. 重启 WorkBuddy,或在技能列表中刷新。
3. 确认目录结构完整,`SKILL.md` 位于技能根目录:
```
~/.workbuddy/skills/mcd-merch-intel/SKILL.md
```
> 本 Skill 依赖 `mcp__mcd-mcp__*` 系列工具。未配置 MCP 连接器时,触发后会走「情报查询暂时异常」兜底话术,不会编造内容。
---
## 使用示例
### 示例一:问时效
**输入**
```
麦当劳汪苏泷周边是什么时候
```
**输出**
```
当前暂无该麦当劳周边的官方情报信息,可关注官方最新活动更新。
(两个官方数据源均无「汪苏泷」相关记录)
```
> 不因为「用户问了」就编一个时间出来。
### 示例二:问近期盘点
**输入**
```
帮我查下麦当劳近期有哪些周边
```
**输出**(节选)
```
【周边名称】麦当劳 X PEACEMINUSONE 联名徽章(周边第二弹)
【活动时效】开始时间:2026-10-15 10:45|结束时间:官方未公开|当前状态:即将上线
【获取规则】任意餐品消费加 39.9 元即可得|是否限量:限量,官方标注「限量珍藏」一套三枚|是否随机:官方未说明
【核心亮点】一套三枚,集结 MCD 爱心、小雏菊与经典薯条元素
【注意事项】⚠️ 限量珍藏,售完即止;⚠️ APP 专享积分抢先购 10:40 开抢;⚠️ 门店库存差异,不保证每家门店有货
```
### 示例三:自检脚本
```bash
$ python scripts/check_output.py --file answer.md
[错误] 出现违禁词「闲鱼」,禁止输出二手交易渠道信息
[错误] 活动已结束,但出现引导兑换话术「去门店兑换」,禁止引导用户去门店兑换
校验未通过,共 2 项错误
```
---
## 目标用户
- **麦当劳周边收藏者**:想知道这期送什么、什么时候开售、限不限量,不想被二手贩子和假消息带节奏
- **带娃家长**:关心开心乐园餐玩具的款式和随机规则,需要提前判断值不值得专门跑一趟
- **羊毛党 / 省钱党**:需要精确到「几点开抢」的加价购与积分抢先购时间差
- **做麦当劳相关内容创作者**:需要一份可溯源、不会出合规问题的官方情报底稿
---
## 硬约束
1. 全部信息溯源 MCP 返回,禁止补充网传爆料、禁止预测未来新品
2. 已结束活动必须明写已结束,禁止引导去门店兑换
3. 禁止输出二手购买渠道、代购、转卖等信息
4. 禁止对周边做主观好坏评价
5. 五个模块缺一不可,缺项写「官方未公开」而不是省略模块
6. MCP 未调用成功前,不得输出任何情报结论
---
## 声明
本项目为麦当劳程序员节创意开发大赛参赛作品,由参赛者独立开发,**非麦当劳官方产品**。
周边信息、活动时效与供应状态以麦当劳官方渠道的实时结果为准。