麦仔 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.
MCP tools: collectible price-fairness, recall safety, drop tracking, card grading, settlements.
All HasData scraping tools in one MCP server: Google, TikTok, Instagram, maps, e-commerce 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