@striderlabs/mcp-drizly
A Model Context Protocol (MCP) connector for Drizly alcohol delivery. Enables AI assistants to search products, manage carts, check availability, and place orders on Drizly (drizly.com).
Features
- Product Search - Search beer, wine, spirits by name, type, or brand with price and ABV filters
- Product Details - Get detailed info including ABV, origin, ratings, and descriptions
- Category Browsing - Browse by category (wine type, spirit type, etc.)
- Availability Check - Check if products are available for delivery to an address
- Store Discovery - Find available stores/retailers for a delivery address
- Cart Management - Add items, view cart, and update quantities
- Order Placement - Complete checkout and place orders
- Order History - View past and current orders
- Order Tracking - Track real-time order status and delivery estimates
- Recommendations - Get personalized product recommendations
Requirements
- Node.js >= 18.0.0
- Playwright (for browser automation)
Installation
npm install @striderlabs/mcp-drizly
Install Playwright browsers:
npx playwright install chromium
Configuration
Add to your MCP client configuration (e.g., Claude Desktop claude_desktop_config.json):
{
"mcpServers": {
"drizly": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-drizly"]
}
}
}
Or if installed globally:
{
"mcpServers": {
"drizly": {
"command": "mcp-drizly"
}
}
}
Available Tools
search_products
Search for alcohol products by name, brand, or type.
Parameters:
query(required) - Search query stringcategory- Filter by category:beer,wine,spirits,cider,hard-seltzerminPrice/maxPrice- Price range filterminAbv/maxAbv- ABV percentage filteraddress- Delivery address for availability filtering
Example:
{
"query": "IPA beer",
"category": "beer",
"maxPrice": 20
}
get_product_details
Get detailed product information.
Parameters:
productId(required) - Product ID or URL slug from Drizly
Example:
{
"productId": "dogfish-head-60-minute-ipa"
}
browse_categories
Browse products by category and subcategory.
Parameters:
category- Main category:beer,wine,spirits,cider,hard-seltzer,cocktails-mixerssubcategory- Subcategory (e.g.,IPA,Chardonnay,Bourbon)
Example:
{
"category": "wine",
"subcategory": "Chardonnay"
}
check_availability
Check if a product is available for delivery.
Parameters:
productId(required) - Product to checkaddress(required) - Delivery address
Example:
{
"productId": "corona-extra-beer",
"address": "123 Main St, Boston, MA 02101"
}
add_to_cart
Add a product to the shopping cart.
Parameters:
productId(required) - Product IDname(required) - Product namequantity(required) - Quantity (minimum 1)price(required) - Price per unitimageUrl- Optional product image URL
Example:
{
"productId": "corona-extra-12pk",
"name": "Corona Extra 12-Pack",
"quantity": 2,
"price": 15.99
}
get_cart
View current cart contents and totals.
Returns: Cart items, subtotal, delivery fee, and total.
update_cart
Update item quantity or remove from cart.
Parameters:
productId(required) - Product to updatequantity(required) - New quantity (0 removes item)
Example:
{
"productId": "corona-extra-12pk",
"quantity": 3
}
get_stores
Find stores available for delivery to an address.
Parameters:
address(required) - Delivery address
Example:
{
"address": "456 Park Ave, New York, NY 10022"
}
place_order
Place an order for cart items.
Parameters:
deliveryAddress(required) - Full delivery addresscardLastFour- Last 4 digits of payment cardsavePayment- Whether to save payment method
Example:
{
"deliveryAddress": "123 Main St, Apt 4B, Boston, MA 02101",
"cardLastFour": "4242"
}
get_orders
View all past and current orders.
track_order
Track an order's current status.
Parameters:
orderId(required) - Order ID (format:DRZ-XXXXXXXXXX)
Example:
{
"orderId": "DRZ-1234567890"
}
get_recommendations
Get personalized product recommendations.
Parameters:
categories- Preferred categories arrayminPrice/maxPrice- Price range for recommendationspreviousOrders- Previous order IDs for personalization
Example:
{
"categories": ["wine"],
"maxPrice": 30
}
Development
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run in development mode
npm run dev
Architecture
The connector uses two main components:
src/index.ts- MCP server that defines tools and handles requestssrc/browser.ts- Browser automation layer using Playwright to interact with Drizly's website
The browser automation handles:
- Age verification gates
- Product search and navigation
- Cart management (stored in memory)
- Order simulation
Important Notes
- Age Verification: Drizly requires users to be 21+. Ensure compliance with local laws.
- Cart State: Cart data is stored in memory and will reset when the server restarts.
- Availability: Product availability depends on your delivery location and connected retailers.
- Playwright: Browser automation requires Playwright with Chromium installed.
License
MIT