麦途 · mcd-mailu
别的工具告诉你「该点什么」。麦途做的是相反的事——读懂你已经点的,把它讲成一个故事。
麦当劳订单里最被低估的字段是门店名和时间。店名里藏着「机场」「火车站」「医院」「写字楼」,时间里藏着早班机、深夜加班和周末遛娃。麦途把这些线索收集起来,识别场景,串成轨迹。
核心红线(违反即产品死亡):卡片上的每一句话,都必须能回溯到至少一条真实订单。数据里没有的东西,一个字都不能写。
什么时候用
- 「我在麦当劳花了多少钱」「我最常点什么」
- 「生成我的麦当劳年度账单 / 足迹」
- 「看看我都在哪吃过麦当劳」
前置条件
环境变量 MCD_MCP_TOKEN(https://open.mcd.cn/mcp 手机号登录领取)。
没有 Token 时不要调用工具,引导领取,或提示 --demo 用内置样本看效果。
五步工作流
Step 1 · 拉单
order-list:餐食订单(一次返回全量,无分页参数,重度用户可能被服务端截断,属已知风险)mall-order-list:商城订单(支持lastId翻页,按hasNext取完为止)now-time-info:当前时间,所有「近 N 个月」表述的唯一基准
判据:
- 商城订单(买卡、兑券)与餐费分开统计,不得混入消费额。
- 工具失败就明说失败,不估算、不脑补。
Step 2 · 清洗归一
四条缺一不可:
- 状态过滤:只保留「订单已完成」,其余剔除并计数。
- 金额口径:
realTotalAmount为字符串、单位元,直接转 float。出现整数 ≥500 的量级异常时调money.flag_suspicious告警,人工核对,不自动换算。 - 去重:按
orderId去重。 - 时间:
createTime是下单时间,用money.parse_time归一。时段统计一律用下单时间。
Step 3 · 场景识别
scene_engine.py 对每单打标签,规则透明可查、可扩展:
| 场景 | 触发规则 |
|---|---|
| 出行慰藉 | 店名含「机场 / 火车站 / 高铁 / GTC」 |
| 早班开场 | 下单时间 05:00–10:30 |
| 深夜补给 | 下单时间 21:00–05:00 |
| 一单多点 | 同店 30 分钟内连续多单 |
| 新店打卡 | 该门店首次出现 |
| 老地方 | 同一门店第 3 次及以上 |
整单模式(画像层):
| 模式 | 规则 |
|---|---|
| 天涯路人 | 门店多样性 ≥0.8 且出行场景 ≥1 单 |
| 本地日常 | 同店占比 ≥0.6 |
| 早餐型 | 早餐场景占比 ≥0.5 |
| 深夜型 | 深夜场景占比 ≥0.4 |
判据:
- 规则全部写在
references/scene_rules.md,开源接受社区补充。这是本项目的护城河:词典越厚,认出的故事越多。 - 每条规则命中必须记录依据(店名关键词、时间、订单号),供叙事层引用。
Step 4 · 叙事生成
narrative.py 用模板 + 数字生成文案,分两种模式:
- 轨迹模式(样本 <10 单):不装统计。按时间顺序讲每一次,突出场景标签和连点细节。
- 画像模式(样本 ≥10 单):统计结论,比率必须带分母。
判据:
- 每个数字必须能指回订单号集合,写入
evidence。 - 首屏结论是一句话,不是「分析报告」。范例:「11 个月里你只吃了 4 次麦当劳——4 次都在路上。」
- 禁止形容词堆砌。「温暖」「治愈」这类词一行最多一个,且必须跟在数据后面,不许凭空抒情。
- 禁止脑补品类偏好:数据里没有的餐品(如可乐),文案里不得出现。
Step 5 · 出卡片
card_render.py 生成单文件 HTML 轨迹卡。
判据:
- 首屏是一条时间轴,不是柱状图。每单一个节点,节点带场景标签。4 单好看,80 单也好看。
- 单文件、零外链、零 JS 依赖、断网可开,方便截图转发。
- 卡片里不出现完整订单号、手机号、地址;门店名保留(它是故事的一部分)。
- 页脚带免责与隐私说明。
红线
- 不做任何写操作:
create-order、cancel-order、mall-create-order、party-order-create、draw-lottery一律不碰。 - 订单明细不落盘,全部内存计算,输出只有聚合结果与场景标签。
- fixtures 全部是人工构造的假数据,绝不提交真实订单导出。
- Token 只从环境变量读,不打印、不进文件、不进日志。
- 不编造数字、不编造概率、不编造品类偏好。
文件
SKILL.md 本文件 scripts/mcp_client.py MCP 客户端(仅标准库) scripts/probe.py 字段探测器(实测校准用) scripts/money.py 金额/时间归一化 scripts/adapters.py MCP 返回 → OrderRecord scripts/scene_engine.py 场景标签与模式识别(规则驱动) scripts/narrative.py 叙事生成(每句话带 evidence) scripts/card_render.py HTML 轨迹卡渲染 scripts/run.py 主流程,支持 --demo scripts/gen_fixture.py 演示数据生成器 fixtures/demo_orders.json 人工构造的脱敏样本 references/scene_rules.md 场景识别词典(开源接受补充) docs/index.html 离线演示页


