Skip to main content
Glama
Starbucks MCP Server

Starbucks MCP Server

Starbucks MCP Server

The first MCP server for ordering Starbucks coffee using AI! Built with Playwright automation and the Model Context Protocol.

⚠️ Important Disclaimers

UNOFFICIAL & EDUCATIONAL USE ONLY

  • This project is NOT affiliated with, endorsed by, or connected to Starbucks Corporation in any way

  • Use at your own risk - This tool may violate Starbucks Terms of Service

  • For educational and personal use only - Not intended for commercial use

  • You are financially responsible for all orders placed through this tool

  • No warranty - Provided "AS IS" without warranty of any kind (see LICENSE)

  • Your Starbucks account may be banned for using automated tools

  • Starbucks may request this repository be taken down at any time

FINANCIAL SAFETY:

  • ✅ Every order requires manual confirmation - Orders are NOT automatically placed

  • ✅ Review flow built-in - You see the order details before confirming

  • ⚠️ Always verify order details, prices, and totals before confirming

  • ⚠️ Monitor your account - Check your bank statements regularly

  • 🚨 Emergency stop - Close the browser immediately if something goes wrong

By using this software, you acknowledge these risks and agree to use it responsibly.

Related MCP server: Burger King MCP Server

Features

  • 🔐 Browser-based authentication - Log in once, order anytime

  • ⭐ Favorite orders - Save and reorder your go-to drinks and food

  • 🎯 Custom orders - Order any combination of drinks and food

  • 📍 Location support - Select your pickup location

  • ✅ Order approval - Review before placing your order

Installation

cd ~/code/starbucks-mcp-server
npm install
npm run build

Configuration

Add to your Claude Code config (~/.claude.json):

{
  "mcpServers": {
    "starbucks": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/starbucks-mcp-server/dist/server.js"],
      "env": {},
      "cwd": "/path/to/starbucks-mcp-server"
    }
  }
}

Usage

First Time Setup

# Log in to Starbucks
> login_starbucks

# Complete the login in the browser, then:
> complete_starbucks_login

Ordering

# Order a favorite
> Order my "Morning Coffee Run"

# Custom order
> Order a grande Pike Place Roast and a Bacon Gouda sandwich

# List favorites
> What are my Starbucks favorites?

# Add a new favorite
> Save a new favorite called "Afternoon Pick-Me-Up" with a venti cold brew

Example Commands

  • "Order me a tall iced cold brew from Polk Street"

  • "Place my usual morning coffee order"

  • "What Starbucks favorites do I have saved?"

  • "Order breakfast - grande pike place and a breakfast sandwich"

Tools

  • login_starbucks - Open browser for authentication

  • complete_starbucks_login - Complete login after manual sign-in

  • check_starbucks_auth - Check authentication status

  • list_starbucks_favorites - List saved favorite orders

  • order_starbucks_favorite - Order a saved favorite

  • order_starbucks_custom - Place a custom order

  • add_starbucks_favorite - Save a new favorite

  • confirm_starbucks_order - Confirm and place pending order

  • cancel_starbucks_order - Cancel pending order

How It Works

This MCP server uses Playwright to automate the Starbucks website:

  1. Authentication: Opens a browser for you to log in manually

  2. Session Management: Saves cookies for future orders

  3. Order Automation: Navigates the menu, selects items, and adds to cart

  4. Review Flow: Shows you the order before placing it

  5. Confirmation: Places the order ONLY when you explicitly approve

Safety Features

  • No automatic ordering - Every order stops at the cart for your review

  • Explicit confirmation required - You must run confirm_starbucks_order to place the order

  • Cancel anytime - Use cancel_starbucks_order to abort before confirmation

  • Order details shown - See items, prices (when available), and location before confirming

  • Session-based - You control when the browser opens and closes

Troubleshooting

If something goes wrong:

  1. Close the browser window immediately

  2. Check your Starbucks app/account for pending orders

  3. Cancel any unwanted orders in the Starbucks app

  4. Delete starbucks-session.json to force re-authentication

  5. Use cancel_starbucks_order before confirming to abort

Common issues:

  • Orders fail to add items → Website may have changed, headless mode issues

  • Session expired → Run login_starbucks again

  • Wrong location → Specify location explicitly in order commands

Requirements

  • Node.js 18+

  • Playwright (automatically installs browsers)

  • Active Starbucks account

Contributing

This is the first Starbucks MCP server! Contributions welcome:

  • Add support for customizations (milk, sweeteners, etc.)

  • Improve location detection

  • Add order history

  • Support for gift cards and rewards

License

MIT

Author

Dean Wenstrand


☕ Built with Claude Code and caffeine

Available Tools

10 tools
add_starbucks_favoriteB

Save a new Starbucks favorite order

Inputs: name (required), items (required).

cancel_starbucks_orderA

Cancel a pending Starbucks order

Inputs: no named parameters.

check_starbucks_authA

Check if Starbucks session is authenticated

Inputs: no named parameters.

complete_starbucks_loginA

Complete Starbucks login after user has logged in manually in the browser

Inputs: no named parameters.

confirm_starbucks_orderA

Confirm and place a pending Starbucks order after review

Inputs: no named parameters.

get_starbucks_menuA

Get the full menu of available items at a Starbucks location, or search for specific items by providing a query

Inputs: query, location.

list_starbucks_favoritesA

List all saved Starbucks favorite orders

Inputs: no named parameters.

login_starbucksA

Open browser for Starbucks login (first-time setup or to refresh expired session)

Inputs: no named parameters.

order_starbucks_customA

Place a custom Starbucks order with specific drinks and food. IMPORTANT: Always use get_starbucks_menu first to get exact item names before ordering.

Inputs: food, drinks, location.

order_starbucks_favoriteA

Order a saved Starbucks favorite (e.g., 'Morning Coffee Run', 'Breakfast'). IMPORTANT: If order fails due to item names not found, use get_starbucks_menu first to get exact item names.

Inputs: favoriteName (required), location.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 10 tools

    Disambiguation5/5

    Each tool has a distinct purpose: auth flows, favorite management, order placement (favorite vs custom), order confirmation/cancellation, and menu lookup. No two tools overlap in a way that would confuse an agent.

    Naming Consistency5/5

    All tool names follow a consistent pattern of action + 'starbucks' + target (e.g., login_starbucks, list_starbucks_favorites, order_starbucks_custom). The naming is uniform and predictable across the entire set.

    Tool Count5/5

    10 tools is well-scoped for a Starbucks ordering and favorites management server. The count covers the essential workflows without being bloated or thin.

    Completeness4/5

    The toolset covers the core lifecycle: auth, menu access, placing and managing orders, and managing favorites. Minor gaps exist such as no delete/update favorite and no order history, but these are not critical for the primary ordering flow.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers