Skip to main content
Glama

中文 | English | 日本語

🍔 麦麦拼单 · mcd-team-feast

开团 → 实时同步 → 确认锁单。发一个链接,全组各点各的;它帮你挑最省的券、算好每人转多少,再出一张 git log 风账单卡。

示例(真实麦当劳 MCP 计价):5 人下午茶拼单,原价 ¥159.90 → 实付 ¥140.70,人均 ¥28.14。

GitHub stars Node McDonald's MCP Zero deps Tests Web License M-CODE

🌐 在线体验 · ⚡ 实时拼单 · 🚀 快速开始 · 🤖 AI Agent

↑ 三个浏览器并排录制:团长开团 → 两位成员打开链接加入 → 各点各的实时同步 → 团长锁单 → 最终分账(演示数据)

觉得好用的话,点个 ⭐ 就是对我们最大的鼓励。

⚡ 实时拼单:开团 → 实时同步 → 确认锁单

① 开团

② 实时同步

③ 确认锁单

填个团名,点「开启实时同步」,得到房间链接和二维码

成员填昵称加入;谁在线、谁选好了、谁还在选,所有人实时可见;团长看汇总和每人小计,可设截止倒计时

团长一键锁单,成员只读并看到最终分账;需要改可以解锁

  • 断网、切后台会自动重连;同步服务连不上时自动退回链接模式(数据全在链接里),界面上始终标明当前模式。

  • 服务器只存昵称和点单,房间 24 小时自动删除。服务端零依赖,源码在 server/,可以自己部署。

Related MCP server: Swiggy Syndicate

✨ 特性

⚡ 实时同步在线状态、选好了、截止倒计时、锁单

🎟 自动挑最优券枚举券组合逐一调 calculate-price,取实付最低

🧮 公平分账按原价占比分摊优惠,精确到分,总额守恒

🧾 三种账单卡git log / GitHub PR / 小票,字体内嵌,导出处处一致

🌐 网页即用中/英/日,深浅色跟随系统,微信长按保存

📋 一键收款消息“@小李 转 老王 ¥24.90”,复制即发

🤖 MCP Server + Skill一句话让 Agent 帮你拼单

🔍 feast blame钱包担当、热量担当(list-nutrition-foods)

🛡 绝不误下单下单要确认码;MCP Server 不暴露下单工具

🧾 真实账单卡

↑ 接入真实麦当劳 MCP,在上海南京东路食品一店餐厅实时计价生成(成员为化名,仅计价未下单)

git 提交记录

pr 合并请求

receipt 小票

✍️ 梗签名:每张卡片底部有一句程序员梗(按时段、人数、省钱比例、热量自动挑选),可 🎲 换一句、从列表选或自己写;CLI 用 --sign random / --sign '文案'。卡角附项目短链和二维码。

🛡 为什么放心

  • 从不自动下单:网页只做计价和分账;CLI 下单必须带 checkout 生成的确认码;MCP Server 根本没有下单工具。

  • Token 只在你本机:麦当劳 MCP Token 只从本机环境变量读取,不上传、不进仓库,网页版完全不需要 Token。

  • 只存昵称:实时房间只存团名、昵称和点了什么,不要手机号、不要登录;24 小时自动删除。

  • 可离线:不想用服务器就用链接模式,团的数据只在链接里。

  • 开源可审计:零依赖,前端、CLI、同步服务都在这个仓库。

🏗 架构

flowchart LR
  subgraph 用户
    W["🌐 网页<br/>GitHub Pages"]
    C["⌨️ CLI / MCP Server<br/>npx feast"]
    A["🤖 AI Agent"]
  end
  S["⚡ 同步服务<br/>自建 VPS · Node SSE<br/>(经 Cloudflare)"]
  M["🍔 麦当劳中国 MCP<br/>mcp.mcd.cn"]
  W <-- "房间状态 SSE / 操作 POST" --> S
  W -. "离线:链接模式" .- W
  A -- "stdio MCP" --> C
  C -- "门店 / 菜单 / 券 / 计价(只读)" --> M
  C -- "order --confirm(人工确认)" --> M

🚀 快速开始

网页:打开 jasonin2099.github.io/mcd-team-feast → 开团 → 开启实时同步 → 把链接发到群里。

命令行,30 秒体验(无需 Token):

npx github:Jasonin2099/mcd-team-feast demo --mock --theme all
  1. 到 麦当劳开放平台 登录并获取 MCP Token;

  2. 设置环境变量(切勿提交到仓库):

export MCD_MCP_TOKEN=你的token
alias feast="npx -y github:Jasonin2099/mcd-team-feast"
  1. 开一个真实的团:

feast stores 福州路 --city 上海   # 查门店,拿到门店编码
feast new --store 1450441 --near 福州路 --city 上海 --title "1024 程序员节下午茶" --by 老王
feast menu                      # 菜单随时段变化(早餐/正餐)
feast pick 小李 麦咖啡™美式
feast pick 阿杰 派 2
feast checkout --theme all      # 凑单 + 最优券 + 人均 + 账单卡
feast blame                     # 谁是今天的钱包/热量担当
feast order --confirm 3f9a1c    # 核对无误后才下单,返回支付链接

命令

说明

demo

一键演示:开团 → 5 人点餐 → 自动用券 → 分账 → 账单卡

stores [关键词] [--city 城市]

查询门店

new --store <编码> [--title] [--by]

开团并缓存菜单

menu / list

看菜单 / 看当前团

pick <名字> <餐品> [数量] / drop <名字>

报名点餐 / 删除某人的选择

checkout [--theme git|pr|receipt|all] [--out 目录]

结算并生成账单卡

blame / diff

程序员彩蛋:git blame 排行 / 拼单 diff

order --confirm <确认码>

真正下单(必须确认)

mcp / tools

以 MCP Server 运行 / 列出麦当劳 MCP 工具

所有命令都支持 --mock;团的状态保存在当前目录的 .feast.json。

🤖 接入 AI Agent

把 mcp-config.example.json 合并进你的 MCP 配置,或把 SKILL.md 放进 Agent 的 skills 目录,然后直接说:

“帮我们组拼一单麦当劳,福州路那家。老王要猪柳蛋麦满分和美式,小李要脆薯饼,算一下人均,出个 PR 风格的账单卡。”

{
  "mcpServers": {
    "mcd-team-feast": {
      "command": "npx",
      "args": ["-y", "github:Jasonin2099/mcd-team-feast", "mcp"],
      "env": { "MCD_MCP_TOKEN": "${MCD_MCP_TOKEN}" }
    }
  }
}

工具:feast_stores / feast_new / feast_menu / feast_pick / feast_drop / feast_list / feast_checkout / feast_blame,不提供下单工具。

用到的麦当劳 MCP 能力:query-nearby-stores · query-meals · query-meal-detail · query-store-coupons · calculate-price · create-order · now-time-info · list-nutrition-foods · available-coupons · campaign-calendar。详见 MCP_INTEGRATION.md。

零依赖 Node ≥18,一个文件:

PORT=8787 DATA=/var/lib/feast-sync/rooms.json ORIGINS=https://你的域名 node server/sync-server.js
  • systemd 单元与 nginx 配置在 server/deploy/;nginx 对 SSE 需 proxy_buffering off。

  • 网页加 ?sync=https://你的同步服务 即可指向你的服务器。

  • 详见 server/README.md(API、限流、权限、24h 过期)。

🗺 路线图

  • CLI + MCP Server + Skill,真实麦当劳 MCP 计价

  • 网页版:链接模式、三种账单卡、中/英/日、深浅色

  • 实时拼单:在线状态、截止倒计时、确认锁单 / 解锁、二维码

  • 账单卡字体内嵌,导出 PNG/SVG 各设备一致

  • CLI feast join <房间>,终端里加入实时房间

  • 网页接入真实门店菜单(需用户本地 Token 代理)

  • 按人设预算上限 / AA 以外的分账规则

❓ FAQ

🙏 致谢 & 贡献

欢迎 PR:新主题、新彩蛋命令、更聪明的分账规则,详见 CONTRIBUTING.md。npm test 跑测试(30 个用例,零依赖)。

📈 Star History

Star History Chart

⚠️ 声明

本项目为「麦当劳程序员节创意开发大赛」参赛作品,由参赛者独立开发,非麦当劳官方产品。--mock 与网页版中的餐品、价格与优惠券均为虚构示例;真实餐品信息、价格及供应状态以麦当劳官方渠道实时结果为准。热量数据仅供参考。详见 CONTEST_DECLARATION.md。MIT License。

⭐ 如果对你有帮助,请点个 Star!

也欢迎把账单卡晒到群里 —— 下一顿下午茶,也许就是你发起的。

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables any AI agent to discover, query, and order from a restaurant's storefront via MCP tools. It handles menu lookup, modifier validation, and enforces a mandatory confirmation gate before payment, replacing the human-operated phone line.
    -
  • A
    license
    B
    quality
    B
    maintenance
    Enables autonomous multi-person group food ordering on Swiggy by solving dietary, budget, and delivery-SLA constraints to pick a restaurant and allocate dishes, then consolidating the items into a single cart. It also computes exact proportional bill splits including taxes, fees, and discounts, and generates UPI payment links for reimbursement.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables an LLM to order Ele.me/Taobao flash-purchase delivery by automating the H5 site: choose a delivery address, search nearby shops, view menus, add items to a cart, and generate an order that stops at the confirmation or checkout page without ever paying. Login and final payment are performed manually by a human over noVNC, with a configurable order-amount ceiling and structured prompts when risk-control or sliders appear.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables ordering from McDonald's through an interactive UI: selecting stores, browsing menus, managing a cart, applying coupons, placing orders, paying, and tracking orders.
    213 npm
    MIT