Skip to main content
Glama
Yandex Lavka Uzbekistan MCP
by d3d0n

Yandex Lavka Uzbekistan MCP

A local MCP server for exploring and managing a Yandex Lavka Uzbekistan cart—with explicit controls around consequential writes.

Unofficial · Uzbekistan ordering; RU/KZ anonymous search · Python · stdio

WARNING

This server can modify a real cart, submit a paid order, and request cancellation. Its order and cancellation MCP paths are tested with mocked upstream responses,not a new live MCP transaction. Official-site transactions were observed separately; they do not prove this implementation works end to end. Use only with trusted clients, review every consequential action, and never retry an uncertain write blindly.

From a question to a cart

Connect a local MCP client, then ask it to search for products at a location in Uzbekistan. It can read the cart, show masked saved-card suffixes and quote a checkout. Cart updates and ordering are separate actions; a quote is neither a reservation nor a payment.

Capability

Tools

Boundary

Discover

select_region, delivery_location, detect_delivery_location, service_status, suggest_address, search_products

select_region, service_status and search_products accept explicit RU/KZ/UZ; other discovery tools remain UZ-only. Homepage status and suggestions do not establish address coverage.

Sign in

login_start, qr_login_status, qr_login_cancel

Private, short-lived QR login; see authentication.

Cart

get_cart, set_cart_item, checkout_preview

Coordinates are longitude, latitude; a cart quote does not select an address or card. set_cart_item is a real write.

Account and orders

saved_address_count, saved_addresses, saved_cards, active_orders, order_history

Address details and order identifiers are private. Active tracking is not history.

Checkout

order_preview, submit_order, reconcile_checkout, cancel_order

Explicit confirmation and careful reconciliation are essential; see checkout.

Prices, availability and delivery charges change. The server uses undocumented web APIs that may change or reject requests, and it is not affiliated with Yandex. Country-level currency confirmation does not prove coverage at an individual address.

Related MCP server: wegmans-mcp-cloudflare-workers

Country and delivery location

Choose a startup country when adding the MCP server by setting YANDEX_LAVKA_REGION to UZ, RU, or KZ; if omitted it defaults to UZ. Any other value prevents startup. See client setup for configuration examples. At any time call select_region(country="RU") (or KZ or UZ) to change the default for service_status and search_products. Selection is in memory for this stdio server process only; it is not written to a shared file and resets to the configured startup value when restarted. Use a separate server process per client session; this is not per-client isolation for a shared multi-client server.

service_status(country="RU") and search_products(country="KZ", longitude=..., latitude=...) explicitly override the selected country for that read only, without changing the selection. RU/KZ reads use fresh anonymous country-specific sessions and confirm currency. Login, address suggestions, location helpers, cart, payments and checkout are UZ-only and are refused while RU/KZ is selected. A region change is rejected while a UZ tool is in flight; retry after it completes, especially for an order with an uncertain outcome. Switching itself places no order. No country is inferred from IP or device geolocation.

For a delivery location, call delivery_location(country="UZ", longitude=..., latitude=...), or use detect_delivery_location(country="UZ") with an authenticated session. Detection returns candidate coordinates only when exactly one favorite exists; zero or multiple favorites require an explicit choice. For multiple favorites, review saved_addresses and pass its freshly obtained address_index to detect_delivery_location. Alternatively, use suggest_address and choose an address with usable coordinates. Indexes can change and similar favorites may differ in apartment details; verify the exact address before checkout.

These tools are stateless: changing location means passing the new coordinates to each search, cart and quote call. They do not update the account's address, select a checkout address, or persist a default. Refresh search and cart after a change; old prices and carts may be stale and cart identity may be shared across locations. Review the exact saved address again in order_preview. The bounding box is only a coarse input check, not proof that the coordinates lie in Uzbekistan or that delivery is available. Coordinates and saved addresses are private; use a trusted client and beware client logs.

Get started

Install mise first. From the repository root on a Unix-like system:

mise trust
mise install
mise run install
mise run test
.venv/bin/yandex-lavka-mcp

mise manages uv; the install task uses uv to install a managed Python 3.12 and synchronize dependencies from uv.lock. The test task runs the offline suite.

The last command starts an MCP stdio server; it waits for an MCP client and is not an interactive CLI. Stop it with Ctrl-C. For a client, configure the virtual environment's Python as the command and the absolute path to lavka_uz.py as its argument. See client setup for a JSON example and connection checks.

Ask your client to call login_start when authenticated access is needed, then scan its QR code in the Yandex app or open its link, and poll qr_login_status. The QR image and link are temporary credentials: use a private, trusted client and channel; clients and chat logs may retain them. An existing session is not replaced unless explicitly requested.

Safety in practice

  • Confirm the exact item and quantity before a cart write. Quantities are absolute; zero removes an item. An ambiguous result calls for a fresh cart read, not an automatic retry.

  • Before an order, review the exact saved address, items, total in UZS, masked card and delivery in order_preview; obtain explicit user approval for those terms. The preview expires and can change before submission.

  • An order ID is not proof of payment. A cancellation response is not proof of cancellation or refund. Check the exact order in the official app and inspect payment independently.

  • The local duplicate-order guard does not cover other clients or installations. Unknown outcomes can be delayed; empty active tracking is not proof that no order exists. Read the recovery procedure.

Documentation

The root-level research notes are historical and may describe older implementations; where they conflict, use the current source and these operational guides.

License

GNU General Public License v3.0 only (GPL-3.0-only).

Available Tools

21 tools
active_ordersA

Read the active tracking feed; an empty feed is not order history or reconciliation.

Inputs: no named parameters.

cancel_orderB

Cancel the exact order once only after explicit user confirmation. Refund status is unknown.

Inputs: order_id (required), explicit_confirmation (required).

checkout_previewB

Read a cart quote only; no address/card selection, confirmation, order or payment.

Inputs: latitude (required), longitude (required).

delivery_locationB

Choose coordinates for subsequent calls; no account or server state is changed.

Inputs: country (required), latitude (required), longitude (required).

detect_delivery_locationC

Use a single saved favorite or explicitly indexed favorite; coordinates are private.

Inputs: country (required), address_index.

get_cartB

Read the cart for these coordinates; does not select an address.

Inputs: latitude (required), longitude (required).

login_startA

Start login and return a QR image plus its short-lived link. Share only with the intended user; client logs may contain the link. Set replace_existing only with approval.

Inputs: replace_existing.

order_historyC

Read authenticated order history; older_than is a timezone-aware ISO timestamp.

Inputs: count, older_than.

order_previewA

Stage an exact checkout preview for a saved-address index and four-digit card suffix. Not an order.

Inputs: card_suffix (required), address_index (required).

qr_login_cancelA

Cancel pending login and delete its QR image, regardless of selected region.

Inputs: no named parameters.

qr_login_statusA

Poll QR login and verify Lavka session; never reveals credentials.

Inputs: no named parameters.

reconcile_checkoutA

Acknowledge an uncertain checkout after checking official history and payment. This cannot rule out delayed processing or duplicates; never retries or places an order.

Inputs: history_checked (required), payment_checked (required), explicit_confirmation (required), no_request_in_progress (required), +1 more.

saved_address_countA

Count saved favorite addresses without exposing their details.

Inputs: no named parameters.

saved_addressesA

List saved addresses with selection indexes; includes private address details.

Inputs: no named parameters.

saved_cardsA

List available saved cards by masked suffix only; this does not select one.

Inputs: latitude (required), longitude (required).

search_productsC

Search at supplied coordinates. RU/KZ use isolated anonymous storefronts; UZ uses the existing session.

Inputs: query (required), limit, country, latitude, +1 more.

select_regionB

Select the region for this stdio server session; does not place orders.

Inputs: country (required).

service_statusC

Get homepage storefront status. Does not confirm a specific address.

Inputs: country.

set_cart_itemB

Change cart item to an absolute quantity (0 removes). Explicit cart write; price must be from current search. Never retries ambiguous writes.

Inputs: price (required), latitude (required), quantity (required), longitude (required), +1 more.

submit_orderA

Place one paid order only after explicit user confirmation of the exact preview; never retries. Outcomes may be uncertain.

Inputs: preview_token (required), confirmed_total_uzs (required), explicit_confirmation (required).

suggest_addressC

Suggest addresses; never changes the account's delivery address.

Inputs: query (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 21 tools

    Disambiguation4/5

    Most tools target distinct lifecycle steps, but several pairs blur: checkout_preview vs order_preview, get_cart vs checkout_preview, and delivery_location vs detect_delivery_location. Detailed descriptions resolve these for a careful agent, but the names alone are not fully distinct.

    Naming Consistency3/5

    All names use snake_case, but the convention is mixed: verb-first names such as submit_order, get_cart, and search_products coexist with noun-first names such as order_preview, saved_addresses, and qr_login_status. The pattern is readable but not predictable.

    Tool Count3/5

    At 21 tools, the surface is on the heavy side for a grocery-ordering MCP. The multi-step flow justifies many operations, but tools like saved_address_count and the separate location-detection tools feel consolidatable, making the count borderline rather than clearly well-scoped.

    Completeness4/5

    Coverage is strong across authentication, region/location, saved addresses, cards, product search, cart, checkout preview, order submission, cancellation, reconciliation, and order history. Minor gaps remain around saved-address/card management and order-detail retrieval, but core workflows have no obvious dead ends.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enables searching WineLab's wine catalog and retrieving product details, filters, store locations, availability, and cart operations, with SMS-code login, from any MCP-compatible client.
      15
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables users to search grocery products and stores, manage a cart, sync purchase history, and predict needed items through MCP tools. It also stores food preferences as server instructions so connected agents can respect them automatically.
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables product search and authenticated grocery shopping-list management, including adding items, setting quantities, removing items, emptying the list, and reading purchase history.
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables MCP-capable clients to sign in with OAuth and perform purchaser tasks such as browsing catalogues, checking inventory, managing stocktakes and recipes, drafting requisitions, updating buy lists, exporting reports, and processing invoices. It also supports supplier access for listing and inspecting connections, catalogues, products, purchase orders, invoices, and entitled reports.
      MIT