# Deliveroo MCP MCP

> Deliveroo MCP handles full restaurant order management. Accept incoming deliveries, track preparation stages from kitchen start to ready for collection, and sync Point-of-Sale data—all directly through your AI agent. It gives managers real-time control over the entire order flow without switching screens.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** food-delivery, restaurant-management, order-tracking, pos-integration, delivery-services

## Description

Managing a busy restaurant's delivery intake requires constant attention across multiple systems: the tablet, the POS terminal, and the kitchen board. This MCP connects your Deliveroo account to any compatible client so you can handle the full lifecycle of an order using natural language. You don’t need to jump between tabs or manually update statuses. Your agent handles everything from listing live orders to confirming receipt and even reporting out-of-stock items at the POS level. When you connect this via Vinkius, your AI agent becomes a single operational dashboard for your entire kitchen flow. It allows you to query historical data by date range for performance checks or simply update an order's stage when it moves from 'in_kitchen' to ready for pick up. It keeps the whole operation moving without human error.

## Tools

### create_prep_stage
Updates the internal preparation status of a confirmed order (e.g., from 'in_kitchen' to 'ready_for_collection').

### create_sync_status
Reports whether or why a payment injection failed or succeeded at your point-of-sale system.

### get_order
Retrieves specific details and metadata for a single, given order ID.

### get_orders
Lists all live and pending Deliveroo orders for the restaurant location.

### update_order_status
Accepts, rejects, or confirms an incoming Deliveroo order within the necessary timeframe.

## Prompt Examples

**Prompt:** 
```
List all live orders for restaurant ID 'REST123'.
```

**Response:** 
```
I've retrieved the live orders for REST123. There are currently 3 active orders: #ABC-1, #ABC-2, and #ABC-3. Would you like details for any of these?
```

**Prompt:** 
```
Accept order 'ORD-999' and set its stage to 'in_kitchen'.
```

**Response:** 
```
Order 'ORD-999' has been successfully accepted and the preparation stage is now updated to 'in_kitchen'.
```

**Prompt:** 
```
Notify Deliveroo that order 'ORD-456' failed to sync with the POS because items are out of stock.
```

**Response:** 
```
I've sent the sync status update for order 'ORD-456'. It is marked as 'failed' with the reason: 'items_out_of_stock'.
```

## Capabilities

### List and Retrieve Orders
Fetch a list of all current deliveries or pull specific metadata for a single order ID.

### Accept, Reject, or Confirm Order Status
Change the official status of an incoming order immediately upon receipt to confirm acceptance.

### Update Preparation Stage
Advance an order's internal state from prep work through to ready for collection by riders.

### Sync POS Transaction Status
Inform the delivery platform whether a payment injection succeeded or failed at your point of sale system.

## Use Cases

### New Day, New Orders
A manager sees a sudden influx of orders and needs to know how many are live. They ask their agent to 'List all active deliveries for us today.' The agent runs `get_orders` and provides an immediate count and list, letting the manager prioritize acceptance.

### Kitchen Bottleneck
A food prep worker finishes a large order. Instead of yelling or manually updating a whiteboard, they tell their agent to 'Mark order #ABC-1 as ready for collection.' The agent calls `create_prep_stage`, notifying everyone involved.

### POS Failure
The POS terminal fails to register payment for an accepted order. Instead of calling tech support, the manager tells their agent 'Report a sync failure for #XYZ-1.' The agent calls `create_sync_status` with the correct error code.

### End-of-Week Report
An operations team member needs to audit last week's performance. They ask their agent to 'Show me all orders received from Brand X between Monday and Wednesday.' The agent queries historical data, saving hours of manual spreadsheet work.

## Benefits

- Get immediate visibility into all deliveries. Use `get_orders` to list every active order without opening a single dashboard tab.
- Handle time-sensitive intake. When an order arrives, use `update_order_status` to accept or reject it quickly, preventing operational delays.
- Track prep progress accurately. Call `create_prep_stage` the moment items are finished, keeping both riders and customers informed instantly.
- Maintain financial records. Use `create_sync_status` to ensure your POS system reports payment failure reasons directly back to Deliveroo.
- Audit performance easily. Query historical data using the MCP to check order volumes by brand or date range.

## How It Works

The bottom line is: you tell the system what needs to happen, and it executes the required order updates with a single prompt.

1. Subscribe to this MCP and enter your Deliveroo API Client ID and Secret.
2. Connect your preferred AI client (Claude, Cursor, etc.) through Vinkius.
3. Use natural language commands in your agent to list orders, update stages, or check POS sync status.

## Frequently Asked Questions

**How do I check if an order was accepted using the `update_order_status` tool?**
The `update_order_status` tool handles acceptance. You call it immediately after receiving the delivery to confirm that your restaurant is taking the job and it's active in your system.

**Can I list all orders or just one using the Deliveroo MCP?**
The MCP provides two options: `get_orders` lets you see a full list of live deliveries. Use `get_order` if you already know the specific ID and only need details on that single order.

**Does `create_prep_stage` update customer visibility?**
Yes, calling `create_prep_stage` signals the system (and thus the platform) that the order is ready for collection. This keeps riders and customers informed about the current status.

**What do I use if the payment fails? Should I call `create_sync_status`?**
Yes, you must use `create_sync_status`. It sends a specific update to Deliveroo detailing that the POS injection failed and providing the reason (like 'items_out_of_stock').

**What do I need to know about rate limits when calling `get_orders`?**
The Deliveroo MCP adheres to standard API rate limits. If you make too many calls in a short period, your agent will receive a 429 error. It's best practice to batch requests or wait a few seconds between multiple list operations.

**If I miss the 10-minute window for `update_order_status`, can I still accept or reject the order?**
No, timely execution is critical. The `update_order_status` tool must be called within a short timeframe of receiving the request; otherwise, the status update will fail due to time expiration.

**How do I ensure data accuracy when calling `create_prep_stage`?**
You must supply both the unique Order ID and the precise new stage identifier. Using an incorrect stage value (e.g., 'in_kitchen' instead of 'ready_for_collection') will cause the update to fail.

**What is the required format for filtering historical data when using `get_orders`?**
You pass specific parameters like brand names or date ranges directly into the tool call. This allows you to narrow down large datasets, avoiding a massive list dump.

**Can I reject an order if an ingredient is unavailable?**
Yes. Use the `update_order_status` tool with the status 'rejected' and provide 'ingredient_unavailable' as the reason.

**How do I notify the rider that the food is ready for collection?**
You can use the `create_prep_stage` tool and set the stage to 'ready_for_collection'. This updates both Deliveroo and the rider.

**Is it possible to see only the orders that are currently active?**
Yes, use the `get_orders` tool and set the `live_orders` parameter to true to filter for ongoing deliveries.