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 |
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 |
|---|---|
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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