给 1500 公里外的人点一份一样的麦当劳,约在同一分钟送到

0 阅读2分钟

麦当劳中国这个月开放了 MCP 接口,顺带办了个 1024 程序员节的开发者比赛,作品按 GitHub star 排名,10 月 25 号截止。我做了两个参赛,第一个是群里请客抽奖的「麦从天降」,这是第二个,「同桌的你」。

它解决的事很小:异地的两个人视频开着,但很少真的一起吃饭,你吃的时候 TA 还没点,TA 的到了你的凉了。

麦当劳 MCP 的外送下单有个 reservationDate,可以指定送达时间。那就简单了:下两份一样的,一份送我楼下,一份送 TA 楼下,两单带同一个时刻。到点视频一开,两张桌子就是一张。

同桌的你

怎么用

在 Claude Code 里说「周五晚七点半,和在成都的小 A 一起吃麦当劳,我请」。它会问清对方的收餐信息,然后跑 same-table plan:两边各找一家能送的麦当劳,挑一个两边菜单都有的,用官方 calculate-price 各核一次价,报出两份的总价和送达时间。我点头之后才保存计划。

same-table go 先下对方那单。我在麦当劳 App 里付掉,它再下我这单,再付一次。两单都付清,它生成一张邀请卡,HTML 和纯文本各一份,转发给 TA 就行。

卡角上有个印章,「天涯共此食」,从「海上生明月,天涯共此时」改了一个字。恋人、爸妈、老友三个版本的话不一样,爸妈那版是「妈,别省,我已经付过了」。

邀请卡示例

几条我不让它越过的线

  • 两单都发起人付。工具里没有让对方付或者 AA 的路径,SKILL.md 里写了用户要改也别帮。
  • 报价和下单分开。plan 只报价,带 --yes --expect-total 才存;go 下单前再核一次,比确认时贵了就停下来问。
  • 先下对方那单。对方那单没付清绝不下我的;每个计划一个锁文件,重跑不会重复下单。
  • 对方的手机号在日志、计划文件、邀请卡里全部打码。没有服务端,我也看不到任何人的数据。

没做完的

真实 Token、两个真实地址付款的彩排没跑。create-order 和 query-order 的返回字段、预约时间门店接不接受,这些是照文档写的,仓库里 docs/rehearsal-checklist.md 一条条列着。只读的部分录过真实接口:门店会返回可预约时段,核价的总价已经含配送费和打包费。

单包 TypeScript CLI,188 个测试,没有服务器。

仓库:github.com/Defiabell/m…

比赛按 star 排名,截止 10 月 25 号。觉得这件小事值得有人做的话,点一个。