BringMeThat MCP server
This is the developer reference for ordering US restaurant delivery or pickup through https://mcp.bringmethat.com/mcp. The server speaks MCP Streamable HTTP. It does not use an API key, OAuth, or any other sign-in. The customer pays on bringmethat.com. The server never takes a card.
People connecting Claude, ChatGPT, or Cursor can follow the setup guide. This page is the listing docs URL for the Claude Connectors Directory and the Docker MCP registry. The same page is served at /developers and /support.
Endpoint
- URL:
https://mcp.bringmethat.com/mcp - Transport: MCP Streamable HTTP (JSON-RPC 2.0)
- Auth: none
- Registry name:
com.bringmethat/bringmethat(MCP Registry) - Server card: /.well-known/mcp.json
A tools/list call needs no session and no credential:
curl -X POST https://mcp.bringmethat.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
Tools
tools/list returns four tools. Each publishes an input schema and does not publish an output schema.
Extra input fields are rejected (additionalProperties: false).
The result fields below are the ones named in each tool's description.
search_restaurants
Find restaurants that deliver to, or offer pickup near, a US location. Read-only.
Inputs:
- location (required, string)
- ZIP code, "City, ST", or a full US street address. A street address is what produces distances.
- query (optional, string)
- Cuisine, dish, or restaurant name, such as "thai", "pizza", or "pad see ew". Omit it for everything nearby.
- fulfillment (optional, string)
deliveryorpickup. Defaults todelivery.- limit (optional, integer)
- From 1 to 10. Defaults to 8.
Returns restaurant_id, cuisines, distance when a street address was given, a Yelp rating when one is on file, and the restaurant page URL.
get_menu
Read a restaurant's BringMeThat menu. Use restaurant_id from search_restaurants. Read-only.
Inputs:
- restaurant_id (required, integer)
- The id from search_restaurants.
- section (optional, string)
- Keep sections whose name contains this, such as "noodles".
- search (optional, string)
- Keep items whose name or description contains this, such as "vegetarian".
Returns sections and items with item_id, descriptions, prices, and option groups, including which groups are required. Prices are item prices. Checkout adds the fees described on create_checkout_link.
create_checkout_link
Build a bringmethat.com checkout link. Opening checkout_url fills the cart and opens checkout, where the customer reviews the total and pays. This does not charge a card and does not place the order. It validates items and required options first.
Inputs:
- restaurant_id (required, integer)
- The id from search_restaurants.
- fulfillment (required, string)
deliveryorpickup.- items (required, array of 1 to 30)
-
Each item requires
item_id(string, the id from get_menu, such as0.2.0.5) andquantity(integer from 1 to 20). Optionalspecial_instructionsis a string of at most 200 characters. Optionaloptionsis an array of choices. Each choice requiresgroup_index(integer, 0 or greater) andchoices(array of at least one string). Use the group index and option names exactly as get_menu lists them. Required groups must be filled. - delivery_address (optional, string)
- Street address for delivery, such as "2415 N Ashland Ave, Chicago, IL 60614". It prefills checkout.
Returns prices, or the problems to fix with the customer, and checkout_url.
Checkout is the item total plus a 10% markup, the restaurant's own service fee (none for partner restaurants; there is no flat service fee), tax, a $7 delivery fee ($0 for pickup) unless a Habitat or MealMe delivery quote replaces it, and an optional tip. Premium ($9.95 per month or $96 per year) waives the markup and the service fee, but not delivery, tax, or tip. The card is authorized for that total plus $15 when the total is over $30, otherwise plus 45%. Only the final amount is charged. A MealMe order uses the quote's delivery, service, and small-order fees instead of $7, and does not add a separate tip.
get_order_status
Read the status of an order. Does not change the order. Read-only.
Inputs:
- order_number (required, string)
- The order number, which starts with R, such as
R123456789. - email (required, string)
- The email used at checkout.
Returns the order status. Details are returned only when the order number and the email both match.
Data and privacy
A client sends the location, menu choices, delivery address, and, for a status check, the order number and checkout email that the customer provides. Those calls are how search, the menu, the checkout link, and order status work. Payment details are entered on bringmethat.com, not sent to the MCP server, and an assistant must not ask for them. How BringMeThat handles personal information is in the privacy policy.
Orders outside staffed hours
If ordering_open is false, online ordering is closed. Tell the customer to check back later instead of sending them to pay.
If a result has team_on_shift false, the team is paged. An order placed outside staffed hours that is still unplaced may auto-cancel after 20 minutes, and the card hold is released. Say that before the customer pays.
Support
Email [email protected] or call 312-319-5282.
