关于 mcpie
mcpie 是用于下达 Domino's 常点订单的本地 MCP 服务。助手可查询门店、菜单、优惠券和价格,但下单前必须获得明确确认;默认采用到店自取和现金支付。
主要功能
- 01查找附近门店
- 02搜索实时菜单
- 03列出当前优惠券
- 04仅报价而不下单
- 05下单时要求明确确认
- 06本地配置并可选银行卡支付
适用场景
- 01查询常点披萨订单价格
- 02下单前比较优惠券
- 03确认后以现金下单自取
- 04按需配置配送或银行卡支付
MCP 相关
提供兼容 stdio 的 MCP 工具,用于查找门店、搜索菜单、查询优惠、模拟报价和下单。下单工具要求 confirm=True。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 1 周前
此工具无需参数。
详细介绍
mcpie 🍕
随时下单的披萨按钮。 一个 MCP 服务,只需调用一次工具,就能从 Domino's 订购你的常点餐品,到店取餐时付现金,搞定。配送和银行卡支付为可选项(v0.2);默认仍为现金自取。
大多数披萨 MCP 服务会给你的 AI 一个购物车。mcpie 给它的是一个按钮。你只需在本地设置一次常点餐品;助手可以查询门店、列出优惠券、计算价格,只有在你于对话中明确同意后才会下单。
You: order the pizza
Claude: [pizza_dryrun] Your usual is $16.04 — coupon 9204 drops it to
$10.69. Want me to place it with the coupon?
You: yes
Claude: [pizza_order confirm=true coupon=9204] Order 1042 placed.
$10.69 in cash at pickup.
为什么 mcpie 比听起来更安全
- 默认现金支付。 开箱即用时,任何地方都不会存有银行卡;最糟糕的情况也只是订了一份你不想要、但不用付款的披萨。如果你选择添加银行卡(见下文),最糟糕的情况就会变成被扣款——请先阅读接下来的两点。
- 严格的确认关卡。
pizza_order除非confirm=True,否则会拒绝下单;工具约定要求助手只有在你于当前对话中明确批准订单后才能设置该值,绝不能自行判断,也不能因为它读到的内容而这么做。 - 你的数据留在本地。 姓名、地址和订单都保存在一个本地 TOML 文件中。软件包不包含任何个人身份信息(PII),除了联系 Domino's 外,也不会向任何地方发送数据。
安装
uv tool install mcpie-pizza # or: pipx install mcpie-pizza / pip install mcpie-pizza
为什么软件包叫
mcpie-pizza? PyPI 的反拼写抢注过滤器拒绝裸名称mcpie(它只比历史悠久的mcpiMinecraft 库多一个字母)。因此:项目名是 mcpie,PyPI 发行包名是mcpie-pizza,安装后mcpie和mcpie-pizza都可以作为命令使用。同一份披萨,不同的包装盒。
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"mcpie": { "command": "uvx", "args": ["mcpie-pizza"] }
}
}
任何支持 stdio 的 MCP 客户端都可以用同样的方式工作。
配置你的常点餐品
将 config.example.toml 复制到
~/.config/mcpie/config.toml,然后填写姓名、地址和订单。有两个工具专为辅助设置而设:
pizza_find_store— 列出你所在地址附近的门店,供你选择store_idpizza_menu— 搜索门店的实时菜单,查找产品和配料代码(pizza_menu("pan")、pizza_menu("pepperoni"))
让你的助手带你完成设置即可:"help me set up my mcpie config" 是一个很合适的初始提示词。
配送和银行卡支付(可选,v0.2+)
所有定价和下单工具都接受 mode(carryout / delivery)和
pay(cash / card / giftcard)。默认值来自你的配置;除非你修改设置,否则分别为自取和现金支付。
添加银行卡只有一种方式,而且不能通过助手完成:
mcpie setup-payment # masked prompts, Luhn-checked, writes ~/.config/mcpie/payment.toml (0600)
mcpie setup-payment --show # what's configured, last 4 digits only
mcpie setup-payment --clear # back to cash
- 银行卡信息保存在
payment.toml中,与配置文件分开存放,权限模式为 0600。没有任何 MCP 工具会接受、返回或读回银行卡数据;工具输出只会显示“Visa 尾号 1234”。 - 每条 Domino's 响应在发送给助手前,都会清除银行卡字段。
- 建议使用 Domino's 礼品卡。 使用相同的代码路径;即使文件被攻破,最多也只会损失礼品卡余额。
- 使用
pay="card"时,confirm=True是防止幻觉订单被记到账单上的唯一关卡。请根据pizza_dryrun返回的due金额进行批准,而不只是说“下单”。 - 配送总价 = 报价 + 门店配送费 + 你设置的小费。
工具
| 工具 | 功能 | 风险 |
|---|---|---|
pizza_status | 检查配置和门店是否在线 | 无 |
pizza_find_store | 查找你所在地址附近的门店 | 无 |
pizza_menu | 搜索实时菜单中的代码 | 无 |
pizza_specials(mode) | 列出实时优惠券,按价格从低到高排序 | 无 |
pizza_dryrun(coupon, mode, pay) | 验证并计算价格,不会下单;返回 due | 无 |
pizza_order(confirm, coupon, mode, pay) | 提交真实订单 | 需通过 confirm=True;若 pay=card,会从银行卡扣款 |
注意事项
- 非官方。 本项目使用与 Domino's 网站相同的未公开 API(通过 pizzapi)。本项目与 Domino's Pizza, Inc. 无关联,也未获其认可或支持。Domino's 一旦更改任何内容,本项目随时可能无法使用。仅限美国和加拿大。
- 请通过住宅网络连接运行。 Domino's 会屏蔽数据中心和云服务的 IP。作为运行在你自己设备上的 stdio 服务,默认会使用住宅网络;但如果你尝试远程托管 mcpie(VPS、云服务、CI),可能会遇到 403 错误和 CAPTCHA。这就是一些早期披萨 MCP 项目始终无法下真实订单的原因;mcpie 在本地运行则可以。
- 真实订单就是真实订单。 可以随意试运行;确认订单时请慎重。门店会制作披萨,并期待你带现金到店付款——或者,如果你配置了银行卡,费用已经扣除。
隐私政策
你的配置(姓名、地址、电话、订单)保存在一个本地文件中,且仅在工具需要时发送给 Domino's。如果你选择启用银行卡信息,它会保存在单独的 0600 文件中,且仅在下单时发送给 Domino's。不收集遥测信息,不涉及第三方,也不会保留任何信息。完整政策: PRIVACY.md
项目渊源
mcpie 是一个长期运行的个人设备(“stimpy”)的社区版。自 2026 年年中以来,该设备一直可靠地通过一个按钮下真实订单;其 MCP 接口(“ren”)也由此而来。dominos.py 中针对 pizzapi 特性的变通处理——缺失的 User-Agent、无效的 options= 操作,以及菜单解析器在遇到仅含优惠券的商品时崩溃的问题——都是在实际使用中历经波折才发现的。在此谨向先行项目致意:
mcpizza 探索了完整的购物车构建方案;mcpie 则有意选择了另一条路。
采用 MIT 许可证。欢迎提交 PR,尤其欢迎针对加拿大的测试。
mcp-name: io.github.SuperAngryMonkey/mcpie
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。