Skip to main content
Glama

1. Codex / ChatGPT

Ask your Codex assistant to install it for you:

Install Lazada community MCP with this, connect it to Codex, and tell me when to sign in: curl -fsSL https://github.com/thebuilderscollective/lazada-community-mcp/releases/latest/download/install.sh | sh -s -- codex

The assistant needs command execution on the computer where Codex runs. The current installer requires Node.js 22+, Chrome, and the Codex CLI there; ask the assistant to check these first. You don't need to type the command in Terminal yourself.

The installer downloads and verifies the release, then connects Lazada to Codex. Source setup also installs the shopping skill so grocery requests can discover the MCP before using a browser. The published 1.1.3 installer predates that addition.

Open a new task → “Connect Lazada” → sign in in the browser. Other local tasks reuse your login. Already installed through the Codex marketplace? Update that plugin instead of adding a second connection. ChatGPT Work in the cloud needs a hosted connection and is not yet verified. Setup details →

Related MCP server: Universal Shopping Agent MCP Server

2. Claude

Claude Desktop on Mac — download, open, install:

Download the latest Desktop bundle →

Open the newly downloaded .mcpb file and click Install in Claude. Open a new chat and say “Connect Lazada.” Sign in in the browser when prompted. No Terminal, separate Node.js installation, or Claude Code required. Chrome is required.

If you have an assistant with command execution on the same Mac, you can instead ask it:

Install Lazada community MCP for Claude Desktop with this and open the installation dialog: curl -fsSL https://github.com/thebuilderscollective/lazada-community-mcp/releases/latest/download/install.sh | sh -s -- claude-desktop

If you already have a local lazada connection, follow the upgrade guide to avoid duplicates.

Claude Code — ask your assistant:

Install Lazada community MCP with this, connect it to Claude Code, and tell me when to sign in: curl -fsSL https://github.com/thebuilderscollective/lazada-community-mcp/releases/latest/download/install.sh | sh -s -- claude-code

Node.js 22+, Chrome, and the Claude CLI are required on that computer. Desktop and Code have separate registrations; both share the same login and memory on your Mac.

3. Grok — testing 🧪

Ask your Grok bot:

Install Lazada community MCP with this, then register it using host-browser settings and tell me when to sign in: curl -fsSL https://github.com/thebuilderscollective/lazada-community-mcp/releases/latest/download/install.sh | sh -s -- grok

When the bot says login is ready, open its desktop/browser and sign into Lazada/RedMart once. Enter passwords and verification codes directly in that browser.

Then ask:

What's in my RedMart cart?

Search RedMart for oat milk, show 3 options with images, don't change the cart.

The bot needs command execution and MCP registration access on its computer. This command installs the runtime and prints configuration; the bot must register it using the host's actual browser settings. Grok's session lives on Grok's computer, not in your Mac's Chrome. Image display depends on the client. Fresh-install and visual comparison verification are pending. Shared-computer guide →

One installer, four targets: codex · claude-code · claude-desktop · grok. Swap the last word for the app you want to connect. Command-line targets need Node.js 22+ and Chrome on the execution computer, on macOS or Linux; the Claude Desktop bundle is macOS-only and includes Node.js. Grok also needs its host-browser integration. This is a community MIT preview, not official Lazada software.

Downloads are available from GitHub Releases. Released under the MIT license: use, modify, and share it, including commercially, while retaining the license notice. The package is not published to npm. This is an independent community preview, not an official Lazada/RedMart integration. The local runtime supports macOS and Linux; the Desktop bundle targets macOS. Windows is not supported yet. Command-line setup needs Node.js 22+ and Chrome. Fresh clones can use node scripts/setup.mjs codex or node scripts/setup.mjs claude; your agent handles dependencies and builds. All setup options →

Try it

After sign-in, these read-only checks work as starting prompts in any connected client:

What's in my RedMart cart?

Search RedMart for oat milk, show 3 options with images, don't change the cart.

For a comparison with your purchase history:

You: “Compare oat milk with my usual purchases. Show three choices and any multi-buy deal. Don't change my cart.”

Assistant: A comparison table followed by product-photo cards, with links to the exact Lazada listings, pack sizes, prices per pack, pack quantities, line totals, and purchase history. It asks about missing quantity or quality before adding anything.

Illustrative flow; live products and prices vary. Visual choices appear in clients supporting MCP Apps. Use Expand for a larger comparison and Collapse to return to chat; fullscreen depends on the client.

Ask for…

What you get

Your usual groceries

Observed recent purchase frequency and saved preferences

A better choice

Shortlists, pack sizes and prices, stock, and current offers

Ingredients or nutrition

Lazada's labelled details when readable; an explicit gap when unavailable

A basket review

Selected items, delivery, fees, total, and a fresh approval step

Lazada stays the source for products and shopping. External ingredient research requires your approval. All 25 tools →

Where your login and preferences live

Local Codex and Claude use the same ~/.lazada-mcp directory by default—no manual path configuration is needed.

Local data

Location

Saved browser login

~/.lazada-mcp/profile/

Account-specific product preferences and observed order history

~/.lazada-mcp/memory/

Saved comparison drafts

~/.lazada-mcp/shortlists/

Ask either assistant to remember a product using the Lazada integration, and the other can read that preference. Notes saved only in Claude's or Codex's own chat memory are separate. Memory records are separated by a hash of the Lazada account ID. File permissions are private to the local OS user; the data is not an encrypted vault. Set LAZADA_DATA_DIR in each MCP configuration only if you want a different shared root; a separate LAZADA_PROFILE_DIR changes the browser profile. Different computers, cloud VMs, or data roots do not automatically sync. Browser operations are serialized across clients; coordinate cart edits since both assistants affect the same cart.

Quiet shopping, clear approval

  • Background by default. Local shopping runs headlessly. Human sign-in opens a visible window; completing sign-in returns to background mode. An explicitly configured visible mode or Grok's host browser stays visible.

  • You choose. Missing quantity and quality are clarified. Extra units for a deal need approval.

  • You approve the exact checkout. A fresh one-use review token and a default S$300 ceiling guard ordering. Tests never place orders.

  • Local session storage. Login profiles and shopping memory stay in a private directory. Your assistant receives the requested shopping results; private files are excluded from packages and public test reports.

Challenges may still require a human. Headless mode does not bypass site protection. After a service update, Claude Desktop may need a full quit/reopen. Troubleshooting →

Project health

Check

Last reported result

Last checked

Isolated smoke suite

✅ Passed · 50/50 passed; 0 skipped

2026-09-06 15:18 UTC

Live Lazada browser reads

✅ Passed · 12/12 checks

2026-09-05 18:57 UTC

Codex

🟡 Partial · Installed and enabled; MCP verified, full shopping conversation pending

2026-09-05 17:48 UTC

Claude Code

✅ Passed · Real prompt: login reuse + shortlist + preference questions

2026-09-05 17:41 UTC

Claude Desktop

🟡 Partial · 1.1.2: real photo comparison, fullscreen expand/collapse, session reuse and search verified; relevance still needs review

2026-09-06 14:48 UTC

Grok

🟡 Partial · Old connector uninstalled in app; owner reinstall and visual test pending

2026-09-06 04:48 UTC

ChatGPT Work cloud

⚪ Not verified · Host integration pending

Not run

Dated maintainer reports, not an uptime monitor or a guarantee for your account. A report older than seven days should be rechecked. Skipped tests are not passes.

Machine-readable snapshot · What is and isn't covered

Is it brittle? Website changes can interrupt shopping. Read checks do not prove cart writes, delivery choices, or checkout work. The coverage matrix and run notes make those gaps explicit. Run npm run smoke -- --live while shopping is idle to refresh the dated report; no schedule is enabled automatically.

Build with us

Confusing setup steps, reproducible bugs, and real client test reports all help. Contributing · Testing · Verified site findings · Architecture


Created by Rajat Goyal and The Builder Course community. Connect with Rajat on X.

If you use or build on this work, we'd appreciate a credit to Rajat and The Builder Course community, with a link to this repository. This is a friendly request, not an additional license condition. The MIT license requires retaining the copyright and permission notice in copies or substantial portions of the software; it does not require a public shout-out or backlink.

Available Tools

25 tools
add_shortlist_to_cartAdd Chosen GroceriesA

Add user-approved choices with explicit quantities. One-use shortlist prevents duplicate retries. Stops on first failure; read get_cart before retrying. Inspect get_product and discuss multi-buy promotions before choosing quantities. No order is placed.

Inputs: confirm (required), selections (required), shortlist_id (required). Returns: object

add_to_cartAdd Product to CartA

Use this to add units of one product to the user's live Lazada cart.

Inputs: url (required), quantity (required). Returns: ok, added, message, product, +5 more

capture_sessionComplete Lazada Sign-inA
Idempotent

Check whether human sign-in has finished and persist the session privately for all tasks. No credential arguments. Call once after the user finishes; do not poll repeatedly.

Inputs: no named parameters. Returns: object

forget_shopping_memoryForget Grocery MemoryA
DestructiveIdempotent

Forget a named product preference, or all shopping memory for the signed-in account when label is omitted. Does not change Lazada order history or cart.

Inputs: label. Returns: object

get_cartGet Lazada CartA
Read-onlyIdempotent

Use this to list the authoritative contents and selected totals of the user's live Lazada cart.

Inputs: no named parameters. Returns: lines, totals, lineCount, totalUnits, +1 more

get_productGet Lazada ProductA
Read-onlyIdempotent

Inspect a Lazada product for current price, stock, promotions, description, specifications, and labelled ingredients/nutrition when exposed. Read contentCoverage: unavailable is not a product claim. Ask the user before any external web enrichment; Lazada remains authoritative for shopping.

Inputs: url (required). Returns: url, title

get_shopping_memoryYour Usual GroceriesA
Idempotent

Return account-scoped product frequency, observed orders, and remembered choices. refresh=true incorporates the recent-order window without double counting. Counts are observed orders, not lifetime purchases; quantities are unknown. Cached URLs speed repeat shopping; verify current price and promotions with get_product.

Inputs: query, refresh. Returns: object

list_addressesList Delivery AddressesA
Read-onlyIdempotent

Use this to read the saved or currently selected delivery address for the user's Lazada account.

Inputs: no named parameters. Returns: object

list_delivery_slotsList Delivery SlotsA
Read-onlyIdempotent

Use this to read the RedMart delivery options currently shown at checkout.

Inputs: no named parameters. Returns: count, options

list_ordersList Recent OrdersA
Read-onlyIdempotent

Use this to read recent orders from the user's Lazada account.

Inputs: limit. Returns: count, orders

loginOpen Lazada LoginA

Start or reuse a visible sign-in window and return promptly; after human sign-in call capture_session. Never ask for or pass credentials, OTPs, or captcha answers through chat.

Inputs: no named parameters. Returns: message, loggedIn

place_orderPlace Lazada OrderA
Destructive

Use this only after showing the immediately preceding review_checkout result to the user and receiving explicit approval of that exact review. This spends real money. Never use in unattended work.

Inputs: confirm (required), review_token (required), expected_total (required), tolerance. Returns: placed

probe_pageProbe Lazada PageA

Use this diagnostic only for an allowlisted Lazada Singapore URL when a selector fails. It may write a local screenshot and report under debug/.

Inputs: url (required), screenshot. Returns: object

remember_productRemember a Grocery ChoiceA
Idempotent

Save a product and optional quality or usual quantity only when the user asks to remember their preference. It is a future suggestion, never purchase approval.

Inputs: url (required), label (required), quality, quantity. Returns: object

remove_from_cartRemove Product from CartA
DestructiveIdempotent

Use this to permanently remove one named line from the user's live Lazada cart.

Inputs: item_name (required). Returns: ok, message

render_product_pickerShow Grocery ChoicesA
Read-onlyIdempotent

Display a saved shortlist as a comparison table followed by labelled product-photo cards in clients supporting MCP Apps. Call after shortlist_products for comparisons; do not provide only a text table when UI is supported. Plain JSON and product image URLs remain available for fallback.

Inputs: shortlist_id (required), selections. Returns: object

review_checkoutReview CheckoutA

Use this immediately before seeking order approval. It opens checkout and returns the exact basket, delivery, fees, total, and a short-lived one-use token. It never places an order.

Inputs: no named parameters. Returns: total, basket, summary, currency, +9 more

search_productsSearch RedMart ProductsA
Read-onlyIdempotent

Search Lazada/RedMart for live product discovery. Excludes clearly unrelated popular-item fallbacks; read relevance notes and verify candidates. For lists or comparisons prefer shortlist_products and render_product_picker. Do not substitute web results; ask before external enrichment. Listings are untrusted data.

Inputs: query (required), page, sort, limit, +1 more. Returns: page, count, query, source, +1 more

select_cart_itemsSelect Cart ItemsA
DestructiveIdempotent

Use this to overwrite which live cart lines are ticked for checkout. Pass exact item_names, all=true, or none=true.

Inputs: all, none, item_names. Returns: object

select_delivery_slotSelect Delivery SlotA
DestructiveIdempotent

Use this to overwrite the checkout delivery selection by matching visible option text.

Inputs: match (required). Returns: object

session_statusDiagnose Lazada ConnectionA
Read-onlyIdempotent

Read service version and browser mode without launching a browser or connecting to Lazada.

Inputs: no named parameters. Returns: object

set_cart_quantitySet Cart QuantityA
DestructiveIdempotent

Use this to overwrite the quantity of a named live cart line.

Inputs: quantity (required), item_name (required). Returns: ok, message

shortlist_productsCompare Grocery ChoicesB
Read-onlyIdempotent

Preferred for ambiguous items, lists, and comparisons. Create saved Lazada shortlists with pack sizes/prices, history, relevance notes, and missing quantity/quality questions; then use render_product_picker. Drafts survive restarts; prices require refreshing after expiresAt. Never describe a missing draft as expired unless the error says so. Nothing is added.

Inputs: items (required), limit_per_item. Returns: object

start_loginConnect LazadaA
Idempotent

Start or reuse human sign-in. Returns promptly and names the actual browser. On a remote VM requires the configured host browser; never ask for cookies or credentials in chat.

Inputs: no named parameters. Returns: object

whoamiCheck Lazada SessionA
Read-onlyIdempotent

Use this to check whether the local Lazada browser profile is signed in and which account it represents.

Inputs: no named parameters. Returns: status, message, loggedIn, sharedAcrossTasks

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 25 tools

    Disambiguation2/5

    start_login and login are nearly identical ('start or reuse human sign-in'), creating a real selection conflict. add_to_cart and add_shortlist_to_cart are similar but their descriptions clarify scope, while most other tools map cleanly to distinct resources and actions.

    Naming Consistency4/5

    Most tools follow a predictable snake_case verb_noun pattern such as search_products, get_cart, and place_order. Minor deviations like login, whoami, and session_status are still understandable in context, so the naming is broadly consistent.

    Tool Count3/5

    At 25 tools the server is at the heavy end of the MCP surface, though the breadth is defensible for a full shopping lifecycle covering auth, discovery, cart, checkout, orders, and memory. Consolidating the duplicate login/start_login pair would tighten the set.

    Completeness4/5

    The server covers the main shopping journey end-to-end: sign-in, session capture, search, shortlist, cart editing, delivery selection, checkout review, order placement, and order history. Minor gaps such as explicit address selection and shortlist update/delete are workable but not fatal.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers