yandex-lavka-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| lavka_statusA | Show whether the Lavka session and delivery location are configured. Read-only. Call this first to check setup before other tools. |
| set_locationA | Set the delivery location (required before catalog/cart calls). Provide either lat+lon coordinates or a saved address_id. Persists to config. |
| list_addressesA | List your saved Lavka delivery addresses (by name). Read-only. Use a returned |
| use_addressA | Switch delivery to one of your saved addresses, matched by name. Catalog, cart and prices are location-scoped, so this re-points everything. A saved address carries city/street/house; pass flat/entrance/comment if the order needs them. |
| set_delivery_addressB | Set delivery to ANY address by free text — works for a new city. Resolves the address to coordinates + city/street/house via Lavka's own geo search. Example: set_delivery_address("Казань, улица Баумана, 1", flat="12"). |
| search_productsA | Search the Lavka catalog at the current delivery location. Read-only. Each result has an |
| get_productA | Get one product: price, size, stock, description, nutrition. Read-only.
|
| list_categoriesA | Browse the Lavka catalog menu: category groups with their categories. Returns every |
| get_category_groupA | List the categories inside one catalog group, by group id. Group ids come from list_categories (each group carries an id). Read-only. |
| get_category_productsA | List products in a catalog category. Read-only. Get Pass |
| view_cartA | Show the current cart contents and running total. Read-only. The cart also reports order-readiness. Watch these:
|
| add_to_cartA | Add a product to the cart (increments if already present). No charge.
IMPORTANT: search can return items that are only stocked in «Большая Лавка»
(a different store) — they add fine but can't be ordered from the current
one. After adding, check the returned cart's |
| update_cart_itemA | Set the exact quantity of a cart item. quantity=0 removes it. No charge. |
| clear_cartA | Remove everything from the cart. No charge. |
| checkout_previewA | Preview the order: items, delivery fee, ETA, address, payment, TOTAL. Charges NOTHING. Show the returned total to the user and ask them to confirm it out loud before calling confirm_order. Always run this before confirming. If the summary has a |
| confirm_orderA | Place the order and CHARGE the card. Irreversible — real money. Call ONLY after checkout_preview was run and the user explicitly said yes to the previewed total. Pass that exact total as confirmed_total. The order is refused unless: a preview was run recently, confirmed_total matches it, and — critically — the live cart still matches the previewed cart at submit time (same version and total). If anything drifted, nothing is charged and you must preview + confirm again. Returns the order id and payment_status. "wait_user_action" means the bank requires 3-D Secure — give the user redirect_url to finish paying. cancel_order cancels. |
| cancel_orderB | Cancel an order by id (e.g. one returned by confirm_order/active_orders). |
| list_payment_methodsA | List the user's saved cards and which is the default. Read-only. Use a returned |
| set_payment_methodA | Choose which saved card orders will charge (persists). Pass an |
| active_ordersA | Currently tracked orders with status and ETA. Read-only. Covers in-progress orders (Lavka's order-tracking feed); past orders are in order_history. |
| order_historyA | Get list of past orders. Read-only. Use last_order_id from the last result for pagination (pass it as last_order_id to fetch the next page). Returns order id, status, total, items count, date. |
| get_orderA | Get full details of a specific order: items, totals, address, status, payment. Pass an order_id from order_history or active_orders. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Most tools map to distinct resource+action pairs, but the location cluster (set_location, use_address, set_delivery_address) and the catalog cluster (list_categories vs get_category_group, which both surface categories by group) have overlapping purposes that could cause misselection. Descriptions do a good job clarifying the differences.
The set is dominated by a predictable verb_noun pattern (get_product, list_categories, add_to_cart, set_payment_method, cancel_order), with a few noun-only outliers (active_orders, order_history, lavka_status, checkout_preview). Minor deviations, still clearly readable.
22 tools is on the heavy side but justified by a genuinely broad domain spanning catalog browsing, cart, checkout, orders, payment, and addresses. Each tool earns a place, though the category-browsing tools could likely be consolidated.
The surface covers the full shopping lifecycle: discovery, cart mutation, preview, charge, cancel, order history, payment methods, and address/location setup. Minor gaps like deleting a saved address (only setting one exists) are workable around.