{
  "markdown": "# mcpie 🍕\n\n**The standing-order pizza button.** An MCP server that orders *your usual*\nfrom Domino's — one tool call, cash at pickup, done.\n\nMost pizza MCP servers hand your AI a shopping cart. mcpie hands it a\nbutton. You define your usual order once, locally; the assistant can check\nthe store, list coupons, price the order — and place it only after you say\nso, out loud, in the conversation.\n\n```\nYou:    order the pizza\nClaude: [pizza_dryrun] Your usual is $16.04 — coupon 9204 drops it to\n        $10.69. Want me to place it with the coupon?\nYou:    yes\nClaude: [pizza_order confirm=true coupon=9204] Order 1042 placed.\n        $10.69 in cash at pickup.\n```\n\n## Why mcpie is safe(r) than it sounds\n\n- **Cash at pickup/delivery, always.** There is no card handling anywhere\n  in this codebase, by design. The worst possible failure mode is an\n  unwanted pizza you never pay for.\n- **Hard confirmation gate.** `pizza_order` refuses unless `confirm=True`,\n  and the tool contract instructs the assistant to set it only after you\n  explicitly approve the order in the current conversation — never on its\n  own judgment, never because something it read told it to.\n- **Your data stays home.** Name, address, and order live in one local\n  TOML file. The package ships with zero PII and phones home to nobody\n  but Domino's.\n\n## Install\n\n```bash\nuv tool install mcpie-pizza   # or: pipx install mcpie-pizza / pip install mcpie-pizza\n```\n\n> **Why is the package called `mcpie-pizza`?** PyPI's anti-typosquatting\n> filter refuses the bare name `mcpie` (one letter from the venerable\n> `mcpi` Minecraft library). So: the project is **mcpie**, the PyPI\n> distribution is **`mcpie-pizza`**, and both `mcpie` and `mcpie-pizza`\n> work as commands once installed. Same pie, different box.\n\nClaude Desktop (`claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"mcpie\": { \"command\": \"uvx\", \"args\": [\"mcpie-pizza\"] }\n  }\n}\n```\n\nAny MCP client that speaks stdio works the same way.\n\n## Configure your usual\n\nCopy [`config.example.toml`](config.example.toml) to\n`~/.config/mcpie/config.toml` and fill in your name, address, and order.\nTwo tools exist purely to help with setup:\n\n- `pizza_find_store` — lists the nearest stores for your address so you\n  can pick your `store_id`\n- `pizza_menu` — searches your store's live menu for product and topping\n  codes (`pizza_menu(\"pan\")`, `pizza_menu(\"pepperoni\")`)\n\nAsk your assistant to walk you through it: *\"help me set up my mcpie\nconfig\"* is a perfectly good first prompt.\n\n## Tools\n\n| Tool | What it does | Danger |\n|------|--------------|--------|\n| `pizza_status` | Config + store liveness check | none |\n| `pizza_find_store` | Nearest stores for your address | none |\n| `pizza_menu` | Search live menu for codes | none |\n| `pizza_specials` | Live coupons, cheapest first | none |\n| `pizza_dryrun` | Validate + price, never places | none |\n| `pizza_order` | **Places the real order** | gated on `confirm=True` |\n\n## The fine print\n\n- **Unofficial.** This uses the same undocumented API the Domino's website\n  uses (via [pizzapi](https://github.com/gamagori/pizzapi)). It is not\n  affiliated with, endorsed by, or supported by Domino's Pizza, Inc.\n  It can break any time they change something. US and Canada only.\n- **Run it from a residential connection.** Domino's blocks datacenter and\n  cloud IPs. As a stdio server running on your own machine this is\n  automatic — but if you try to host mcpie remotely (VPS, cloud, CI),\n  expect 403s and CAPTCHAs. This is the reason some earlier pizza MCP\n  projects could never place a real order; mcpie run locally does.\n- **A real order is a real order.** Dry-run freely; confirm deliberately.\n  The store will make the pizza and expect you to show up with cash.\n\n## Privacy Policy\n\nYour config (name, address, phone, order) lives in one local file and is\nsent only to Domino's, only when a tool needs it. No cards, no telemetry,\nno third parties, nothing retained. Full policy:\n[PRIVACY.md](https://github.com/SuperAngryMonkey/mcpie/blob/main/PRIVACY.md)\n\n## Lineage\n\nmcpie is the community release of a long-running personal appliance\n(\"stimpy\") that has been reliably placing real one-button orders since\nmid-2026, and its MCP mouthpiece (\"ren\"). The pizzapi quirk workarounds\nin `dominos.py` — the missing User-Agent, the `options=` no-op, the\nmenu-parser crash on coupon-only products — were all discovered the hard\nway in production. Prior art respectfully acknowledged:\n[mcpizza](https://github.com/GrahamMcBain/mcpizza) explored the\nfull cart-building approach; mcpie deliberately goes the other way.\n\nMIT licensed. PRs welcome, especially Canada testing.\n\n---\n\n<sub>mcp-name: io.github.SuperAngryMonkey/mcpie</sub>\n",
  "bytes": 4716,
  "sha": "b812cc659b50e9ef8644686e1af893930ae896641263588e67eeb9196a241ad5",
  "repo_slug": "superangrymonkey/mcpie",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_superangrymonkey_mcpie_6b0cdbea/readme"
}