io.github.SuperAngryMonkey/mcpie
Standing-order Domino's pizza button: dry-run freely, order only on explicit confirm. Cash only.
Open source Open in the app JSON README (API)
About
Standing-order Domino's pizza button: dry-run freely, order only on explicit confirm. Cash only.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- superangrymonkey
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.1.2
- Last push
- 2026-08-22T01:51:09Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 03:02:16
- Updated
- 2026-08-29 03:02:16
- Origin id
io.github.SuperAngryMonkey/mcpie
README
# mcpie ๐
**The standing-order pizza button.** An MCP server that orders *your usual*
from Domino's โ one tool call, cash at pickup, done.
Most pizza MCP servers hand your AI a shopping cart. mcpie hands it a
button. You define your usual order once, locally; the assistant can check
the store, list coupons, price the order โ and place it only after you say
so, out loud, in the conversation.
```
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.
```
## Why mcpie is safe(r) than it sounds
- **Cash at pickup/delivery, always.** There is no card handling anywhere
in this codebase, by design. The worst possible failure mode is an
unwanted pizza you never pay for.
- **Hard confirmation gate.** `pizza_order` refuses unless `confirm=True`,
and the tool contract instructs the assistant to set it only after you
explicitly approve the order in the current conversation โ never on its
own judgment, never because something it read told it to.
- **Your data stays home.** Name, address, and order live in one local
TOML file. The package ships with zero PII and phones home to nobody
but Domino's.
## Install
```bash
uv tool install mcpie-pizza # or: pipx install mcpie-pizza / pip install mcpie-pizza
```
> **Why is the package called `mcpie-pizza`?** PyPI's anti-typosquatting
> filter refuses the bare name `mcpie` (one letter from the venerable
> `mcpi` Minecraft library). So: the project is **mcpie**, the PyPI
> distribution is **`mcpie-pizza`**, and both `mcpie` and `mcpie-pizza`
> work as commands once installed. Same pie, different box.
Claude Desktop (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"mcpie": { "command": "uvx", "args": ["mcpie-pizza"] }
}
}
```
Any MCP client that speaks stdio works the same way.
## Configure your usual
Copy [`config.example.toml`](config.example.toml) to
`~/.config/mcpie/config.toml` and fill in your name, address, and order.
Two tools exist purely to help with setup:
- `pizza_find_store` โ lists the nearest stores for your address so you
can pick your `store_id`
- `pizza_menu` โ searches your store's live menu for product and topping
codes (`pizza_menu("pan")`, `pizza_menu("pepperoni")`)
Ask your assistant to walk you through it: *"help me set up my mcpie
config"* is a perfectly good first prompt.
## Tools
| Tool | What it does | Danger |
|------|--------------|--------|
| `pizza_status` | Config + store liveness check | none |
| `pizza_find_store` | Nearest stores for your address | none |
| `pizza_menu` | Search live menu for codes | none |
| `pizza_specials` | Live coupons, cheapest first | none |
| `pizza_dryrun` | Validate + price, never places | none |
| `pizza_order` | **Places the real order** | gated on `confirm=True` |
## The fine print
- **Unofficial.** This uses the same undocumented API the Domino's website
uses (via [pizzapi](https://github.com/gamagori/pizzapi)). It is not
affiliated with, endorsed by, or supported by Domino's Pizza, Inc.
It can break any time they change something. US and Canada only.
- **Run it from a residential connection.** Domino's blocks datacenter and
cloud IPs. As a stdio server running on your own machine this is
automatic โ but if you try to host mcpie remotely (VPS, cloud, CI),
expect 403s and CAPTCHAs. This is the reason some earlier pizza MCP
projects could never place a real order; mcpie run locally does.
- **A real order is a real order.** Dry-run freely; confirm deliberately.
The store will make the pizza and expect you to show up with cash.
## Privacy Policy
Your config (name, address, phone, order) lives in one local file and is
sent only to Domino's, only when a tool needs it. No cards, no telemetry,
no third parties, nothing retained. Full policy:
[PRIVACY.md](https://github.com/SuperAngryMonkey/mcpie/blob/main/PRIVACY.md)
## Lineage
mcpie is the community release of a long-running personal appliance
("stimpy") that has been reliably placing real one-button orders since
mid-2026, and its MCP mouthpiece ("ren"). The pizzapi quirk workarounds
in `dominos.py` โ the missing User-Agent, the `options=` no-op, the
menu-parser crash on coupon-only products โ were all discovered the hard
way in production. Prior art respectfully acknowledged:
[mcpizza](https://github.com/GrahamMcBain/mcpizza) explored the
full cart-building approach; mcpie deliberately goes the other way.
MIT licensed. PRs welcome, especially Canada testing.
---
<sub>mcp-name: io.github.SuperAngryMonkey/mcpie</sub>