MCP server for AI-driven food delivery on Uber Eats and Thuisbezorgd
OrderFood has 12 well-named tools with consistent verb_noun patterns (search_restaurants, get_restaurant, add_to_cart, place_order, etc.). All tools have descriptions (avg ~100 chars, within baseline 34 - 392). Input schemas are present with enums for platform selection. However, parameter descriptions are sparse or missing: 'restaurant_id', 'item_id', 'order_id', 'address_id', 'payment_method_id' lack descriptions entirely. Output schemas are not documented, LLMs cannot infer what fields to expect from responses. Error handling is minimal; no recovery guidance or actionable error messages visible. The place_order tool (IRREVERSIBLE risk) lacks confirmation/dry-run pattern. Overall: solid naming and basic structure, but incomplete parameter docs and missing output schemas prevent higher scores.
Add a menu item to the cart on the specified platform. Provide option selections as { group_id, option_id } pairs. Required option groups must be satisfied.
Cancel an order if it is still within the cancellable window. Throws if cancellation is no longer possible.
Remove all items from the cart on the specified platform.
Get the current cart state on the specified platform, including items, quantities, selected options, and price totals. Returns null if the cart is empty.
Retrieve past orders for the authenticated account on the specified platform.
List saved payment methods for the authenticated account. Use the returned id values when calling place_order.
Output schemas not documented. LLMs cannot infer response structure (fields, types, pagination). Forces agents to guess what data is available after each call.
Parameter descriptions missing or minimal. 'restaurant_id', 'item_id', 'order_id', 'address_id', 'payment_method_id' have null/empty descriptions. LLMs cannot determine what format or source these IDs come from.
place_order is IRREVERSIBLE but lacks confirmation/dry-run pattern. Agents can place orders without a safety gate. No recovery guidance if payment fails mid-flow.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Get full details for a restaurant including its categorized menu, item prices, and modifier option groups.
List saved delivery addresses for the authenticated account on the specified platform.
Check whether a platform is reachable and credentials are valid. Returns { platform, status, latency_ms }. Call this when you receive auth or network errors to diagnose the issue before retrying a complex flow. status values: "ok" | "auth_error" | "rate_limited" | "error"
Place the current cart as a delivery order to the specified address using the specified payment method. Returns the created order.
Search for restaurants on the specified food delivery platform near a location. Optionally filter by cuisine type or keyword, and sort results.
Get the current delivery status of an order.
No error handling guidance visible. Tools do not document what errors are retryable, user-fixable, or fatal. Agents cannot self-correct on auth/network failures.
add_to_cart 'options' parameter is an array of objects with group_id/option_id, but no description explains how to obtain valid group_id/option_id values or what happens if required groups are missing.