我分析了麦当劳 1024 大赛的 149 个参赛项目,然后做了一个没人做的方向

你的每一张券、每一分积分、每一次抽奖机会,都在倒计时。

而麦当劳 App 里,它们分散在五六个页面,没有任何一个界面把它们放在同一张时间轴上。

🌐 懒得装环境?在线看完整报告(无需 Token、无需 clone) :

https://ztword.github.io/mcd-expiry-ledger/report-sample.html

⭐ 项目地址:https://github.com/ztword/mcd-expiry-ledger

一、先说一个你可能没注意到的浪费

打开你的麦当劳 App,看看这几样东西:

你拥有的 什么时候消失
一堆「麦麦省」没领的券 券有有效期
账户里的积分 按周期清零
免费抽奖次数 按周期重置,过期作废
中过没领的奖品 领取窗口关闭 = 没中过
进行中的活动权益 活动结束立刻失效

这些时钟各自滴答,分散在五六个页面里。你永远是在它们过期之后,才想起来"哦,那张券我没用掉"。

麦当劳中国在 1024 程序员节开放了官方 MCP Server(33 个工具)。我拿到工具清单的第一个反应不是"能点什么",而是:这些工具里藏着一整个个人资产账户,却没有一个界面告诉你它们什么时候死。

于是做了这个项目:麦麦到期清单(mcd-expiry-ledger)------扫全账户 → 算出每项资产的死亡时间 → 按「再等就会损失多少」排序 → 给出一份照着做就行的清算计划。

二、赛前情报:我先把 149 个参赛项目分析了一遍

动手写代码之前,我做了一件更重要的事------把大赛仓库里已有的 149 个参赛 Issue 全部拉下来做了竞争分析。结论很直接:

方向 项目数 状态
省钱 / 凑单 / 精算 25+ 🔴 血海
营养 / 减脂 / 健身 15+ 🔴 血海
点餐助手(通用) 20+ 🔴 血海
人格测试 / Wrapped 盘点 15+ 🔴 血海
多人拼单 / 团建 8+ 🟠 拥挤
资产到期 / 清算 0 🟢 空白

同时我核对了官方 33 个 MCP 工具的使用情况,发现一批几乎无人调用的低频高价值工具:

  • query-lottery-info / query-my-prizes ------ 抽奖次数按周期重置、过期作废;中了没领 = 没中
  • available-coupons / auto-bind-coupons ------ 还没领到手里的券,是纯白嫖资产
  • mall-points-products / mall-order-list ------ 积分商城与已兑记录
  • order-list ------ 历史订单(能反推出你的真实点餐节奏)
  • query-nearby-stores ------ 附近门店(门店券离开门店即失效)
  • now-time-info ------ 服务器时间(到期计算的正确性依赖它)

所以我没做第 26 个省钱助手,而是做了唯一一个「资产到期清算」项目。

三、它长什么样

一次扫描,输出三样东西:

1. 一张倒计时表 (按 价值 × 紧迫度权重 排序)

复制代码
──────────────────────────────────────────────────────────────
  待清算总额    ¥643.70
  7天内将蒸发   ¥424.50
  资产总数      20 项(其中 1 项已过期)
──────────────────────────────────────────────────────────────
  #   资产                                   估值      紧迫度
  1   🎟️ 3 张待领券                      ¥   25.00   立刻
  2   🎰 免费抽奖 3 次                     ¥  117.00   本周
  3   🎟️ 麦辣鸡腿堡买一送一               ¥   21.50   72小时
  4   🪙 可用积分 4820                    ¥   48.20   两周内

2. 一张可分享的 HTML 报告(单文件、无 CDN、内联 SVG 图表)

倒计时条 + 构成环图 + 清算计划 + 工具溯源,截图即传播。

3. 一份照着做的清算计划(含每步该调用哪个 MCP 工具)

计划最后还会追加策略型条目------比如:

🧠 你 43% 的单发生在「晚餐」------ 优先核销该时段的券

这句建议来自 order-list 的历史订单分析。一张早餐券对只吃晚餐的人一文不值,时段对上了才算省钱。

四、三个我觉得值得一提的技术点

1. 零依赖的 MCP Streamable HTTP 客户端

没有用任何 SDK,用标准库 urllib 手写了 JSON-RPC over HTTP 客户端,包含:

  • SSE(text/event-stream)响应解析
  • Mcp-Session-Id 会话续传
  • 401 / 429 的语义化报错(官方限流 600 次/分钟)

为什么?评审和围观者 clone 下来就该直接能跑。 依赖安装是这个比赛里最沉默的劝退环节------pip install 都不要,Python 3.9+ 标准库直接跑。

2. now-time-info 时钟校准

到期判断跑在本地时钟上是个隐性 bug:一台比真实时间快 3 小时的机器,会把今晚 23:59 才过期的券标成"已过期 3 小时",整个排序全错。

所以每次扫描第一步是先问 MCP 服务器要时间,算出 clock_offset,所有 days_left 都基于校准后的时钟。报告里也会明确写出"本地时钟偏差 ±N 秒"。

3. 抽奖机会的期望值估值

怎么把"3 次免费抽奖"和"一张 21.5 元的券"放到同一张表上比大小?

用奖品池算期望值:Σ(奖品面值 × 中奖概率) × 剩余次数。这让抽奖这种"概率资产"第一次可以和其他资产排序。

五、30 秒看到效果(不需要 Token)

bash 复制代码
git clone https://github.com/ztword/mcd-expiry-ledger.git
cd mcd-expiry-ledger
python -m mcd_expiry_ledger demo

demo 模式跑在内置沙箱上(虚构数据、离线运行),不申请 Token、不联网也能看到完整链路。

不想 clone?在线看报告 :

https://ztword.github.io/mcd-expiry-ledger/report-sample.html

有 Token 之后(open.mcd.cn/mcp 免费申请):

bash 复制代码
export MCD_MCP_TOKEN=你的Token
python -m mcd_expiry_ledger scan                        # 完整扫描
python -m mcd_expiry_ledger scan --address "北京朝阳区建国路"   # 附带门店匹配
python -m mcd_expiry_ledger scan --markdown report.md   # 输出可粘贴的 Markdown

六、目前覆盖 12 个官方 MCP 工具

其中 9 个是大赛里多数项目没有覆盖的低频高价值工具:

query-my-coupons · query-store-coupons · available-coupons · auto-bind-coupons · query-my-account · query-lottery-info · query-my-prizes · mall-points-products · mall-order-list · campaign-calendar · order-list · query-nearby-stores · now-time-info

工程细节:15 个单元测试全绿;单工具失败自动降级不中断扫描;只读扫描,绝不静默调用任何产生真实消耗的写操作(领券/抽奖/兑换都只给建议,由你确认后执行)。

七、最后

这个项目从选题、竞争分析、架构到编码、文档,全程在 WorkBuddy 里完成------它承担的不是代码补全,而是"读 149 个 Issue 做竞争情报 → 找到空白方向 → 决定技术形态 → 写完全部代码"的完整链路。

比赛按 GitHub Star 排名,截数是 10 月 26 日。如果你也有一张忘了用的麦辣鸡腿堡券------

点个 Star,替它报仇。 ⭐

https://github.com/ztword/mcd-expiry-ledger


本文参与 1024 程序员节 · 麦当劳程序员创意开发大赛,参赛 Issue:M-China/mcd-developer-innovation-challenge#155

项目为个人参赛作品,仅调用麦当劳中国官方 MCP 接口,与麦当劳中国、腾讯 WorkBuddy 无隶属关系。

相关推荐
wordbaby4 分钟前
构建高效的智能体(Building Effective Agents)— Anthropic 官方全文精译与图解
人工智能
xsd202411185 分钟前
AI 短剧怎么做?
人工智能
m0_7156744316 分钟前
政务泛监测体系能力排行:AI 重塑监测边界,治理的颗粒度革命
大数据·网络·人工智能·安全·网络安全·政务
羲云网络28 分钟前
AI API 门户上线不难,难的是让用户完成第一次调用
人工智能·产品运营·api·开发者·acedatacloud
视觉小萌新44 分钟前
AI Class 3 · Chapter 2-3:函数、异常、文件读写+JSON / JSONL 读写(小白版)
人工智能·python·json
Zhao-Jichao1 小时前
AI Prompting for Everyone 课程笔记 - P21 总结 Conclusion
人工智能·笔记
阿里云大数据AI技术1 小时前
EMR Serverless StarRocks 全面支持 Paimon 2.0:构建多模态统一分析与检索
人工智能
电科_银尘1 小时前
【深度学习项目实战·11】损失函数与评价指标:让模型输出、标签与结果真正对应
人工智能·深度学习
RanceGru1 小时前
AI嵌入式7——瑞芯微RK3588s+RK1828 NPU 部署VLM模型(Qwen3-VL-2B)
人工智能
阿里云大数据AI技术2 小时前
云栖实录 | 具身智能前沿对话
人工智能