麦仔 1024
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@麦仔 1024读取我的麦当劳订单,抽一个麦仔 1024 头像"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
麦仔 1024
用你的麦当劳订单,抽一枚限量像素朋克食物头像
一共 1024 枚 · 一笔订单换一次抽卡 · 吃得越多越容易出稀有
在线试玩(30 秒,免登录) · 快速开始 · 在 WorkBuddy 里玩 · 常见问题
麦仔 1024 是一套共 1024 枚 的食物拟人像素头像(10 月 24 日程序员节)。每枚的样子在开抽前就由固定种子定好,和链上 PFP 头像系列一样:编号唯一、属性组合唯一、抽走一枚就少一枚。
它通过麦当劳中国官方 MCP 读取你自己的订单:
一笔已完成订单 = 一张抽卡券。 取消、未支付的订单不算,同一笔订单只能用一次。
吃得越多,越容易出稀有。 最近实付和单数算成「幸运值」,稀有、史诗、传说、隐藏款的权重跟着变高。
常吃什么,就容易抽到谁。 薯条点得多,薯条仔的权重就高;常点汉堡,汉堡仔就多。
什么时候吃,也有影响。 常在夜里点单的人,更容易抽到「夜宵深蓝」背景。
抽卡前公示概率。 每一档你的实际概率和不加成时的概率并排列出来,抽完的档位归零。
麦当劳程序员节创意开发大赛的非官方参赛作品。抽卡免费,不收钱、不连钱包、不上链、不能转让,头像没有现金价值。

目录
Related MCP server: mcd-order
四种玩法
玩法 | 适合 | 需要什么 |
先看看好不好玩 | 一个浏览器。用两个示例会员抽,不需要 Token | |
本地网页 | 用自己的订单抽 | Node.js 20+ 和麦当劳 MCP Token |
在 AI 对话里说一句「抽麦仔」 | WorkBuddy 和 mcd-mcp 连接器 | |
喜欢终端,或者想接进别的工具 | Node.js 20+ 和 |
四种玩法用的是同一套代码:同一个 1024 枚系列、同一套概率、同一份像素画。
快速开始
30 秒在线试玩
打开 https://shellteo.github.io/mcd-nft/,点「汉堡控」或「薯条夜猫子」,再点「抽一次」。
在线版完全在浏览器里运行,不连麦当劳的服务器。每位访客有自己的一池 1024 枚,结果只留在这个页面里。
用自己的订单
需要 Node.js 20 或更新版本,不需要安装依赖。
git clone https://github.com/shellteo/mcd-nft.git
cd mcd-nft
npm start浏览器打开
http://127.0.0.1:8787。在 open.mcd.cn/mcp 登录并申请 MCP Token,贴进输入框,点「读取我的订单」。
看看自己的幸运值和各档概率,点「抽一次」。
抽到的头像可以下载 SVG 和元数据 JSON。
服务只监听本机。Token 只用来读一次订单,不会写进文件。
六个角色
每个角色下面写的是给它加成的餐品。
每枚头像是一张 40 × 40 的像素画,风格参考链上朋克头像:半身像、纯色背景、面无表情,再配上莫西干、反戴帽、眼罩、耳钉和金链子。每枚由 8 层叠成:角色、背景、配色、头饰、眼睛、嘴巴、脸部、配件。一共 60 多个属性,每个属性有最低档位,例如「薯条王冠」「激光眼」「钻石大金链」只出现在传说款以上。
稀有度和概率
百分比是不加成时的概率。普通款只有基础属性;稀有款带 1 个稀有属性,史诗款带 2 个史诗属性,传说款带 3 个传说属性,所以越稀有,样子越不一样。
隐藏款是 4 枚手绘的独一无二款,上图是其中的 #1024「程序员节 · 键帽汉堡」,固定在最后一号。另外 3 枚不剧透。
抽卡怎么算
每枚还没被抽走的头像都有一个权重,抽卡时按权重随机挑一枚:
权重 = 档位加成 × 角色加成 × 时段加成
幸运值 L = 0.8 × min(1, 最近实付 / 500 元) + 0.2 × min(1, 完成单数 / 10)
档位加成 = 普通 1,稀有 1 + 1.5L,史诗 1 + 4L,传说 1 + 8L,隐藏 1 + 12L
角色加成 = 1 + 3 × 这类餐品占你点过的餐品的比例
时段加成 = 背景和你最常点单的时段一致时 ×1.6举个例子:示例会员「薯条夜猫子」最近实付 ¥561.50、9 单,幸运值 98。传说款的概率从不加成时的 1.95% 变成 8.59%,薯条仔的权重是 ×2.71。
页面会在抽卡前算好并列出你在每个档位的实际概率。一个档位抽完以后,它的概率对所有人都变成 0。随机数来自 WebCrypto 的 crypto.getRandomValues。
在 WorkBuddy 里玩
麦仔 1024 自带一个 WorkBuddy Skill:.workbuddy/skills/maizai-1024/SKILL.md。装好以后直接在对话里说「帮我抽一个麦仔」,WorkBuddy 会用 mcd-mcp 连接器读你的订单,再调用本项目的抽卡脚本,把抽到的像素头像发回对话里。Token 只放在 WorkBuddy 的连接器配置里,本项目的代码碰不到。
按官方说明在 WorkBuddy 里启用 mcd-mcp 连接器:「专家·技能·连接器 → 连接器 → 自定义连接器 → 配置 MCP」,地址
https://mcp.mcd.cn,填入自己的 Token。用 WorkBuddy 打开本项目文件夹,项目里的
.workbuddy/skills/会作为项目级 Skill 生效。也可以把maizai-1024整个文件夹复制到~/.workbuddy/skills/全局使用,这时要告诉 WorkBuddy 项目放在哪里。在对话里说「抽麦仔」「看看我的出货概率」或「我抽到过哪些麦仔」。
Skill 只调用只读工具 order-list、query-order、query-my-account,不会下单、领券或兑换积分。
WorkBuddy 版本之间 Skill 的目录约定可能不同,以你安装的版本的说明为准。
命令行抽卡
Skill 背后是一个不依赖 WorkBuddy 的脚本,也可以自己在终端里用。把 mcd-mcp 的 order-list 原始返回存成 JSON 文件,然后:
命令 | 作用 |
| 看幸运值、抽卡券和各档概率 |
| 抽 3 次(最多 10 次) |
| 看这批订单抽到过哪些 |
| 用示例会员抽,不需要订单文件 |
抽到的头像会存成 PNG、SVG 和元数据 JSON,放在 maizai-out/。加 --json 输出机器可读的结果,--account <文件> 可以带上 query-my-account 的返回。
命令行和网页共用同一个账本 data/registry.json,同一张抽卡券在哪边都只能用一次。
限量怎么保证
整套 1024 枚由固定种子 maizai-1024/v1 生成,每次启动都一样。抽卡记录写在 data/registry.json:一个编号只能被抽一次,一张抽卡券(订单的哈希)只能用一次。网页和命令行每次抽卡前都会重新读一遍账本,两边同时抽也不会发出同一枚。
账本在运行服务的这台机器上。多人共用一个 1024 池,就把服务部署在一台共享的机器上。元数据按 ERC-721 常见的 name / description / image / attributes 格式输出,以后想上链也能直接用;本项目不做上链。
隐私和安全
只读。 只调用
order-list、query-order、query-my-account、query-my-coupons、mall-order-list、now-time-info,从不下单、取消、领券、兑换积分或抽奖。Token 不落地。 本地网页的 Token 只在一次请求的内存里,读完订单就丢掉;WorkBuddy 里 Token 只在连接器配置里。
只留哈希。 账本只保存订单哈希、编号和时间,不存订单号、电话、地址或门店。
只听本机。 本地服务只监听
127.0.0.1。在线版不碰订单。 在线试玩只用内置的示例会员,不会请求麦当劳的接口。
常见问题
这是 NFT 吗?要钱吗? 样子和玩法学的是链上 PFP 头像:总量固定、编号唯一、按稀有度分档。但它不上链、不连钱包、不能交易,抽卡完全免费,头像没有现金价值。
为什么在线试玩不能用我自己的订单? 在线版是放在 GitHub Pages 上的静态网页,没有服务器替你去连麦当劳的接口,也不应该让你把 Token 贴进网页。用自己的订单,请在本地运行,或者用 WorkBuddy。
怎样更容易抽到稀有款? 最近实付越高、完成单数越多,幸运值越高,最高 100。幸运值是 100 时,传说款的概率是不加成时的 4 倍多。想要某个角色,就多点对应的餐品。
能不能反复抽? 一笔已完成订单只能换一张券,用完就没了。重新读取订单不会多出抽卡次数,下一笔订单完成后才会多一张。
金额为什么和 App 里不一样?
order-list 目前只返回最近大约 10 笔订单,没有分页。幸运值用的是这些订单里已完成的实付,不是终身消费。
1024 枚抽完了怎么办? 抽完就没有了,这正是限量的意思。之后再抽会提示「1024 枚已经全部抽完」。
开发
npm test # 单元测试
node scripts/build-pages.mjs # 重新生成在线试玩页(docs/)
node scripts/readme-images.mjs # 重新生成 README 里的图片(docs/)
PORT=9000 MAIZAI_DATA=/tmp/maizai.json npm start # 换端口或账本位置改了 public/、pages/ 或 src/ 里共享的模块后,记得运行前两个脚本。CI 会检查 docs/ 是否和源码一致。
目录 | 内容 |
| 订单整理、系列生成、概率、账本、像素画、本地服务。除 |
| 抽卡页面 |
| 在线试玩版的浏览器端接口 |
| 命令行抽卡、生成在线试玩页、生成 README 图片 |
| GitHub Pages:在线试玩页和 README 图片(生成文件) |
| WorkBuddy Skill |
目标用户
开通了麦当劳中国 MCP 的会员,想用自己的点餐记录换一枚好玩的头像,留着当头像,或者跟朋友比谁抽到的更稀有。
参赛文件
文件 | 作用 |
| 介绍、安装、示例、目标用户 |
| 官方参赛声明,内容未改 |
| 用了哪些 MCP Tool、调用顺序、业务价值 |
| 脱敏配置,Token 用 |
| 源代码 |
| WorkBuddy Skill |
更新记录
见 CHANGELOG.md。
许可
MIT。麦当劳相关商标归权利人所有。本项目没有使用麦当劳官方标志,所有角色和图案都是原创像素画。
Star History
This server cannot be deployed
Maintenance
Related MCP Connectors
Generate authentic pixel art - sprites, animations, and tilesets - from any MCP client
Programmatic web-scraping MCP server powered by x402 micro-transactions on Base.
Your Gmail, Calendar, Drive, GitHub, Oura, wallet and confirmed profile facts in any MCP client.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server that reads your personal Douyin favorites and collection folders via a logged-in browser session, providing tools to list and retrieve video/collection data for AI assistants.92MIT
- AlicenseNot gradedqualityBmaintenanceEnables ordering from McDonald's through an interactive UI: selecting stores, browsing menus, managing a cart, applying coupons, placing orders, paying, and tracking orders.213 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides a local-first Chinese dietary coaching server that reviews meals, recomputes nutrition from bundled food data, and manages user profiles and meal history in a private local SQLite database.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to coordinate a McDonald's China group order: start an order, let teammates pick items (with fuzzy menu matching), merge selections, choose the cheapest coupon combination via price calculation, and split the bill fairly to the cent into a shareable git log / PR / receipt-style bill card. Exposes store lookup, menu, pick/drop, listing, checkout and leaderboard tools, but never an order-placement tool, so live ordering requires a human-run confirmation code.4MIT