npm @striderlabs/mcp-ubereatsstdioupdated 5mo ago
MCP server for Uber Eats — let AI agents search restaurants, browse menus, place orders, and track deliveries.
What can you do with ubereats?
@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-ubereats
Or run directly with npx:
npx @striderlabs/mcp-ubereats
Configuration
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_logout
Available 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 delivery
Requirements
- 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 start
License
MIT © Strider Labs
Related
- @striderlabs/mcp-doordash — DoorDash MCP connector
- @striderlabs/mcp-gmail — Gmail MCP connector
- Model Context Protocol — Learn more about MCP
Install
Add ubereats to your client. Pick the one you use.
claude mcp add mcp-ubereats -- npx -y @striderlabs/mcp-ubereatscodex mcp add mcp-ubereats -- npx -y @striderlabs/mcp-ubereatsamp mcp add mcp-ubereats -- npx -y @striderlabs/mcp-ubereats{
"mcpServers": {
"mcp-ubereats": {
"command": "npx",
"args": [
"-y",
"@striderlabs/mcp-ubereats"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"mcp-ubereats": {
"command": "npx",
"args": [
"-y",
"@striderlabs/mcp-ubereats"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"mcp-ubereats","command":"npx","args":["-y","@striderlabs/mcp-ubereats"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"mcp-ubereats": {
"command": "npx",
"args": [
"-y",
"@striderlabs/mcp-ubereats"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"mcp-ubereats": {
"command": "npx",
"args": [
"-y",
"@striderlabs/mcp-ubereats"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"mcp-ubereats": {
"command": "npx",
"args": [
"-y",
"@striderlabs/mcp-ubereats"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"mcp-ubereats": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@striderlabs/mcp-ubereats"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"mcp-ubereats": {
"command": {
"path": "npx",
"args": [
"-y",
"@striderlabs/mcp-ubereats"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @striderlabs/mcp-ubereatsRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance13/25
- Trust6/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 169 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.0Latest | Mar 15, 2026 |