Lezzoo
REMOTE · MCP.LEZZOO.COM
Order food, groceries & pharmacy delivery in Kurdistan & Iraq: search, menus, cart, checkout.
Available components
Last scanned (5 hours ago)
Scores higher than 55% of remote servers
Reachable. Last reached 5 Nov 2026.
Category E-commerce
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (place_order). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability87
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 2644 tokens (~97/item across 27 items; 21 tools + 6 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
- Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
- Supports UI / widget rendering.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 3 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 +1
- Stability: unverified → 0.03 ▲ functional
- 29 Oct 26 66
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://mcp.lezzoo.com/mcp
TLS valid
Negotiated TLS 1.2 with TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=aishtar.ai | CN=Amazon RSA 2048 M01,O=Amazon,C=US | 21 Sept 2026 | 6 Apr 2027 | RSA 2048 | SHA256-RSA | 58e228fd4462d6df13eb3d9e6e15c1e |
| SANs: aishtar.ai, *.stg.dananeer.io, *.konkan.krd, *.lezzootech.com, *.dananeer.io, *.lezzoo.com, *.m7ali.ai, lezzoo.com, *.lezzoodevs.com, iraqimarketing.ai, *.lezzoocourier.com, konkan.krd and 5 more | ||||||
| CN=Amazon RSA 2048 M01,O=Amazon,C=US (CA) | CN=Amazon Root CA 1,O=Amazon,C=US | 23 Aug 2022 | 23 Aug 2030 | RSA 2048 | SHA256-RSA | 77312380b9d6688a33b1ed9bf9ccda68e0e0f |
| CN=Amazon Root CA 1,O=Amazon,C=US (CA) | CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US | 25 May 2015 | 31 Dec 2037 | RSA 2048 | SHA256-RSA | 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6 |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.lezzoo.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| lezzoo.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.lezzoo.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.lezzoo.com/mcp | HTTPS enforced | 301 | https://mcp.lezzoo.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_to_cart Add to cart ~225
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.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | Add multiple items in one call. |
| language | string | – | Language for item names (en, ar, kr, bd). |
| optionValueIds | array | – | Option value ids for the single product. |
| productId | integer | – | Single product id to add (when not using `items`). |
| quantity | integer | – | Quantity for the single product (default 1). |
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | – |
| item_count | number | – | – |
| items | array | – | Cart line items (line_id, product_id, name, quantity, prices, options). |
| merchant_city | string | – | – |
| merchant_id | number | – | – |
| merchant_name | string | – | – |
| message | string | – | Present on an empty cart. |
| subtotal | number | – | – |
No examples provided.
auth_status Check sign-in status ~22
Return whether the customer is signed in for this session, and who.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | number | – | – |
| signed_in | boolean | – | – |
No examples provided.
clear_cart Clear the cart ~15
Remove all items from the cart.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | – |
| item_count | number | – | – |
| items | array | – | Cart line items (line_id, product_id, name, quantity, prices, options). |
| merchant_city | string | – | – |
| merchant_id | number | – | – |
| merchant_name | string | – | – |
| message | string | – | Present on an empty cart. |
| subtotal | number | – | – |
No examples provided.
get_addresses Get my saved addresses ~39
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| addresses | array | – | Saved delivery addresses (address_id, title, details, coords). |
No examples provided.
get_full_menu Show the full menu ~118
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.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Result language: en, ar, kr, bd. |
| merchantId | integer | yes | Merchant id (from a search result's merchant_id). |
| Name | Type | Req | Description |
|---|---|---|---|
| categories | array | – | Every menu section, each with its products. |
| merchant | object | – | The merchant (merchant_id, name). |
| product_count | number | – | Total items across all sections. |
| truncated | boolean | – | True if the menu was capped at 250 items. |
No examples provided.
get_order_history Get my orders ~57
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| current | array | – | In-progress orders. |
| history | array | – | Past orders. |
No examples provided.
get_payment_link ~52
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.
| Name | Type | Req | Description |
|---|---|---|---|
| orderId | integer | yes | The order ID returned by place_order. |
| Name | Type | Req | Description |
|---|---|---|---|
| payment_url | string | – | Payment gateway URL for the order. |
No examples provided.
get_payment_methods ~71
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| methods | array | – | Digital payment methods (payment_type_id, name). |
No examples provided.
get_product_details Show product details ~130
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.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Result language: en, ar, kr, bd. |
| productId | integer | yes | Product id, e.g. from a `search_merchant_products` result's product_id. |
| Name | Type | Req | Description |
|---|---|---|---|
| merchant | object | – | The owning merchant (merchant_id, name, city). |
| product | object | – | The product: name, price, stock, image, options/addons. |
No examples provided.
get_profile Get my Lezzoo profile ~47
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| city_id | number | – | – |
| customer_id | number | – | – |
| string | – | – | |
| language | string | – | – |
| loyalty_tier | – | – | – |
| member_since | string | – | – |
| name | string | – | – |
| phone | string | – | – |
| prime_expiry | string | – | – |
| subscription_id | number | – | – |
| total_orders | number | – | – |
| verified | boolean | – | – |
No examples provided.
get_top_searches Get trending search terms ~35
Return the platform's currently trending / most-searched terms. Useful for suggesting what users can look for. Takes no arguments.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| top_searches | array | – | Trending search terms. |
No examples provided.
get_wallet_balance ~30
Get the current Lezzoo Pay (wallet) balance for the signed-in customer. Requires sign-in.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| balance | number | – | Wallet balance in IQD. |
No examples provided.
logout Sign out ~21
Sign the customer out of this session (clears the stored token).
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| signed_out | boolean | – | – |
No examples provided.
place_order Place order ~158
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.
| Name | Type | Req | Description |
|---|---|---|---|
| addressId | integer | – | Address ID to deliver to. Defaults to your first saved address. |
| confirm | boolean | yes | Must be true to place the order. If false, returns a preview (same as review_order). |
| confirmActiveOrder | boolean | – | Set true to place even though you have an active order — only after the user acknowledges. |
| paymentTypeId | integer | yes | Payment method ID (from get_payment_methods). |
| voucherCode | string | – | Voucher/promo code to apply. |
| Name | Type | Req | Description |
|---|---|---|---|
| _note | string | – | – |
| address_id | number | – | – |
| addresses | array | – | Addresses eligible for this merchant's city. |
| confirm_required | string | – | – |
| currency | string | – | – |
| delivery | number | – | – |
| discount | number | – | – |
| fees | number | – | – |
| merchant_city | string | – | – |
| not_serviceable | boolean | – | – |
| note | string | – | – |
| order_id | number | – | – |
| paid_from_wallet | boolean | – | – |
| payment_type_id | number | – | – |
| payment_url | string | – | Payment gateway URL for online methods. |
| subtotal | number | – | – |
| total | number | – | – |
| voucher_error | string | – | – |
| wallet | object | – | Wallet balance and can_pay flag. |
No examples provided.
remove_cart_item Remove a cart item ~34
Remove a cart line by line_id (from view_cart).
| Name | Type | Req | Description |
|---|---|---|---|
| lineId | string | yes | line_id from view_cart. |
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | – |
| item_count | number | – | – |
| items | array | – | Cart line items (line_id, product_id, name, quantity, prices, options). |
| merchant_city | string | – | – |
| merchant_id | number | – | – |
| merchant_name | string | – | – |
| message | string | – | Present on an empty cart. |
| subtotal | number | – | – |
No examples provided.
review_order Review order ~152
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.
| Name | Type | Req | Description |
|---|---|---|---|
| addressId | integer | – | Optional — the user picks this in the widget; defaults to the first saved address in the merchant's city. |
| paymentTypeId | integer | – | Optional — the user picks this in the widget; defaults to Lezzoo Pay wallet for the initial price. |
| voucherCode | string | – | Voucher/promo code to apply. |
| Name | Type | Req | Description |
|---|---|---|---|
| address_id | number | – | – |
| addresses | array | – | Addresses eligible for this merchant's city. |
| currency | string | – | – |
| delivery | number | – | – |
| discount | number | – | – |
| fees | number | – | – |
| merchant_city | string | – | – |
| not_serviceable | boolean | – | – |
| payment_type_id | number | – | – |
| subtotal | number | – | – |
| total | number | – | – |
| voucher_error | string | – | – |
| wallet | object | – | Wallet balance and can_pay flag. |
No examples provided.
search Search restaurants & products ~252
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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | – | City to scope results. Defaults server-side. |
| departmentId | integer | – | Optional department id to scope to one vertical (e.g. Food, Grocery, Pharmacy). |
| 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. |
| page | integer | – | 1-based result page (default 1). |
| query | string | yes | Free-text search term, e.g. 'burger', 'pharmacy', 'pizza'. |
| Name | Type | Req | Description |
|---|---|---|---|
| merchants | array | – | Matched restaurants/stores as cards (each has merchant_id, name, …). |
| summary | object | – | Result summary: merchant_count, tags, truncated, note. |
No examples provided.
search_merchant_products Show a merchant's menu / products ~262
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).
| Name | Type | Req | Description |
|---|---|---|---|
| categoryId | integer | – | Menu section id (from the result's `categories`) to browse. |
| city | string | – | City scope. Defaults server-side. |
| language | string | – | Result language: en, ar, kr, bd. |
| merchantId | integer | yes | Merchant id, e.g. from a `search` result's merchant_id. |
| page | integer | – | 1-based page within the category (default 1). |
| query | string | – | Optional search term within this merchant; omit for the menu. |
| Name | Type | Req | Description |
|---|---|---|---|
| categories | array | – | Menu sections (id, name). |
| category_id | number | – | The section this page is showing. |
| has_more | boolean | – | Whether more pages exist for this section. |
| merchant | object | – | The merchant (merchant_id, name). |
| page | number | – | 1-based page within the category. |
| product_count | number | – | Number of products in this response. |
| products | array | – | Products on this page. |
| products_omitted | number | – | – |
| total_found | number | – | – |
No examples provided.
track_order Track an order ~121
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.
| Name | Type | Req | Description |
|---|---|---|---|
| orderId | integer | – | Order id to track. Omit to track the most recent active order. |
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | – |
| destination | – | – | – |
| driver | – | – | Driver info, or null before assignment. |
| eta_minutes | number | – | – |
| fulfillment | string | – | – |
| items | array | – | Ordered lines: product_id, name, description, quantity, price (unit, incl. options), line_total, image, options [{name, values:[{name, price}]}], instructions. |
| merchant | – | – | – |
| message | string | – | – |
| order_id | number | – | – |
| placed_at | string | – | – |
| status | string | – | – |
| status_id | number | – | – |
| timeline | object | – | – |
| total | number | – | – |
| tracking | – | – | null when there is no active order to track. |
| verification_code | string | – | – |
No examples provided.
update_cart_item Update cart item quantity ~55
Set the quantity of a cart line by line_id (from view_cart). Quantity 0 removes it.
| Name | Type | Req | Description |
|---|---|---|---|
| lineId | string | yes | line_id from view_cart. |
| quantity | integer | yes | New quantity (0 removes). |
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | – |
| item_count | number | – | – |
| items | array | – | Cart line items (line_id, product_id, name, quantity, prices, options). |
| merchant_city | string | – | – |
| merchant_id | number | – | – |
| merchant_name | string | – | – |
| message | string | – | Present on an empty cart. |
| subtotal | number | – | – |
No examples provided.
view_cart View my cart ~35
Show the current shopping cart (items, options, quantities, line prices, subtotal). Anonymous — no sign-in required. Read-only.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | – |
| item_count | number | – | – |
| items | array | – | Cart line items (line_id, product_id, name, quantity, prices, options). |
| merchant_city | string | – | – |
| merchant_id | number | – | – |
| merchant_name | string | – | – |
| message | string | – | Present on an empty cart. |
| subtotal | number | – | – |
No examples provided.
How do I install the Lezzoo MCP server?
Lezzoo is a hosted endpoint at https://mcp.lezzoo.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.lezzoo.com
claude mcp add --transport http com-lezzoo-lezzoo 'https://mcp.lezzoo.com/mcp'
What is the Lezzoo MCP server?
Lezzoo is an MCP server listed in the public MCP registry as com.lezzoo/lezzoo. Order food, groceries & pharmacy delivery in Kurdistan & Iraq: search, menus, cart, checkout. This page covers its hosted endpoint (https://mcp.lezzoo.com/mcp).
Is the Lezzoo MCP server safe to use?
Lezzoo scores 70 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Lezzoo MCP server expose?
Lezzoo exposes 21 tools: search, search_merchant_products, get_full_menu, get_product_details, get_top_searches, and 16 more. Their descriptions and schemas cost roughly 1,931 tokens of context every time the server is loaded.
Does the Lezzoo MCP server require authentication?
No. We connected to Lezzoo without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Lezzoo MCP server still maintained?
Lezzoo is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.