foodpanda-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FOODPANDA_LOCALE | No | API locale, e.g., 'en_HK' | |
| FOODPANDA_COUNTRY | No | Preset selector for region: 'hk' or 'ph' | hk |
| FOODPANDA_API_BASE | No | API host, for another country. Defaults to preset (e.g., https://hk.fd-api.com) | |
| FOODPANDA_CURRENCY | No | Basket currency, e.g., 'HKD' | |
| FOODPANDA_HEADLESS | No | Run the transport/login browser headless (1 or 0) | 1 |
| FOODPANDA_LATITUDE | Yes | Delivery address latitude (required) | |
| FOODPANDA_WEB_HOST | No | Storefront, login, payment redirects. Defaults to preset (e.g., https://www.foodpanda.hk) | |
| FOODPANDA_LONGITUDE | Yes | Delivery address longitude (required) | |
| FOODPANDA_STATE_DIR | No | Token + browser profile location | ~/.foodpanda-mcp |
| FOODPANDA_LANGUAGE_ID | No | API language id, default '1' | |
| FOODPANDA_SESSION_TOKEN | No | JWT, if you prefer to supply one instead of logging in | |
| FOODPANDA_BROWSER_CHANNEL | No | Chromium build to drive; empty = Playwright default (headless shell) | chromium |
| FOODPANDA_GQL_SEARCH_HASH | No | Apollo hash used by search_restaurants | |
| FOODPANDA_BROWSER_TRANSPORT | No | Route API calls through the browser context (1 or 0) | 1 |
| FOODPANDA_BROWSER_EXECUTABLE | No | Absolute path to a browser binary to drive instead (system Chrome/Chromium or existing Playwright build) | |
| FOODPANDA_GQL_VENDOR_LIST_HASH | No | Apollo hash used by list_outlets |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_restaurantsA | Search for restaurants on foodpanda Hong Kong near the configured delivery address (prices in HKD). Returns a list of matching restaurants with id (vendor code), name, cuisine, rating, delivery fee, estimated delivery time, and minimum order amount. Chain restaurants (e.g. McDonald's, KFC) include chain_code, chain_name, and total_outlets fields. When total_outlets > 1, use list_outlets with the chain_code to see all branches. |
| list_outletsA | List all outlet branches for a restaurant chain. Use the chain_code from search_restaurants results (only available when total_outlets > 1). Returns all outlets with their individual vendor codes, names, delivery fees, and distances so the user can pick a specific branch. |
| get_restaurant_detailsA | Get detailed information about a specific restaurant including address, opening hours, minimum order, and delivery info. |
| get_menuA | Get the menu for a restaurant, organized by category. Returns a compact list with each item's code, name, price, and sold-out status. Use the item code when adding to cart. Use get_item_details if you need topping/customization options for a specific item. |
| get_item_detailsA | Get full details for a menu item including all topping groups and customization options. Use this when you need to know what toppings/variations are available before adding to cart. |
| add_to_cartA | Add one or more items to the cart. If items are from a different restaurant than the current cart, the cart is cleared first. Sends the full cart to foodpanda for price validation and returns updated totals. |
| get_cartA | View the current in-memory cart contents including items, quantities, prices, delivery fee, service fee, and totals. Returns 'Cart is empty.' if no items have been added. |
| remove_from_cartA | Remove an item from the cart by its cart item ID (e.g. 'cart-1'). Re-calculates totals with remaining items. |
| preview_orderA | Preview the current cart as an order. Returns a summary of items, totals, delivery address, and available payment methods. IMPORTANT: After calling this, you MUST show the full summary to the user and ask them to explicitly confirm before calling place_order. Never place an order without user confirmation. |
| place_orderA | Place the current cart as an order. You MUST call preview_order first and get explicit user confirmation before calling this. Only 'payment_on_delivery' (Cash on Delivery) is supported. Credit card and GCash require browser-based payment flows that cannot be completed via MCP. |
| refresh_tokenA | Opens a browser window to https://www.foodpanda.hk so the user can log in to their foodpanda Hong Kong account. Intercepts the session token from network requests and updates the server. Call this when: (1) other tools return a 'session token expired' or 'No session token configured' error, or (2) the user wants to switch accounts. The browser window is visible — the user logs in manually (handling any CAPTCHAs or MFA). Once logged in, the token is captured automatically and saved for future sessions. Requires a desktop session; on a headless server set FOODPANDA_HEADLESS=1 and expect to complete the login elsewhere. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool has a clearly distinct purpose: restaurant discovery, menu browsing, cart management, order preview/placement, and authentication. Even get_menu and get_item_details are well separated by menu-level item data versus full customization details.
All tool names follow clear verb_noun snake_case conventions: search_/list_/get_ for lookups, add_to_cart/get_cart/remove_from_cart for cart operations, and preview_order/place_order for checkout. The naming pattern is predictable and consistent across the full set.
11 tools is well-scoped for the food delivery ordering domain. Each tool maps to a necessary step in the workflow from restaurant discovery to placing an order, with no redundant or unnecessary additions.
The set covers the core lifecycle: search restaurants, browse menus, manage cart, preview, and place order. Minor gaps like not having an explicit quantity update or clear-cart operation, and lacking order history, keep it slightly below complete, but agents can work around these.