Skip to main content
Glama
davidboulay

Lightspeed X-Series MCP

by davidboulay

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LIGHTSPEED_TOKENYesYour Lightspeed personal token from Setup → Personal tokens.
LIGHTSPEED_API_VERSIONNoX-Series date-based API version. Each version is supported for about a year, so bump it yearly.2026-10
LIGHTSPEED_DOMAIN_PREFIXYesThe domain prefix of your Lightspeed Retail store, e.g. `mystore` for `mystore.retail.lightspeed.app`.

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_retailerA

Retailer account details: name, currency, time zone, settings. Call this first if you need the currency or local time zone.

list_outletsA

All outlets (stores/warehouses) with id, name, address and time zone.

list_registersB

All registers (tills) with their outlet and open/closed state.

list_usersA

Staff users (id, name, account type, outlets). Use ids with get_user_sale_totals or search_sales(user_id=...).

list_payment_typesB

Payment types configured (cash, card, gift card, store credit, ...).

list_taxesC

Sales taxes configured, with rates.

list_referenceA

List a reference collection. kind is one of: brands, suppliers, tags, product_categories, product_types, variant_attributes, customer_groups, price_books, outlet_taxes, button_layouts.

search_productsA

Find products by name, variant name, SKU or barcode (case-insensitive; every word must match). Returns product_id, name, variant, SKU and retail prices. Follow with get_inventory(product_id) for stock or get_product for full detail.

get_productB

One product with its family, brand, category, supplier, tags and variant attributes. Pass product_id, or sku to look it up by SKU.

get_product_familyA

The variant family a product belongs to (every colour/size of one item): family details, brand/category/tag names and one compact line per variant (id, variant name, SKU, retail price, active). full=True returns the raw API object (can be very large).

list_productsA

Raw product collection page (version cursor). Pass the previous response's version.max as after for the next page. Prefer search_products to find items.

get_inventoryA

Stock on hand per outlet for one product (variant), with reorder point/amount and average cost. include_variants=True covers its whole family (every colour and size; can be hundreds of rows). outlet filters by outlet name (substring). hide_zero drops rows with nothing on hand.

list_inventory_levelsA

Inventory levels across the catalog, optionally filtered by outlets and products (on hand, available, allocated, on order where provided). Page with offset/size (size max 10000). Use for 'what's in stock at outlet X' or low-stock reviews.

list_stock_adjustmentsC

Stock adjustments (manual corrections, damages, ...), version-cursor paged.

list_consignmentsA

Stock orders/transfers/returns/stocktakes. type: SUPPLIER, OUTLET (transfer), RETURN or STOCKTAKE. status e.g. OPEN, SENT, DISPATCHED, RECEIVED, CANCELLED, STOCKTAKE_IN_PROGRESS. Version-cursor paged.

get_consignmentB

One consignment with its totals and (by default) its product lines.

list_purchase_ordersC

Purchase orders (version-cursor paged).

get_purchase_orderB

One purchase order with its line items and deliveries.

search_salesA

Find sales. date_from/date_to are local store dates YYYY-MM-DD, inclusive (default: today). states: closed, pending (on account / layby), parked, voided (default: all). Compact rows by default; set compact=False for full line items, or call get_sale(id).

get_saleB

One sale in full: line items, payments, taxes, customer, totals.

sales_summaryA

Revenue totals for a local date range (YYYY-MM-DD, inclusive; default today). group_by: outlet, day, user, product, or none. Counts closed sales by default (pass states to change). Returns sales count, totals excl/incl tax, tax, units (product grouping) and average sale value. Returns are included as negatives. Capped at 20,000 sales per call: narrow the range if truncated is true.

get_user_sale_totalsC

A staff user's sales totals (as reported by Lightspeed).

get_register_payments_summaryC

Payment totals by payment type for a register's current/last session.

list_quotesC

Quotes (sales:read), cursor paged with after.

list_fulfillmentsB

Fulfillments (pickups/deliveries/shipping) with state, optionally by outlet or sale.

search_customersC

Find customers by email, name, company, phone or customer code.

get_customerA

One customer (contact details, group, loyalty balance, year-to-date spend) with addresses and, by default, store credit balance.

get_customer_group_customersC

Customers in a customer group (version-cursor paged).

get_store_credit_reportA

Store credit report across all customers.

find_gift_cardB

A gift card by number, with balance, status and transactions.

list_gift_cardsC

Gift cards, optionally by status (e.g. ACTIVE, VOIDED).

list_promotionsC

Promotions. scope: current_upcoming (default), past or all. name matches part of the promotion name; outlet_ids keeps those linked to the given outlets.

get_promotionA

One promotion with its rules, promo codes and applicable products (counts plus the first product_limit of each product list).

get_price_book_productsA

Prices in a price book (tax-exclusive): name, product_id, price, tax, markup. Filter by product_ids or query (name substring); capped at limit.

api_getA

Read any other X-Series endpoint with GET, e.g. /shifts, /services, /serialnumbers, /auditlog_events, /customer_taxes, /product_images/{id}. path is relative to /api/ and must start with '/'. params are query parameters (lists repeat the key). Reference: https://x-series-api.lightspeedhq.com/llms.txt

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 35 tools

Disambiguation3/5

Most tools target a distinct resource/action, but api_get is a catch-all GET that overlaps with every specific read tool. Product and inventory tools (search_products, list_products, get_product, get_inventory, list_inventory_levels) also require careful selection, though descriptions help.

Naming Consistency4/5

The set is mostly consistent snake_case verb_noun naming (list_*, get_*, search_*). Minor deviations like api_get, sales_summary, and find_gift_card keep it from being perfectly uniform.

Tool Count2/5

35 tools is heavy for an MCP surface, even for a broad retail API. Many read/list/get variants could be consolidated or handled through fewer well-scoped tools plus the generic api_get.

Completeness3/5

Read coverage is broad across products, inventory, sales, customers, gift cards, and promotions, but the entire write/update/delete side is absent because every tool is a GET-style read. This is a notable gap for full lifecycle coverage.

Maintenance

ActivityMaintained
ResponsivenessNo issues