Order food, groceries & pharmacy delivery in Kurdistan & Iraq: search, menus, cart, checkout.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Add one or more products to the cart in a single call (put a whole request's items in one call). For several of the SAME item use `quantity` (e.g. "2 Chili Boxes" → quantity: 2). For DIFFERENT products use `items` (an array of { productId, quantity?, optionValueIds? }), each with its own `quantity`. For a single product, pass `productId`/`quantity`/`optionValueIds` directly. product_id comes from search_merchant_products/get_product_details; optionValueIds are addon/size value ids from the product's options. One merchant per cart.
Add multiple items in one call.
Language for item names (en, ar, kr, bd).
Quantity for the single product (default 1).
Single product id to add (when not using `items`).
Option value ids for the single product.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Add one or more products to the cart in a single call (put a whole request's items in one call). For several of the SAME item use `quantity` (e.g. "2 Chili Boxes" → quantity: 2). For DIFFERENT products use `items` (an array of { productId, quantity?, optionValueIds? }), each with its own `quantity`. For a single product, pass `productId`/`quantity`/`optionValueIds` directly. product_id comes from search_merchant_products/get_product_details; optionValueIds are addon/size value ids from the product's options. One merchant per cart.
| Argument | Type | Description |
|---|---|---|
| items | array | Add multiple items in one call. |
| language | string | Language for item names (en, ar, kr, bd). |
| quantity | integer | Quantity for the single product (default 1). |
| productId | integer | Single product id to add (when not using `items`). |
| optionValueIds | array | Option value ids for the single product. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"productId"
],
"properties": {
"quantity": {
"type": "integer",
"minimum": 1,
"description": "Quantity (default 1)."
},
"productId": {
"type": "integer",
"description": "Product id to add."
},
"optionValueIds": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Selected option value ids (size/extras)."
}
},
"additionalProperties": false
},
"description": "Add multiple items in one call."
},
"language": {
"enum": [
"en",
"ar",
"kr",
"bd"
],
"type": "string",
"description": "Language for item names (en, ar, kr, bd)."
},
"quantity": {
"type": "integer",
"minimum": 1,
"description": "Quantity for the single product (default 1)."
},
"productId": {
"type": "integer",
"description": "Single product id to add (when not using `items`)."
},
"optionValueIds": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Option value ids for the single product."
}
},
"additionalProperties": false
}Return whether the customer is signed in for this session, and who.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Remove all items from the cart.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Return the signed-in customer's saved delivery addresses (title, details, type, coordinates). Requires the customer to be signed in for this session. Read-only.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Fetch the entire menu of a merchant in one call — all categories and all items. Use this when the user wants to browse the full menu, or when you need to find an item across all sections without paging. Returns every category with its products. Capped at 250 items total; if truncated, use search_merchant_products with query= to find specific items.
| Argument | Type | Description |
|---|---|---|
| language | string | Result language: en, ar, kr, bd. |
| merchantId* | integer | Merchant id (from a search result's merchant_id). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"merchantId"
],
"properties": {
"language": {
"enum": [
"en",
"ar",
"kr",
"bd"
],
"type": "string",
"description": "Result language: en, ar, kr, bd."
},
"merchantId": {
"type": "integer",
"description": "Merchant id (from a search result's merchant_id)."
}
},
"additionalProperties": false
}Return the signed-in customer's orders — `current` (in-progress) and `history` (past), each with merchant, status, total, item count and date. Requires the customer to be signed in for this session. Read-only.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Generate a payment link for a placed order. Use this if the payment link expired or was not returned at order placement. Requires sign-in.
| Argument | Type | Description |
|---|---|---|
| orderId* | integer | The order ID returned by place_order. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"orderId"
],
"properties": {
"orderId": {
"type": "integer",
"description": "The order ID returned by place_order."
}
},
"additionalProperties": false
}List the available DIGITAL payment methods for checkout (e.g. Lezzoo Pay wallet, FIB, Card, Asia Pay, FastPay, Qi Card, NassWallet). Cash on delivery is NOT supported. Requires sign-in. Use this to map a payment method the user names to its payment_type_id.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Show full details for a single product/menu item by product_id (obtain it from a `search_merchant_products` result). Returns the image, description, price/discount, stock, and addon options (sizes, extras, toppings) with their prices — rendered as a card when the host supports MCP Apps. Call this when the user taps a product or asks about a specific item.
| Argument | Type | Description |
|---|---|---|
| language | string | Result language: en, ar, kr, bd. |
| productId* | integer | Product id, e.g. from a `search_merchant_products` result's product_id. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"productId"
],
"properties": {
"language": {
"enum": [
"en",
"ar",
"kr",
"bd"
],
"type": "string",
"description": "Result language: en, ar, kr, bd."
},
"productId": {
"type": "integer",
"description": "Product id, e.g. from a `search_merchant_products` result's product_id."
}
},
"additionalProperties": false
}Return the signed-in customer's profile (name, phone, email, language, loyalty tier, total orders, member-since). Requires the customer to be signed in for this session. Read-only.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Return the platform's currently trending / most-searched terms. Useful for suggesting what users can look for. Takes no arguments.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Get the current Lezzoo Pay (wallet) balance for the signed-in customer. Requires sign-in.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Sign the customer out of this session (clears the stored token).
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Place the order from the current cart. Call review_order first so the customer can confirm the total. Set confirm:true to actually place the order — without it, this returns a preview only. Requires sign-in and a non-empty cart.
| Argument | Type | Description |
|---|---|---|
| confirm* | boolean | Must be true to place the order. If false, returns a preview (same as review_order). |
| addressId | integer | Address ID to deliver to. Defaults to your first saved address. |
| voucherCode | string | Voucher/promo code to apply. |
| paymentTypeId* | integer | Payment method ID (from get_payment_methods). |
| confirmActiveOrder | boolean | Set true to place even though you have an active order — only after the user acknowledges. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"confirm",
"paymentTypeId"
],
"properties": {
"confirm": {
"type": "boolean",
"description": "Must be true to place the order. If false, returns a preview (same as review_order)."
},
"addressId": {
"type": "integer",
"description": "Address ID to deliver to. Defaults to your first saved address."
},
"voucherCode": {
"type": "string",
"description": "Voucher/promo code to apply."
},
"paymentTypeId": {
"type": "integer",
"description": "Payment method ID (from get_payment_methods)."
},
"confirmActiveOrder": {
"type": "boolean",
"description": "Set true to place even though you have an active order — only after the user acknowledges."
}
},
"additionalProperties": false
}Remove a cart line by line_id (from view_cart).
| Argument | Type | Description |
|---|---|---|
| lineId* | string | line_id from view_cart. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"lineId"
],
"properties": {
"lineId": {
"type": "string",
"description": "line_id from view_cart."
}
},
"additionalProperties": false
}Prices the current cart for checkout (delivery, discount, fees, total) and renders an interactive widget in which the user selects their delivery address and payment method as tappable options — those details are chosen in the widget rather than in chat. Use when the user is ready to check out. Requires sign-in and a non-empty cart. Places no order.
| Argument | Type | Description |
|---|---|---|
| addressId | integer | Optional — the user picks this in the widget; defaults to the first saved address in the merchant's city. |
| voucherCode | string | Voucher/promo code to apply. |
| paymentTypeId | integer | Optional — the user picks this in the widget; defaults to Lezzoo Pay wallet for the initial price. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"addressId": {
"type": "integer",
"description": "Optional — the user picks this in the widget; defaults to the first saved address in the merchant's city."
},
"voucherCode": {
"type": "string",
"description": "Voucher/promo code to apply."
},
"paymentTypeId": {
"type": "integer",
"description": "Optional — the user picks this in the widget; defaults to Lezzoo Pay wallet for the initial price."
}
},
"additionalProperties": false
}Search Lezzoo for restaurants/stores near a location. Results are ranked by relevance and proximity, so location matters: pass the user's latitude/longitude when known. If location is unknown, the user's area/address can be used to derive it; otherwise a configured default location applies. Returns restaurants as cards (when the host supports MCP Apps). Use a returned merchant's `merchant_id` with `search_merchant_products` to open its menu. Anonymous — no sign-in or account is required. Read-only.
| Argument | Type | Description |
|---|---|---|
| city | string | City to scope results. Defaults server-side. |
| page | integer | 1-based result page (default 1). |
| query* | string | Free-text search term, e.g. 'burger', 'pharmacy', 'pizza'. |
| language | string | Result language: en, ar, kr, bd. |
| latitude | number | User latitude (-90..90). Ask the user if unknown; falls back to the server default. |
| longitude | number | User longitude (-180..180). Falls back to the server default. |
| departmentId | integer | Optional department id to scope to one vertical (e.g. Food, Grocery, Pharmacy). |
Show the menu for a merchant/restaurant by merchant_id (from a `search` result). The result includes the menu's `categories` (sections); pass a `categoryId` to browse that section's items (paged via `page`, with `has_more`). Omit both to show the top items; provide `query` to search within the menu. Renders as cards with category tabs and Prev/Next when the host supports MCP Apps. Results are paginated — a single response is only part of the menu. To locate a specific item, call this with `query="<item name>"`, which searches the entire menu across pages and sections (more reliable than paging for finding a named item).
| Argument | Type | Description |
|---|---|---|
| city | string | City scope. Defaults server-side. |
| page | integer | 1-based page within the category (default 1). |
| query | string | Optional search term within this merchant; omit for the menu. |
| language | string | Result language: en, ar, kr, bd. |
| categoryId | integer | Menu section id (from the result's `categories`) to browse. |
| merchantId* | integer | Merchant id, e.g. from a `search` result's merchant_id. |
Track a Lezzoo order live — status, ETA, driver name/status/location, merchant, destination, and the ordered items (name, description, quantity, price, chosen options, image) — rendered as a status card with a progress stepper (and a map when the driver's live position is available). Pass an order_id, or omit it to track the customer's most recent active order. Requires sign-in. Read-only. Call again to refresh.
| Argument | Type | Description |
|---|---|---|
| orderId | integer | Order id to track. Omit to track the most recent active order. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"orderId": {
"type": "integer",
"description": "Order id to track. Omit to track the most recent active order."
}
},
"additionalProperties": false
}Set the quantity of a cart line by line_id (from view_cart). Quantity 0 removes it.
| Argument | Type | Description |
|---|---|---|
| lineId* | string | line_id from view_cart. |
| quantity* | integer | New quantity (0 removes). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"lineId",
"quantity"
],
"properties": {
"lineId": {
"type": "string",
"description": "line_id from view_cart."
},
"quantity": {
"type": "integer",
"minimum": 0,
"description": "New quantity (0 removes)."
}
},
"additionalProperties": false
}Show the current shopping cart (items, options, quantities, line prices, subtotal). Anonymous — no sign-in required. Read-only.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"city": {
"enum": [
"Erbil",
"Duhok",
"Sulaymaniyah",
"Zakho",
"Kirkuk",
"Baghdad",
"Massif",
"Shaqlawa",
"Akre",
"Koye",
"Soran",
"Halabja",
"Said_Sadq",
"Khanaqin",
"Sharazwr",
"Kalar"
],
"type": "string",
"description": "City to scope results. Defaults server-side."
},
"page": {
"type": "integer",
"minimum": 1,
"description": "1-based result page (default 1)."
},
"query": {
"type": "string",
"minLength": 1,
"description": "Free-text search term, e.g. 'burger', 'pharmacy', 'pizza'."
},
"language": {
"enum": [
"en",
"ar",
"kr",
"bd"
],
"type": "string",
"description": "Result language: en, ar, kr, bd."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "User latitude (-90..90). Ask the user if unknown; falls back to the server default."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "User longitude (-180..180). Falls back to the server default."
},
"departmentId": {
"type": "integer",
"description": "Optional department id to scope to one vertical (e.g. Food, Grocery, Pharmacy)."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"merchantId"
],
"properties": {
"city": {
"enum": [
"Erbil",
"Duhok",
"Sulaymaniyah",
"Zakho",
"Kirkuk",
"Baghdad",
"Massif",
"Shaqlawa",
"Akre",
"Koye",
"Soran",
"Halabja",
"Said_Sadq",
"Khanaqin",
"Sharazwr",
"Kalar"
],
"type": "string",
"description": "City scope. Defaults server-side."
},
"page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "1-based page within the category (default 1)."
},
"query": {
"type": "string",
"description": "Optional search term within this merchant; omit for the menu."
},
"language": {
"enum": [
"en",
"ar",
"kr",
"bd"
],
"type": "string",
"description": "Result language: en, ar, kr, bd."
},
"categoryId": {
"type": "integer",
"description": "Menu section id (from the result's `categories`) to browse."
},
"merchantId": {
"type": "integer",
"description": "Merchant id, e.g. from a `search` result's merchant_id."
}
},
"additionalProperties": false
}