# Uber Eats MCP

> Uber Eats MCP handles all restaurant and delivery operations through your AI client. Use it to monitor incoming orders, update menus instantly, track couriers in real-time, and manage store status across multiple locations. It turns complex manual processes into simple natural language commands.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** order-management, menu-management, delivery-tracking, merchant-services, real-time-monitoring

## Description

You can connect your AI agent directly to the full Uber Eats marketplace API. This means you don't have to jump between apps or manually update statuses when things go wrong. You can ask it to monitor all pending orders, check if ingredients are running low by reviewing menu items, and then process them instantly.

Need to handle a large rush? Your agent checks incoming orders for capacity, accepts the ones you can manage, marks others as unavailable, and even notifies the customer with an accurate delay estimate. You can also view detailed order histories to address complaints or track down specific delivery issues. When managing multiple locations, this MCP gives you a central place to check store configurations and monitor everything from one chat window. It’s housed within Vinkius, giving your agent access to thousands of services so you only connect once.

## Tools

### accept_order
Accepts a pending order, confirming preparation is starting and triggering courier assignment.

### cancel_order
Cancels an already accepted order for unavoidable reasons, requiring a specific reason code.

### complete_order
Closes the order lifecycle after delivery is confirmed and final payment processing is triggered.

### get_delivery_status
Retrieves real-time tracking information for a specific order, including courier location and estimated arrival time.

### get_menus
Fetches the complete list of available items, prices, and IDs for a restaurant's menu structure.

### get_order_issues
Pulls up records of customer complaints or reported problems linked to an order ID, along with resolution status.

### get_order
Retrieves complete details for a single specific order, including special instructions and item breakdowns.

### get_orders
Lists all orders across your restaurants, allowing filtering by status like PENDING or READY.

### get_store
Gets detailed information and operational settings for one specific restaurant location.

### get_stores
Lists all unique store IDs, names, and addresses associated with your entire merchant account.

### mark_order_prep_started
Updates the order status to 'Preparing' and notifies the customer that food is being made.

### mark_order_ready
Changes the order status, notifying couriers that the food is packaged and ready for immediate pickup.

### reject_order
Rejects a pending order using specific codes (like 'too_busy') when you cannot fulfill it.

### update_menu_item_availability
Toggles an item's availability status, marking it either in-stock or out-of-stock instantly.

## Prompt Examples

**Prompt:** 
```
Show me all pending orders and accept them automatically
```

**Response:** 
```
I'll check your pending orders and accept them right away.
```

**Prompt:** 
```
Update the price of 'Margherita Pizza' to R$45.90 and mark it as unavailable
```

**Response:** 
```
I'll update the menu item price and toggle its availability.
```

**Prompt:** 
```
Track the delivery status of order #12345 and tell me where the courier is
```

**Response:** 
```
I'll get real-time delivery tracking with courier location and ETA.
```

## Capabilities

### Monitor real-time order flow
View all current orders—pending, accepted, or rejected—to keep a live count of kitchen workload.

### Manage menu availability and pricing
Quickly toggle items as available or out of stock and update prices without logging into the merchant portal.

### Track courier movement and ETAs
Get live GPS coordinates for delivery couriers and accurate estimated times of arrival.

### Handle order lifecycle events
Move an order from pending to accepted, preparing, ready for pickup, or finally delivered using simple commands.

### Review detailed transaction history and issues
Pull up full customer details, special instructions, or review documented complaints and refund requests for any specific order.

### View multi-store operational data
Check the configuration, status, and unique identifiers for all your registered restaurant locations.

## Use Cases

### Handling the dinner rush surge
The manager sees 50 pending orders come in during peak hour. Instead of clicking through 50 screens, they ask their agent to review all and accept only those matching capacity limits. The agent uses `get_orders` followed by multiple calls to `accept_order`, keeping the kitchen flowing without human bottleneck.

### Dealing with supply shortages
The chef runs out of a key topping mid-shift. Instead of calling someone to update the menu, they ask their agent to check the full catalog using `get_menus` and then immediately use `update_menu_item_availability` on that specific item.

### Investigating an incorrect refund
A customer calls about a disputed charge. The owner asks their agent to pull up the order history using `get_order_issues`. The agent finds the timestamp of the complaint and the resolution status, giving them concrete data for the conversation.

### Pre-opening checklist
A franchise manager needs to verify that all 12 store locations are active. They ask their agent to list all operational sites using `get_stores` and check each one's specific setup details with `get_store` before the day begins.

## Benefits

- Speed up order intake by letting the agent monitor incoming orders and automatically accepting them if kitchen capacity allows. You don't have to manually review each new ping when dinner service starts.
- Maintain inventory accuracy by using `update_menu_item_availability` to toggle items as out-of-stock immediately, preventing customers from ordering unavailable goods.
- Keep customers informed during delays. Use the agent to mark that food preparation has started (`mark_order_prep_started`) so delivery estimates stay accurate and people don't call in asking where your order is.
- Streamline issue resolution by pulling up full details for any order using `get_order`. You can review special instructions or customer complaints without leaving the chat window.
- Manage multiple physical locations from one spot. By calling `get_stores`, you get a master list of all store IDs needed to run menu updates or check operational status across your entire chain.

## How It Works

The bottom line is: it uses natural language commands to automate core restaurant logistics tasks across multiple systems.

1. First, connect your Uber Eats merchant account to the MCP using an OAuth token.
2. Next, tell your AI agent what you need—for example, 'Check all pending orders and accept any that are simple.'
3. Finally, the agent executes the necessary API calls to update statuses, retrieve data, or modify menus on your behalf.

## Frequently Asked Questions

**How do I know if an incoming Uber Eats order was accepted by the restaurant?**
You monitor the status using `get_orders`. The status changes from PENDING to ACCEPTED when your system successfully accepts the request.

**What is the difference between rejecting and canceling an order with Uber Eats MCP?**
Rejecting happens before acceptance (e.g., using `reject_order` if you are too busy). Canceling happens after acceptance, which usually carries a higher risk of penalties.

**Can I check the menu availability for all my locations with Uber Eats MCP?**
No, you must first list all your store IDs using `get_stores`, and then run `get_menus` separately for each location ID to get a full catalog.

**If I mark an order as ready, what happens next?**
Calling `mark_order_ready` triggers the system notification that tells couriers your food is packaged and waiting for pickup at your specified location.

**How do I check if a customer filed a complaint on an order?**
Use the `get_order_issues` tool. It pulls up records of complaints, timestamps, and whether a refund has already been issued for that specific transaction.