@striderlabs/mcp-ubereats
v0.1.0
Published
MCP server for Uber Eats - let AI agents order food delivery
Maintainers
Readme
@striderlabs/mcp-ubereats
MCP server for Uber Eats — let AI agents search restaurants, browse menus, place orders, and track deliveries.
Built by Strider Labs.
Features
- Search restaurants by name, cuisine, or food type
- Browse full menus with item details and prices
- Add items to cart with quantity and special instructions
- Clear cart and start fresh
- Place orders with a mandatory confirmation step
- Track active order status and delivery progress
- Persistent sessions — stay logged in across restarts
Installation
npm install -g @striderlabs/mcp-ubereatsOr run directly with npx:
npx @striderlabs/mcp-ubereatsConfiguration
Add to your MCP client configuration (e.g., Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"ubereats": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-ubereats"]
}
}
}Authentication
This connector uses Playwright browser automation. On first use:
- Call
ubereats_status— it will return a login URL - Open the URL in your browser and log in to Uber Eats
- Run
ubereats_statusagain to verify the session was saved - Session cookies are stored at
~/.strider/ubereats/cookies.json - Sessions persist automatically across restarts
To log out or reset your session:
ubereats_logoutAvailable Tools
Session Management
| Tool | Description |
|------|-------------|
| ubereats_status | Check login status; returns login URL if not authenticated |
| ubereats_login | Get the login URL to open in a browser |
| ubereats_logout | Clear stored session cookies (log out) |
Delivery
| Tool | Description |
|------|-------------|
| ubereats_set_address | Set delivery address before searching |
Restaurants & Menus
| Tool | Description |
|------|-------------|
| ubereats_search | Search restaurants by name, food type, or cuisine |
| ubereats_get_restaurant | Get restaurant details and full menu |
Cart & Ordering
| Tool | Description |
|------|-------------|
| ubereats_add_to_cart | Add an item to cart with quantity and special instructions |
| ubereats_view_cart | View current cart contents and totals |
| ubereats_clear_cart | Remove all items from cart |
| ubereats_checkout | Preview or place the order (confirm=true to place) |
| ubereats_track_order | Track an active order's status and ETA |
Example Usage
Check login status
{
"tool": "ubereats_status"
}Set delivery address
{
"tool": "ubereats_set_address",
"arguments": {
"address": "123 Main St, San Francisco, CA 94102"
}
}Search for restaurants
{
"tool": "ubereats_search",
"arguments": {
"query": "sushi",
"cuisine": "japanese"
}
}Get restaurant menu
{
"tool": "ubereats_get_restaurant",
"arguments": {
"restaurantId": "nobu-restaurant-sf"
}
}Add to cart
{
"tool": "ubereats_add_to_cart",
"arguments": {
"restaurantId": "nobu-restaurant-sf",
"itemName": "Spicy Tuna Roll",
"quantity": 2,
"specialInstructions": "No wasabi please"
}
}Preview order before placing
{
"tool": "ubereats_checkout",
"arguments": {
"confirm": false
}
}Place the order
{
"tool": "ubereats_checkout",
"arguments": {
"confirm": true
}
}Track order
{
"tool": "ubereats_track_order",
"arguments": {
"orderId": "abc123"
}
}Typical Workflow
1. ubereats_status — check if logged in
2. ubereats_set_address — set where to deliver
3. ubereats_search — find restaurants
4. ubereats_get_restaurant — browse the menu
5. ubereats_add_to_cart — add items
6. ubereats_view_cart — review cart
7. ubereats_checkout — preview (confirm=false), then place (confirm=true)
8. ubereats_track_order — track deliveryRequirements
- Node.js 18+
- Playwright (Chromium browser auto-installed on first run)
- An active Uber Eats account with a saved payment method
How It Works
- Headless Chrome — Playwright runs a real browser in the background
- Stealth mode — Browser fingerprint mimics a real user to avoid detection
- Cookie persistence — Login sessions are saved and reloaded automatically
- Structured responses — All tool outputs are JSON for easy parsing
Security
- Session cookies stored locally at
~/.strider/ubereats/cookies.json - No credentials are stored — authentication uses the browser-based Uber login flow
- Cookies never leave your machine
Limitations
- Uber Eats must be available in your region
- Menu customizations (modifiers, options) may require additional interaction
- Order placement requires a valid payment method on your Uber Eats account
- Dynamic pricing and availability may differ from what is displayed
Development
git clone https://github.com/markswendsen-code/mcp-ubereats.git
cd mcp-ubereats
npm install
npm run build
npm startLicense
MIT © Strider Labs
Related
- @striderlabs/mcp-doordash — DoorDash MCP connector
- @striderlabs/mcp-gmail — Gmail MCP connector
- Model Context Protocol — Learn more about MCP
