# 🍔 麦麦老友记 McMates **只给一个答案的麦当劳点餐 Skill**——它记得你点过的每一单,也顺带告诉你今天全国的巨无霸卖多少钱。 ![MCP](https://img.shields.io/badge/MCP-mcd--mcp-D9541E?logo=materialdesignicons&logoColor=white) ![Platform](https://img.shields.io/badge/平台-WorkBuddy_/_任意MCP客户端-3B6D11) ![指数覆盖](https://img.shields.io/badge/麦麦指数-21城_realtime-854F0B) ![License](https://img.shields.io/badge/License-MIT-378ADD) ![麦当劳程序员创意开发大赛](https://img.shields.io/badge/麦当劳程序员创意开发大赛-参赛作品-D9541E) ## 产品案例 [产品案例包](docs/product/README.md)包含 PRD、离线交互概念原型、可编辑架构与合成评测。由 AI 协作制作,不连接账户、不下单,不代表已上线 GUI 或真实业务实测结果。 ## 项目介绍 "中午吃什么",大概是当代人每天要做的最累的决定。麦当劳的菜单上一百多种商品,再加上会员券、随心配、限时活动——选择越多,下单越慢。等终于选好了,午饭时间也过去了一半。 麦麦老友记换了个思路:**你不用挑,老友替你挑。** 你只要说一句"今天中午吃啥,三十以内,多点蛋白",它就回你一个答案——为什么是它、营养达没达标、券后多少钱,三行说清。下面再补两个备选:一个是你点过很多次、上次还给过五星的"老朋友";一个是顺着你的口味、但你还没吃过的新品。它凭什么这么懂你?因为你在这里点过的每一单,它都记着。官方接口只能查到最近 10 单历史,老友记把这些订单存进你电脑本地的记忆银行,越用越懂你,越用越离不开。 每次推荐的最后,还会附赠一条"麦麦小知识"。《经济学人》杂志从 1986 年起就用"巨无霸指数"衡量各国购买力——同一只汉堡全球通行,价格却各自精彩,堪称经济学界最出圈的发明。麦麦小知识把这个经典概念搬到了中国城市之间:首期实测全国 11 城核心商圈,最贵的巨无霸不在上海,在重庆解放碑——29 块,比上海贵 3.5 块;北上广深反而齐刷刷站在便宜档。这个每天都在生长的价格档案,让你对自己花的每一块钱心里有数。 它解决三件事:**把"选不出来"变成"一个答案";把"用完即弃"变成"越用越懂你";把"稀里糊涂花钱"变成"明明白白消费"。** 对用户,这是省下来的决策精力和真金白银;对麦当劳,AI 助手记住了顾客,顾客就愿意常来——每一次对话式推荐,都是一次自然发生的下单转化。 ## 三层能力 **① 就它了 —— 唯一推荐** > "今天中午吃啥,30 以内,多点蛋白" > → 双吉士汉堡 + 麦辣鸡翅 2 块 + 鲜煮咖啡:蛋白 38g,券后 26.8 元,附三行理由。不满意?往下看。 **② 老朋友 & 尝个新 —— 两个备选,来自你的记忆** > · 老朋友:板烧鸡腿堡中套餐——你本月第 4 次点它,上次你给了五星 > · 尝个新:安格斯厚牛培根堡——在你最爱的牛肉簇里,你还没吃过 **③ 麦麦小知识 —— 每日一条,顺便看看全国行情** > 📊 《经济学人》1986 年发明了巨无霸指数来衡量各国购买力。我们把它搬进中国城市:首期实测 11 城,最贵的是重庆解放碑(29 元),不是上海。说"看指数"查完整榜单。 ## 架构 ```mermaid flowchart TD U["👤 用户: 今天中午吃啥, 30以内多点蛋白"] subgraph S["🤖 麦麦老友记 McMates"] direction LR D["📌 决策层
菜单→营养→配券→核价
唯一推荐"] M2[("💾 记忆层
本地记忆银行
老朋友&尝个新")] X["📈 指数层
21城巨无霸采样
麦麦小知识"] end M["麦当劳 MCP
mcp.mcd.cn"] U -->|"意图 + 条件"| S D <--> M X <--> M M2 --> D S -->|"🍔 就它了 + 备选 + 小知识"| U ``` **一次对话,三个时间维度各司其职**:决策层处理"现在",记忆层沉淀"过去",指数层给出"宏观"。Skill 引用的 MCP 工具编排见 [MCP_INTEGRATION.md](MCP_INTEGRATION.md)。
📊 首期麦麦巨无霸指数(2026-10-09 深夜实测 11 城) | 城市 | 巨无霸 | 中薯 | 合计 | |---|---|---|---| | 重庆(解放碑) | **29.0** | 14.5 | 43.5 | | 成都(春熙路) | 26.5 | 14.5 | 41.0 | | 西安(钟楼) | 26.5 | 14.5 | 41.0 | | 哈尔滨(中央大街) | 26.5 | 14.5 | 41.0 | | 郑州(二七商圈) | 26.5 | 14.5 | 41.0 | | 武汉(江汉路) | 26.5 | 14.0 | 40.5 | | 北京(三里屯) | 26.0 | 14.5 | 40.5 | | 上海(人民广场) | 25.5 | 13.5 | 39.0 | | 广州(天河) | 25.5 | 13.5 | 39.0 | | 深圳(罗湖口岸) | 25.5 | 13.5 | 39.0 | | 长沙(五一广场) | 25.5 | 13.5 | 39.0 | 三个反直觉发现:① 最贵的是重庆,不是北上广深;② 一线城市反而全军在便宜档;③ 同档城市价格完全一致(沪穗深长四城分毫不差)——麦当劳中国按城市档位分区定价的痕迹非常清晰。
## 三个设计原则 1. **只给一个答案**。选择本身就是成本,决策疲劳留给别人,省心留给你。 2. **记忆是资产**。官方接口只能查最近 10 单历史,老友记把你的每一次点餐存进本地记忆银行——订单、偏好、口味簇,越用越懂你。 3. **价格是知识**。每天采样全国门店真实价格(巨无霸指数),你会知道你所在的城市在全国排第几贵、什么时候买最划算。 ## 快速开始 **前置条件**:麦当劳中国大陆会员(手机号在 [open.mcd.cn/mcp](https://open.mcd.cn/mcp) 申请 MCP Token)+ 任意支持 MCP 的 AI 客户端(WorkBuddy / Cherry Studio / Cursor 等) 1. 配置 MCP(Token 替换后填入客户端): ```json { "mcpServers": { "mcd-mcp": { "type": "streamablehttp", "url": "https://mcp.mcd.cn", "headers": { "Authorization": "Bearer YOUR_MCP_TOKEN" } } } } ``` 2. 把本仓库放入你的 AI 客户端工作目录,加载 [SKILL.md](SKILL.md) 3. 对它说第一句话:"今天中午吃啥" ## 目标用户 - 每天为"吃什么"内耗的上班族和学生 - 想省钱但懒得研究优惠券规则的人 - 觉得"被记住偏好"是种温柔而不是冒犯的麦当劳常客 ## 隐私与安全 - 记忆库存于本地(`data/memory.json`);客户端与接口的数据处理边界见下文 - 领券、下单等写操作前必须经你逐项确认,绝不静默执行 - 指数采样只用只读接口,不触碰账户资产 ## 技术栈 - 麦当劳官方 MCP Server(`https://mcp.mcd.cn`),指令所引用工具的编排:详见 [MCP_INTEGRATION.md](MCP_INTEGRATION.md) - WorkBuddy(开发与运行环境) ## 参赛信息 - 赛事:[麦当劳程序员创意开发大赛](https://github.com/M-China/mcd-developer-innovation-challenge) - 赛期:2026-10-09 ~ 2026-10-25 ## License [MIT](LICENSE) ## 运行、数据与维护说明 本仓库是由 AI 客户端执行的 Skill 指令及 JSON 数据,没有独立程序、自动采样进程或 Python/npm 安装步骤。触发与输入输出见 [SKILL.md](SKILL.md);接口前提、调用顺序与失败处理见 [MCP_INTEGRATION.md](MCP_INTEGRATION.md)。客户端需能调用 MCP、读写本地工作目录;各客户端导入 Skill 和注入环境变量的方式可能不同。 [mcp-config.example.json](mcp-config.example.json) 使用 `${MCD_MCP_TOKEN}` 占位符,只有客户端支持环境变量展开时才会生效;否则在客户端的私密配置中安全注入,不能把真实 Token 提交到仓库。历史快照存于 `data/snapshots/`,是带日期的门店采样,不代表当前价格或全国所有门店。 `data/memory.json` 保存订单、评分、偏好和常用门店;投入个人使用前先检查现有内容并保留备份,个人运行副本不要推回公共仓库。所谓「本地记忆」指 JSON 文件的存储位置;AI 客户端可能将读取到的内容发送给模型服务商,官方接口也会处理请求所需数据,不能理解为整个工作流不联网。不要把完整记忆库传给搜索或无关接口;有删除需求时由用户决定备份、清理哪些记录,不因「只增不删」规则阻止用户管理个人数据。 维护验证:检查 Skill 中工具名与已连接服务实际暴露的能力一致,核对 JSON 可解析与相对链接;先用不消费的只读流程检查门店、菜单、价格单位和失败提示,再由用户决定是否授权写操作。仓库没有自动测试脚本。本次文档核对未连接账户、未验证实时接口,历史开发记录不代表当前服务可用性。