| name | ubereats-ordering |
| description | Guides agents using the ubereats-cli MCP tools or CLI to search Uber Eats, inspect menus, handle customizations, and add items to cart. Use when the user asks an agent to order food, add Uber Eats items to cart, choose restaurants, inspect menu options, or operate this repo's Uber Eats MCP. |
Uber Eats Ordering
Rules
- Do not checkout or pay.
- If the user does not specify an interface, prefer the CLI.
- Use the user's saved location unless they ask to change it.
- If changing location, set it first and confirm the returned address.
- Do not invent UUIDs. Use IDs returned by store, menu, and option lookups.
Standard Flow
- Check the active delivery location.
- Search stores for the requested restaurant or food.
- Pick an orderable store from the results.
- For normal meals, list customizable menu items with a high enough limit.
- Select an item and keep its
item_uuid, section_uuid, and subsection_uuid.
- Inspect that item's customization options using all four IDs.
- Build
selections from path_key to selected option_uuid values.
- Add the customized item to cart.
Use the directly-addable menu path only for items where no options are needed, such as drinks, chips, cookies, or other directly addable items.
Customization Guidance
get_store_menu returns all items by default. addable=false usually means the item requires customization, not that it is unavailable.
For customizable items:
- Use the exact four IDs from the selected menu item.
- For single-choice groups, select one option UUID.
- For multi-choice groups, select any desired option UUIDs up to
max.
- Leave
auto_defaults=true unless the user explicitly wants to remove defaults.
- Avoid paid add-ons unless the user asks for them.
selections shape:
{
"path_key": ["option_uuid"]
}
Error Recovery
missing required IDs: repeat menu lookup and pass all four IDs.
item_uuid requires customization: use get_item_options and add_customized_item_to_cart.
item_uuid not found in store menu: repeat get_store_menu or get_customizable_menu_items; the UUID likely came from another store or stale context.
- Bad or blank tool arguments usually mean context drift. Restart from
search_stores and menu lookup.
CLI Equivalents
uv run ubereats location
uv run ubereats search "Subway"
uv run ubereats customizable-menu STORE_UUID --limit 100
uv run ubereats item-options STORE_UUID ITEM_UUID SECTION_UUID SUBSECTION_UUID
uv run ubereats add-customized STORE_UUID ITEM_UUID SECTION_UUID SUBSECTION_UUID '{"path_key":["option_uuid"]}'