Uber Eats MCP Server
Community proof-of-concept MCP server that uses browser automation to search Uber Eats for restaurants and place food orders from an AI agent.
Uber Eats MCP Server is a community-built, proof-of-concept Model Context Protocol server created by Eric Zakariasson. It is not an official Uber product. The server lets an LLM client search restaurants and menus on Uber Eats and place orders by driving the Uber Eats web app through Playwright browser automation rather than calling a public API.
The implementation is intentionally minimal. It exposes two tools, find_menu_options for searching the catalog and order_food for placing an order from a restaurant URL, plus a resource endpoint that returns asynchronously generated search results. Because it relies on a headless browser session, the server effectively acts on behalf of a real signed-in user.
The repo is Python only (Python 3.12+), uses uv for dependency management, and requires an Anthropic API key to drive the underlying browser-use agent. The author explicitly labels this as a POC, so it is best treated as a reference implementation for building browser-driven MCP servers on top of consumer apps, not as production infrastructure.
Tools
| Tool | Description |
|---|---|
find_menu_options |
Search Uber Eats for restaurants or food items. |
order_food |
Order food from a restaurant. |
Prerequisites
- Python 3.12 or higher
uvpackage manager- An Anthropic API key (used by the browser-use agent that drives Playwright)
Install
git clone https://github.com/ericzakariasson/uber-eats-mcp-server.git
cd uber-eats-mcp-server
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
playwright install
Configure environment
Create a .env file in the project root:
ANTHROPIC_API_KEY=your_anthropic_api_key_here
Run in dev / inspector
uv run mcp dev server.py
Claude Desktop config
The README does not ship a Claude Desktop config block. A working config using uv looks like:
{
"mcpServers": {
"uber-eats": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/uber-eats-mcp-server",
"run",
"server.py"
],
"env": {
"ANTHROPIC_API_KEY": "your_anthropic_api_key_here"
}
}
}
}
Note: Because stdio is used as the MCP transport, browser output is intentionally suppressed. The agent will open a real browser session via Playwright to interact with Uber Eats.
- Let an AI assistant search Uber Eats for nearby restaurants or specific dishes from a natural-language prompt
- Automate placing a recurring lunch order from a known restaurant URL without opening the Uber Eats app
- Prototype browser-automation-based MCP servers for consumer apps that lack public APIs
- Build a personal food-ordering agent that combines search results with the resource endpoint for async retrieval
- Demo how MCP tools can wrap Playwright-driven workflows for end-to-end task execution
- "Find me vegetarian ramen options on Uber Eats near my address."
- "Search Uber Eats for late-night pizza places open right now."
- "Order a large pepperoni pizza from this restaurant: https://www.ubereats.com/store/..."
- "Look up sushi restaurants on Uber Eats and show me the top options."
- "From the search results in resource://search_results/{id}, pick the highest-rated taco place and order two carne asada tacos."
- Concrete working example of an MCP server that drives a consumer web app via Playwright
- Minimal surface area, just two tools, so the code is easy to read and adapt
- Uses standard tooling (
uv, Playwright, Anthropic) that fits typical MCP development setups
- Explicitly a proof-of-concept, not maintained as production software
- Unofficial, not affiliated with or endorsed by Uber, so account terms of service and CAPTCHAs/login flows may break it at any time
- Requires an Anthropic API key in addition to MCP client costs, and depends on a real signed-in browser session
- matr1xp/ubereats_mcp_server, a TypeScript implementation that integrates with n8n for browser automation
- markswendsen-code/mcp-ubereats, another community MCP server for Uber Eats with search, browse, order, and tracking tools
- tas1337/mcp-Im-hungry, a multi-provider food delivery MCP that aggregates Uber Eats with other services