Authenticate, set an address, search, open a menu, fill a cart, preview, confirm — with the ordering constraints written into the tools rather than left to be discovered. doordash_set_address states that it must be set before searching, doordash_add_to_cart states that you must be on a restaurant page from doordash_menu first, and doordash_auth_check states that it comes before any other operation, so the sequence is legible from the tool list alone. The call that commits is guarded: doordash_checkout defaults to a preview, and confirm=true is the separate, deliberate act that places the order. Authentication is a stored session rather than a key, which makes doordash_auth_check the honest first call and doordash_auth_clear the way out of a stale one.
A DoorDash ordering surface exposed as an ordered set of calls — session check, delivery address, restaurant search, menu, cart, checkout, order tracking.
- Session state you can check and reset: doordash_auth_check returns login status along with instructions when the session is not authenticated, and doordash_auth_clear drops the stored session cookies.
- The delivery context that everything else depends on: doordash_set_address takes an address and is what makes restaurant search possible.
- Finding somewhere to order from: doordash_search takes a restaurant name, a food type or a cuisine; doordash_menu returns a restaurant's full menu by restaurantId as categories and items with prices.
- Cart construction: doordash_add_to_cart adds an itemName from a restaurantId with a quantity and specialInstructions; doordash_cart returns the current contents with quantities and totals.
- A checkout with a rehearsal: doordash_checkout previews the order details with confirm=false and places the order with confirm=true.
- What happens after: doordash_track_order returns delivery progress, estimated time and dasher info where the platform reports it, for a given orderId.
A DoorDash session you are already logged in to — doordash_auth_check reports whether the stored session is valid and doordash_auth_clear resets it. Nothing else to configure.
One command plus a key — npx @striderlabs/mcp-doordash, then supply credentials
