# iFood MCP

> iFood MCP connects your AI agent directly to your restaurant's backend operations on iFood. Manage everything from real-time order flow and status updates to updating your full menu catalog, store hours, and delivery logistics—all through natural language commands.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** food-delivery, restaurant-operations, menu-management, order-tracking, real-time-sync

## Description

Running a multi-location food business means juggling orders, menus, and schedules across multiple platforms. This MCP lets you automate all of that using only your AI agent. Instead of logging into the iFood portal to check statuses or manually changing prices, you simply ask your agent to perform the task. It reads incoming order details, helps you progress an order from pending through preparation, and tracks delivery assignments when needed. You can also update your store's operating hours for any day or modify specific items in your menu catalog without touching a single button. If managing multiple locations is complex, connecting iFood via Vinkius gives you one central point of control to handle all these operations.

## Tools

### assign_driver
Assigns a specific delivery driver to an iFood order ID to coordinate fulfillment.

### get_business_hours
Retrieves the current operating hours for a specified iFood store location.

### get_catalog
Provides a full review of the menu structure, allowing you to check item availability or plan price updates.

### get_logistics
Tracks the delivery progress and provides logistics information for an existing iFood order.

### get_order_details
Retrieves complete details, including customer info and item totals, for a single specified iFood order.

### get_orders
Lists all orders for the store, filtering by status like PENDING or ACCEPTED, to track overall order volume.

### get_store_details
Fetches detailed configuration and information about a specific iFood store location.

### get_stores
Lists all associated store IDs, names, and addresses linked to the merchant account.

### update_business_hours
Modifies the operating schedule for a store across multiple days of the week with a structured JSON payload.

### update_catalog_item
Allows you to change specific fields like prices, availability, or descriptions for an existing menu item.

### update_order_status
Moves a specific order through the fulfillment pipeline by updating its status (e.g., from PENDING to DISPATCHED).

## 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 'Combo Burger Especial' to R$32.90 and mark it as unavailable until tomorrow
```

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

**Prompt:** 
```
Change my store hours to open at 11am and close at 11pm every day this week
```

**Response:** 
```
I'll update your business hours for the entire week right now.
```

## Capabilities

### Monitor and progress orders
Watch incoming order statuses in real time, from listing new arrivals to updating the fulfillment status (e.g., accepting or preparing) through the pipeline.

### Manage store information
Retrieve detailed store configuration and list all associated locations using the `get_stores` tool before making any changes.

### Update menu pricing and availability
Change item prices, toggle availability, or update descriptions within your digital catalog using the `update_catalog_item` tool.

### Handle store scheduling
Set or change your operating hours for specific days of the week with the `update_business_hours` tool.

### Track deliveries and personnel
Get real-time logistics information, track order fulfillment progress, and assign drivers to orders using tools like `get_logistics` and `assign_driver`.

## Use Cases

### The morning rush of order acceptance
A manager needs to process 50 orders that came in overnight. Instead of opening the app, clicking each order, and updating its status manually, they ask their agent to 'Check for all pending orders and set them to ACCEPTED.' The agent runs `get_orders` and executes `update_order_status` on every item.

### Updating prices due to ingredient shortages
The kitchen ran out of a key ingredient, meaning the 'Mega Burger' needs a price reduction and must be marked unavailable. The user asks their agent, which uses `get_catalog` to verify the item ID before executing `update_catalog_item` to change both the price and availability.

### Handling store closures for holidays
The team needs to make sure all physical locations are correctly marked as closed for a public holiday. They ask their agent, which uses `get_stores` to find every location ID, then runs `update_business_hours` for each one with the correct schedule.

### Coordinating last-minute logistics changes
A delivery driver calls and says they need a different pickup point. The manager asks their agent to use `get_logistics` to verify the current plan, then uses that data to communicate with the appropriate personnel.

## Benefits

- Stop wasting time clicking through status updates. You can use `get_orders` to pull all pending items, then tell your agent to update the status for each one using `update_order_status`.
- Never manually update menus again. Use `get_catalog` first to review existing prices and descriptions; then use `update_catalog_item` to mass-adjust pricing or toggle availability instantly.
- Manage multiple locations without switching portals. First, run `get_stores` to get all your facility IDs, and then target specific stores with tools like `update_business_hours`.
- Improve dispatch coordination by using `assign_driver`. The agent handles the flow of assigning a delivery person once an order is ready for pickup.
- Keep operations running smoothly even when staff are swamped. Your agent can pull necessary data, such as customer information from `get_order_details`, and draft confirmations automatically.

## How It Works

The bottom line is that natural language instructions replace clicking through multiple complex operational dashboards.

1. You connect your iFood merchant account credentials through the Vinkius Marketplace.
2. You tell your AI agent exactly what you need to do, like 'Check all pending orders and update their status to prepared.'
3. The agent executes the necessary commands using the available tools, handling the order flow or catalog changes automatically.

## Frequently Asked Questions

**How do I check if an order is ready for dispatch using iFood MCP?**
You use the `get_order_details` tool to review all contents and status. If everything looks good, you can ask your agent to run `update_order_status` to move it to DISPATCHED.

**Can iFood MCP help me update prices for multiple menu items?**
Yes. You use the `get_catalog` tool first to view all item IDs, then direct your agent to execute `update_catalog_item` with a list of IDs and their new prices.

**What if I need to change my store hours for only one day?**
You can use the `get_business_hours` tool to view the current schedule, then instruct your agent to run `update_business_hours` specifying the exact date and times needed.

**How does iFood MCP handle multiple store locations?**
It first requires you to use `get_stores` to list all location IDs. Then, any subsequent operation like setting hours or viewing details must reference those specific IDs.

**Can I track a driver assignment after an order is placed?**
Yes, run the `get_logistics` tool with the order ID. This provides current tracking data and helps coordinate fulfillment efforts.