grubhub-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| loginC | Log in to Grubhub with email and password. Returns session info on success. |
| logoutA | Log out of the current Grubhub session. |
| get_session_infoA | Get current authentication state and session info. |
| send_login_otpB | Send a one-time passcode to the given email for login. |
| verify_login_otpA | Verify a one-time passcode and complete login. |
| create_accountC | Create a new Grubhub account. |
| send_password_resetC | Send a password reset OTP to the given email. |
| search_restaurantsB | Search for restaurants near a location. Args: latitude: Latitude of the delivery address longitude: Longitude of the delivery address query: Optional search query (cuisine, restaurant name, dish) page_size: Number of results per page (default 20) page_num: Page number for pagination (1-based, default 1) sort_type: Optional sort — leave empty for default relevance location_mode: DELIVERY or PICKUP (default DELIVERY) |
| autocomplete_searchB | Get autocomplete suggestions for a search query. Args: query: The partial search text latitude: Latitude for location context longitude: Longitude for location context location_mode: DELIVERY or PICKUP (default DELIVERY) |
| get_restaurantB | Get restaurant details including menu, hours, ratings, and delivery info. Args: restaurant_id: The Grubhub restaurant ID latitude: Optional latitude for delivery estimates longitude: Optional longitude for delivery estimates order_type: Order type - standard, catering (default standard) |
| get_menuA | Get the full menu for a restaurant including categories, items, and prices. This is the same as get_restaurant — the v4 endpoint returns the full menu. Args: restaurant_id: The Grubhub restaurant ID latitude: Optional latitude for availability longitude: Optional longitude for availability |
| get_menu_itemB | Get details for a specific menu item including options, add-ons, and pricing. Args: restaurant_id: The Grubhub restaurant ID item_id: The menu item ID order_type: Order type - standard, catering (default standard) latitude: Optional latitude for availability longitude: Optional longitude for availability |
| create_cartB | Create a new cart with the first item. Args: restaurant_id: The restaurant ID to order from menu_item_id: The menu item ID to add quantity: Number of this item (default 1) special_instructions: Special preparation instructions options: List of selected options/add-ons, each with {id, quantity} latitude: Delivery latitude longitude: Delivery longitude is_delivery: True for delivery, False for pickup |
| get_cartB | Get the current state of a cart including items, totals, and fees. Args: cart_id: The cart ID |
| add_to_cartB | Add an item to an existing cart. Args: cart_id: The cart ID to add to menu_item_id: The menu item ID to add quantity: Number of this item (default 1) special_instructions: Special preparation instructions options: List of selected options/add-ons, each with {id, quantity} |
| update_cart_itemB | Update the quantity of an item in the cart. Args: cart_id: The cart ID line_item_id: The line item ID to update quantity: New quantity (0 to remove) |
| remove_from_cartC | Remove an item from the cart. Args: cart_id: The cart ID line_item_id: The line item ID to remove |
| apply_promo_codeC | Apply a promotion code to the cart. Args: cart_id: The cart ID promo_code: The promotion code to apply |
| set_tipC | Set the tip amount on the cart. Args: cart_id: The cart ID tip_amount: Tip amount in dollars |
| place_orderB | Place an order from a cart. Requires authentication. Args: cart_id: The cart ID to submit as an order payment_method_id: ID of the payment method to use (uses default if not specified) tip_amount: Optional tip amount in dollars |
| get_orderC | Get details for a specific order. Args: order_id: The order ID |
| get_order_historyA | Get past order history (paginated). Requires authentication. Pagination is server-side via the Args: page_size: Orders per page (default 20) page_num: 1-based page number (default 1) |
| track_orderB | Get real-time tracking info for an active order. Args: order_id: The order ID to track |
| reorderB | Create a new cart from a previous order for easy reordering. Args: order_id: The order ID to reorder |
| post_delivery_tipB | Add or update the tip after delivery. Args: order_id: The order ID tip_amount: Tip amount in dollars |
| get_profileA | Get the current user's profile information. Requires authentication. |
| update_profileC | Update user profile information. Requires authentication. Args: first_name: New first name last_name: New last name phone: New phone number |
| get_addressesA | Get saved delivery addresses. Requires authentication. |
| add_addressB | Add a new delivery address. Requires authentication. Args: street_address: Street address line city: City name state: State abbreviation (e.g. NY, CA) zip_code: ZIP code apt_suite: Apartment/suite number delivery_instructions: Special delivery instructions label: Label for the address (e.g. Home, Work) |
| get_favoritesB | Get favorite/saved restaurants. Requires authentication. |
| add_favoriteB | Add a restaurant to favorites. Requires authentication. Args: restaurant_id: The restaurant ID to favorite |
| remove_favoriteB | Remove a restaurant from favorites. Requires authentication. Args: restaurant_id: The restaurant ID to unfavorite |
| change_passwordC | Change account password. Requires authentication. Args: current_password: Current password new_password: New password |
| get_payment_methodsB | Get saved payment methods. Requires authentication. |
| get_gift_card_balanceC | Check the balance of a Grubhub gift card. Args: card_number: Gift card number pin: Gift card PIN |
| apply_gift_cardC | Apply a gift card to a cart. Args: cart_id: The cart ID card_number: Gift card number pin: Gift card PIN |
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 36 tools
Most tools target distinct resources and actions, but get_restaurant and get_menu are explicitly documented as returning the same data ('This is the same as get_restaurant'), creating a real selection ambiguity. The set_tip vs post_delivery_tip and create_cart vs add_to_cart pairs are reasonably differentiated by context.
Nearly all tools follow a consistent snake_case verb_noun pattern (get_restaurant, create_cart, apply_promo_code, send_login_otp). The bare login/logout exceptions are conventional and unambiguous.
36 tools is heavy for this domain. The cart, order, search, and profile groups each earn their place, but the eight auth/account tools (login, logout, get_session_info, two OTP flows, create_account, reset, change_password) are bloated relative to need.
Strong lifecycle coverage: auth, search, restaurant/menu browsing, cart management, ordering, tracking, reorder, profile, addresses, payment, and favorites. Minor gaps like no remove/update address, no add payment method, and no order cancellation keep it short of full coverage.