grubhub-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Host to bind for HTTP transports | 127.0.0.1 |
| PORT | No | Port to bind for HTTP transports | 8001 |
| MCP_PATH | No | Path for MCP endpoint | /mcp |
| MCP_TRANSPORT | No | Transport protocol: stdio, http, streamable-http, or sse | stdio |
| MCP_ALLOWED_HOSTS | No | Comma-separated list of allowed hosts | |
| MCP_JSON_RESPONSE | No | Set to '1' to enable JSON response mode | |
| GRUBHUB_USER_AGENT | No | User-Agent string for requests | Grubhub/2026.24.2 (Android; Android 15) |
| GRUBHUB_SESSION_DIR | No | Directory to store Grubhub session data | ~/.grubhub-mcp |
| MCP_ALLOWED_ORIGINS | No | Comma-separated list of allowed origins |
Capabilities
Features and capabilities supported by this server
| 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 |
|---|---|
| get_ordering_guideA | get the recommended Grubhub ordering workflow and safety rules. call this before building an order, especially for campus-card orders. |
| 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, PICKUP, CAMPUS, ONSITE, or PICKUP_CAMPUS (default DELIVERY) |
| search_campus_restaurantsA | search Grubhub campus/onsite restaurants near a campus location. use this for campus-card dining. it sets Grubhub locationMode=CAMPUS. Args: latitude: Latitude of the campus pickup/delivery location longitude: Longitude of the campus pickup/delivery location query: Optional restaurant or dish query page_size: Number of results per page (default 20) page_num: Page number for pagination (1-based, default 1) |
| 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_restaurantA | 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_menuB | 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_itemA | 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 |
| set_pickup_infoB | set pickup contact information on a cart before checkout. Args: cart_id: The cart ID name: Pickup contact name phone: Pickup contact phone number email: Pickup contact email address pickup_instructions: Optional pickup instructions |
| set_incomplete_delivery_locationB | mark a cart for delivery with coordinates before full address is set. Args: cart_id: The cart ID latitude: Delivery latitude longitude: Delivery longitude |
| get_cartB | get the current state of a cart including items, totals, and fees. Args: cart_id: The cart ID |
| add_to_cartA | add an item to an existing cart. Args: cart_id: The cart ID to add to restaurant_id: The restaurant ID for the item 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_itemA | 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_cartB | remove an item from the cart. Args: cart_id: The cart ID line_item_id: The line item ID to remove |
| apply_promo_codeB | 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. (AUTH'D) Args: cart_id: The cart ID to submit as an order payment_method_id: Optional payment method ID to attach before checkout payment_type: Payment type for payment_method_id, such as CREDIT_CARD or CAMPUS_CARD tip_amount: Optional tip amount in dollars |
| get_orderC | get details for a specific order. Args: order_id: The order ID |
| get_order_historyB | get past order history. (AUTH'D) Args: page_size: Number of orders per page (default 10) page_num: Page number (default 0) |
| 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 (AUTH'D) |
| update_profileB | update user profile information. (AUTH'D) Args: first_name: New first name last_name: New last name phone: New phone number |
| get_addressesA | get saved delivery addresses. (AUTH'D) |
| add_addressA | add a new delivery address. (AUTH'D) 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. (AUTH'D) |
| add_favoriteC | add a restaurant to favorites. (AUTH'D) Args: restaurant_id: The restaurant ID to favorite |
| remove_favoriteB | remove a restaurant from favorites. (AUTH'D) Args: restaurant_id: The restaurant ID to unfavorite |
| change_passwordB | change account password. (AUTH'D) Args: current_password: Current password new_password: New password |
| get_payment_methodsA | get account-level saved payment methods. (AUTH'D) campus cards are cart-scoped on Grubhub. use get_cart_payment_options after creating a cart to see whether CAMPUS_CARD is available. |
| get_cart_billB | get the calculated bill for a cart, including checkout validation. |
| get_cart_payment_optionsC | get cart-scoped payment options, including campus-card availability. |
| get_campus_card_balancesA | get live CarolinaCard/campus-card balances from Grubhub. Args: cart_id: Optional cart ID for checkout-context tender eligibility restaurant_id: Optional restaurant ID for checkout-context tender eligibility selected_payment_id: Optional selected campus tender/payment ID include_raw: Include Grubhub's raw campus-card balance response |
| add_payment_to_cartA | attach a saved payment method to a cart. Args: cart_id: The cart ID payment_type: Grubhub payment type, such as CREDIT_CARD or CAMPUS_CARD payment_id: Payment method ID amount_cents: Optional amount in cents; omit to cover remaining balance |
| add_campus_card_paymentB | attach the linked campus card, such as CarolinaCard, to a cart. Args: cart_id: The cart ID payment_id: Campus-card payment ID; default is campus_card amount_cents: Optional amount in cents; omit to cover remaining balance |
| get_gift_card_balanceA | 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 |
| get_usc_meal_plan_rulesB | get USC CarolinaCard meal-swipe rules used by optimizer tools. |
| estimate_usc_retail_swipe_valueA | estimate whether a USC retail meal swipe is a good payment choice. Args: cart_total_cents: Cart total in cents from get_cart_payment_options meal_period: breakfast, lunch, dinner, or late_night swipes_remaining: optional known remaining retail swipes meal_plan_dollars_cents: optional known Meal Plan Dollars balance carolina_cash_cents: optional known CarolinaCash balance |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sawyershoemaker/grubhub-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server