npm package: @striderlabs/mcp-dominos
Description: MCP server connector for Dominos Pizza using Playwright browser automation
Author: Strider Labs
Latest version: 0.1.0

# @striderlabs/mcp-dominos

MCP server connector for Dominos Pizza — order pizza, find stores, track orders, and browse deals via Claude using Playwright browser automation.

## Features

- **Search Menu** — Find any item on the Dominos menu
- **Find Stores** — Locate nearby stores by address or zip code
- **Cart Management** — Add items and view your cart with live pricing
- **Place Orders** — Order delivery or carryout with credit card or cash
- **Order Tracking** — Real-time tracker with stage-by-stage updates
- **Deals & Coupons** — Browse current offers at your local store

## Installation

```bash
npm install -g @striderlabs/mcp-dominos
npx playwright install chromium
```

## MCP Configuration

Add to your Claude Desktop or MCP client config:

```json
{
  "mcpServers": {
    "dominos": {
      "command": "npx",
      "args": ["-y", "@striderlabs/mcp-dominos"]
    }
  }
}
```

Or if installed globally:

```json
{
  "mcpServers": {
    "dominos": {
      "command": "mcp-dominos"
    }
  }
}
```

## Tools

### `search_menu`
Search Dominos menu items by name or category.

**Parameters:**
- `query` (required) — Search term, e.g. `"pepperoni pizza"`, `"wings"`, `"pasta"`
- `store_id` (optional) — Store ID for store-specific pricing

**Example:**
```
Search for "large pepperoni pizza"
```

---

### `find_store`
Find nearby Dominos stores by address or zip code.

**Parameters:**
- `address` (required) — Street address or zip code
- `service_method` (optional) — `"delivery"` or `"carryout"` (default: `"delivery"`)

**Example:**
```
Find a Dominos near 123 Main St, Austin TX 78701
```

---

### `add_to_cart`
Add a menu item to your cart.

**Parameters:**
- `item_code` (required) — Item code from `search_menu`
- `item_name` (required) — Human-readable item name
- `quantity` (optional) — Quantity (default: 1)
- `size` (optional) — Size code (e.g. `"14"` for 14-inch)
- `price` (optional) — Item price
- `customizations` (optional) — Array of customization descriptions

---

### `view_cart`
View your current cart with pricing.

**Parameters:**
- `store_id` (optional) — Store ID for live price validation
- `service_method` (optional) — `"Delivery"` or `"Carryout"`

---

### `place_order`
Place your order for delivery or carryout.

**Parameters:**
- `store_id` (required) — Store ID from `find_store`
- `service_method` (required) — `"Delivery"` or `"Carryout"`
- `first_name`, `last_name`, `email`, `phone` (required) — Customer info
- `delivery_street`, `delivery_city`, `delivery_state`, `delivery_zip` — Required for delivery
- `payment_type` (required) — `"CreditCard"` or `"Cash"`
- `card_number`, `card_expiration`, `card_cvv`, `billing_zip` — Required for credit card

---

### `track_order`
Track an order's real-time status.

**Parameters:**
- `order_id` (required) — Order ID from `place_order`
- `phone` (required) — Phone number used when ordering
- `store_id` (required) — Store where the order was placed

---

### `get_deals`
Get current deals and coupons.

**Parameters:**
- `store_id` (optional) — Store ID for local deals

## Example Conversation

```
User: Find a Dominos near 90210 and order me a large pepperoni pizza for delivery

Claude:
1. Calls find_store("90210") → finds Store #1234
2. Calls search_menu("large pepperoni pizza", "1234") → finds item code "14SCREEN"
3. Calls add_to_cart("14SCREEN", "Large Hand Tossed Pepperoni Pizza", quantity: 1)
4. Calls view_cart("1234", "Delivery") → shows $13.99 + tax + delivery
5. Asks for delivery address and payment info
6. Calls place_order(...) → Order #ABC123 placed!
7. Calls track_order("ABC123", ...) → "Baking 🔄"
```

## Development

```bash
git clone https://github.com/markswendsen-code/mcp-dominos
cd mcp-dominos
npm install
npm run build
npm start
```

## Requirements

- Node.js 18+
- Playwright Chromium (`npx playwright install chromium`)

## Notes

- This connector uses Dominos' public web APIs via Playwright browser automation
- Browser sessions are created per-request and cleaned up automatically
- Cart state is maintained in memory for the duration of the server session
- Always confirm order details with the user before calling `place_order`

## License

MIT