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_orderrefuses unlessconfirm=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
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 namemcpie(one letter from the venerablemcpiMinecraft library). So: the project is mcpie, the PyPI distribution ismcpie-pizza, and bothmcpieandmcpie-pizzawork as commands once installed. Same pie, different box.
Claude Desktop (claude_desktop_config.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 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 yourstore_idpizza_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). 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.
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 explored the
full cart-building approach; mcpie deliberately goes the other way.
MIT licensed. PRs welcome, especially Canada testing.
mcp-name: io.github.SuperAngryMonkey/mcpie
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcpie_pizza-0.1.2.tar.gz.
File metadata
- Download URL: mcpie_pizza-0.1.2.tar.gz
- Upload date:
- Size: 23.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a82c73926907139fade8fce835dc20b45305d17fde87de07a3d6b2d4e61c153a
|
|
| MD5 |
4f7262aef1891074750f67b245961da4
|
|
| BLAKE2b-256 |
e9396b3de0aab641643372ee5a995a94bd0b84172c28ceb254fd0d77eea710ab
|
Provenance
The following attestation bundles were made for mcpie_pizza-0.1.2.tar.gz:
Publisher:
publish.yml on SuperAngryMonkey/mcpie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcpie_pizza-0.1.2.tar.gz -
Subject digest:
a82c73926907139fade8fce835dc20b45305d17fde87de07a3d6b2d4e61c153a - Sigstore transparency entry: 2483474529
- Sigstore integration time:
-
Permalink:
SuperAngryMonkey/mcpie@f4f8e85369b1baa857e9a111d9dfe156f76e6977 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/SuperAngryMonkey
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f4f8e85369b1baa857e9a111d9dfe156f76e6977 -
Trigger Event:
release
-
Statement type:
File details
Details for the file mcpie_pizza-0.1.2-py3-none-any.whl.
File metadata
- Download URL: mcpie_pizza-0.1.2-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8c73124d0b84ae91594278c86e22408ec0f1094cffe4c793934e431ff4804e8
|
|
| MD5 |
ae4545ef437e6a2a870572b1decd9064
|
|
| BLAKE2b-256 |
93634b31b0da7362f3e2ff904a534998ca8e8e14693ddfbbfe2fce8a401ef4f2
|
Provenance
The following attestation bundles were made for mcpie_pizza-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on SuperAngryMonkey/mcpie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcpie_pizza-0.1.2-py3-none-any.whl -
Subject digest:
f8c73124d0b84ae91594278c86e22408ec0f1094cffe4c793934e431ff4804e8 - Sigstore transparency entry: 2483474597
- Sigstore integration time:
-
Permalink:
SuperAngryMonkey/mcpie@f4f8e85369b1baa857e9a111d9dfe156f76e6977 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/SuperAngryMonkey
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f4f8e85369b1baa857e9a111d9dfe156f76e6977 -
Trigger Event:
release
-
Statement type: