1. Connect over MCP
The gateway serves MCP over Streamable HTTP (FastMCP):- Endpoint:
https://eleme-gateway.hicaspian.com/mcp/v1 - Transport: Streamable HTTP
- Connection-layer auth: every MCP request carries the header
Authorization: Bearer clw_your_api_key
clw_ prefix). Configure it in your MCP client:
Two-layer identity: the connection-layer API Key (
clw_ prefix) identifies your Agent and is required on every MCP request; the consent grant (cg_ prefix) identifies an authorized food-delivery user and is passed as the business-tool parameter consent_grant_id (not as a header). The binding tools request_user_bind / verify_user_bind are the exception — they are the entry point for obtaining authorization and take no consent_grant_id. See Authentication.2. Place an order with MCP tools
Examples are given as tool name + JSON parameters. Except for the binding tools, every business tool carriesconsent_grant_id.
1
Bind user authorization
Placing an order acts on behalf of a real food-delivery user, so have them authorize first (SMS code mode). The binding tools need only the Agent identity (connection-layer API Key) and take no Once you have
consent_grant_id.consent_grant_id, every business tool call below carries it.H5 mode is also supported:
request_user_bind(auth_type="h5") returns h5_url; the user opens it to authorize, then you call verify_user_bind(auth_type="h5", request_id) and poll until you get consent_grant_id. See Request Binding.2
Choose a delivery address
Pin down “where to deliver” first; obtain You can also use an existing address’s
address_id, then search shops that can deliver to it.address_id directly. This address_id is used both to search shops next and for later quoting / previewing.3
Search shops
address_id or lat/lng). Each shop carries a shop_id and a cart_id (the cart_id encapsulates the shop and delivery coordinates; pass it back as-is in later steps). Omit keyword to browse nearby (up to 20 shops).4
Browse the menu, pick items
keyword / limit / offset for progressive loading. Note the item_id and sku_id of what you want to buy.5
Quote the cart
6
Preview the order
available_coupons. To apply a coupon, pick available_coupons[].coupon_id and call preview_order again with coupon_ids=[...] to re-price (the account-level coupon list is available via list_coupons).7
Place the order
Use the You may pass an optional
preview_id + confirmation_token returned by the preview (confirmation_token is the idempotency key):callback_url: every status change on the order is pushed as a callback, and the payment-outcome one carries event=order_payment.8
Check the order
After placing the order, you can check its current status and details anytime.
No-password payment signing (account-level, one-time): no-password payment requires the user to sign once; afterwards subsequent no-password orders are charged automatically. It is an account-level, one-time prerequisite — not bound to any single order and not done per order — so it is independent of the order chain above. Use
get_sign_action(consent_grant_id, return_url) (takes no order_id) to get the H5 signing link for the user to complete, then check signing progress with get_sign_status. See Initiate No-Password Signing.The full chain at a glance
select_address (-> address_id) -> search_shops (with address_id, -> shop_id + cart_id) -> get_shop_menu (-> item_id / sku_id) -> quote_cart (-> quote_id) -> preview_order (-> preview_id + confirmation_token) -> create_order (-> order_id) -> get_order_status
Every cross-step ID (shop_id / cart_id / address_id / preview_id …) is issued by the gateway and passed back as-is — never construct them yourself or mix them across chains.
Next steps
MCP Tools
Full request / response for the 24 delivery MCP tools
Authentication
API Key + consent grant in detail
Order Flow
End-to-end order and payment sequence
Error Handling
Unified error codes and handling

