Skip to main content
Glama
markswendsen-code

@striderlabs/mcp-starbucks

README.md
# @striderlabs/mcp-starbucks

MCP server for Starbucks — let AI agents search the menu, customize drinks, find stores, place mobile pickup orders, and manage Starbucks Rewards.

## Features

- **Full menu search** — search by name, category, or dietary preference (vegan, vegetarian, etc.)
- **Item customization** — size, milk type, syrups, espresso shots, temperature, foam, and more
- **Cart management** — add items, view cart, adjust quantities
- **Store finder** — find nearby Starbucks locations with hours and features
- **Mobile ordering** — place mobile pickup orders (requires Starbucks account)
- **Starbucks Rewards** — check Star balance, reward level, and redeem rewards
- **Order history** — view past orders and quickly reorder favorites
- **Session persistence** — cookies saved at `~/.striderlabs/starbucks/cookies.json`

## Installation

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

## Usage with Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "starbucks": {
      "command": "striderlabs-mcp-starbucks",
      "env": {
        "STARBUCKS_EMAIL": "your-email@example.com",
        "STARBUCKS_PASSWORD": "your-password"
      }
    }
  }
}
```

Credentials can also be passed directly via the `starbucks_login` tool.

## Tools

| Tool | Description |
|------|-------------|
| `starbucks_status` | Check connection and login status |
| `starbucks_login` | Authenticate with Starbucks credentials |
| `starbucks_logout` | Clear session cookies |
| `search_menu` | Search menu by name, category, or dietary preference |
| `get_item_details` | Get full item details and customization options |
| `customize_item` | Build a customized drink or food order |
| `add_to_cart` | Add customized item to cart |
| `view_cart` | View current cart with pricing |
| `get_nearby_stores` | Find nearby Starbucks locations |
| `select_store` | Select pickup store |
| `place_order` | Submit mobile pickup order |
| `get_order_status` | Track order status and pickup time |
| `get_rewards` | Check Star balance and available rewards |
| `redeem_reward` | Apply a reward to current order |
| `get_order_history` | View past orders |
| `reorder_favorite` | Quick reorder from a past order |

## Example Workflow

```
1. starbucks_status           → check if logged in
2. starbucks_login            → authenticate (if needed)
3. search_menu query="latte"  → browse menu options
4. get_item_details itemId="hot-latte"
                              → see customization options
5. customize_item itemId="hot-latte"
     customizations={"size":"grande","milk":"oat","syrup":"vanilla"}
6. add_to_cart quantity=1     → add to cart
7. view_cart                  → review order
8. get_nearby_stores address="94105"
                              → find pickup location
9. select_store storeId="sbux-1001"
10. get_rewards               → check available rewards
11. redeem_reward rewardId="reward-123"
                              → apply reward (optional)
12. place_order confirm=false → preview order
13. place_order confirm=true  → submit order
14. get_order_status          → track preparation
```

## Customization Options

### Size
- `short` (8 fl oz) — hot drinks only
- `tall` (12 fl oz)
- `grande` (16 fl oz)
- `venti_hot` (20 fl oz) — hot drinks
- `venti_cold` (24 fl oz) — cold drinks

### Milk
- `2percent`, `nonfat`, `whole` — standard, no charge
- `oat`, `almond`, `coconut`, `soy` — +$0.70

### Espresso Roast
- `signature` (Starbucks Signature Espresso Roast)
- `blonde` (Blonde Espresso Roast)
- `decaf`

### Syrups / Flavorings
`vanilla`, `caramel`, `hazelnut`, `toffee_nut`, `cinnamon_dolce`, `peppermint`, `sugar_free_vanilla`, `brown_sugar`, `mocha`, `white_mocha`

### Temperature (hot drinks)
`hot`, `extra_hot`, `warm`, `kids_temp`

### Foam
`standard`, `extra_foam`, `no_foam`, `light_foam`

## Technical Details

- **Browser automation**: Playwright (Chromium) with stealth patches
- **Session persistence**: Cookies stored at `~/.striderlabs/starbucks/cookies.json`
- **Transport**: MCP stdio
- **Ordering**: Uses Starbucks web ordering API with Playwright automation fallback

## Environment Variables

| Variable | Description |
|----------|-------------|
| `STARBUCKS_EMAIL` | Starbucks account email (optional — can use starbucks_login tool) |
| `STARBUCKS_PASSWORD` | Starbucks account password (optional) |

## License

MIT — [Strider Labs](https://striderlabs.ai)

TDQS

A4/5.0

Scored across 16 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: authentication, menu browsing, store selection, order customization/cart management, order placement/tracking, and rewards. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., add_to_cart, get_nearby_stores, place_order). Even the auth tools use the starbucks_ prefix consistently. No mixing of styles.

Tool Count5/5

16 tools cover the full Starbucks mobile ordering experience without being excessive. Each tool serves a necessary function, from login to ordering to rewards.

Completeness4/5

The tool set covers the core ordering lifecycle: browse, select store, customize, add to cart, place order, track status, view history, and manage rewards. Minor gaps like removing cart items or canceling an order are missing, but the surface is nearly complete for typical usage.

Maintenance

ActivityInactive
ResponsivenessNo issues