Lightspeed Retail (R-Series) MCP server

Read Lightspeed R-Series items, stock, sales, customers and POs; create customers and set stock. Hosted by usefulapi — connect from Claude, Cursor, or any MCP client.

Claude

  1. Open Settings → Connectors → Add custom connector
  2. Paste this URL:
    https://lightspeed-r-series.usefulapi.io/mcp
  3. Authorize with your Lightspeed Retail (R-Series) account

Cursor · VS Code · Windsurf · Cline

Add to your MCP config, then reload & authorize:

{
  "mcpServers": {
    "lightspeed-r-series": {
      "url": "https://lightspeed-r-series.usefulapi.io/mcp"
    }
  }
}
live20 toolsFree 100 tool calls / monthPro $9/mo · $90/yr

Tools 20

ToolTypeWhat it does
get_accountread
Get account
The connected Lightspeed Retail (R-Series) account: id, name, status, employee count/limit, default and purchasing currencies. Good first call. GET /Account/{accountID}.json.
list_shopsread
List shops
List the account's shops (store locations): shopID, name, time zone, archived flag. Use shopID to filter sales, inventory and purchase orders. GET /Account/{accountID}/Shop.json.
list_itemsread
List items
Search the product catalog. Each item has itemID, description, SKUs (systemSku, customSku, upc, ean, manufacturerSku), defaultCost, categoryID and its Prices (price levels). Set include_stock to add per-shop quantities (ItemShops; shopID 0 = all shops). Paginate with next_url. GET /Account/{accountID}/Item.json.
get_itemread
Get an item
One item by itemID with its prices, per-shop stock (ItemShops), category and other related records. GET /Account/{accountID}/Item/{itemID}.json.
list_inventoryread
List inventory levels
Stock levels per item per shop (ItemShop records): qoh (quantity on hand), sellable, backorder, reorderPoint, reorderLevel, costs and values. shopID 0 is the all-shops summary. Paginate with next_url. GET /Account/{accountID}/ItemShop.json.
list_categoriesread
List categories
Item categories (hierarchical): categoryID, name, fullPathName, parentID, nodeDepth. GET /Account/{accountID}/Category.json.
list_salesread
List sales
Sales history: saleID, completed/voided flags, completeTime, totals (calcSubtotal, calcTax1/2, total, balance), customerID, employeeID, shopID, registerID. Filter by a date range on completeTime (default) or timeStamp, shop, customer, employee. Set include_lines for SaleLines (items sold). Paginate with next_url. GET /Account/{accountID}/Sale.json.
get_saleread
Get a sale
One sale by saleID with its line items (SaleLines with Item), payments (SalePayments with PaymentType) and customer. GET /Account/{accountID}/Sale/{saleID}.json.
list_customersread
List customers
Search customers by name, company or email: customerID, firstName, lastName, company, customerTypeID, createTime. Email search loads the Contact relation (emails, phones, addresses). Paginate with next_url. GET /Account/{accountID}/Customer.json.
get_customerread
Get a customer
One customer by customerID with Contact (emails, phones, addresses), customer type and notes. GET /Account/{accountID}/Customer/{customerID}.json.
list_vendorsread
List vendors
Suppliers: vendorID, name, accountNumber, archived. GET /Account/{accountID}/Vendor.json.
list_purchase_ordersread
List purchase orders
Purchase orders to vendors: orderID, vendorID, shopID, orderedDate, arrivalDate, receivedDate, complete, totalQuantity, shipCost. GET /Account/{accountID}/Order.json.
get_purchase_orderread
Get a purchase order
One purchase order by orderID with its lines (OrderLines: itemID, quantity, numReceived, price), vendor and shop. GET /Account/{accountID}/Order/{orderID}.json.
list_employeesread
List employees
Employees: employeeID, firstName, lastName, lockOut, archived, employeeRoleID, limitToShopID. Use employeeID to filter sales. GET /Account/{accountID}/Employee.json.
create_customerwrite
Create a customer
Create a new customer, optionally with a primary email and one phone number (stored in the customer's Contact). Give at least a first name, last name or company. Returns the new customer with its customerID. POST /Account/{accountID}/Customer.json.
update_itemwrite
Update an item
Change fields of an existing item: description, default cost, SKUs, category. Only the fields you pass are changed. Prices and stock are not changed here (use update_stock for quantities). PUT /Account/{accountID}/Item/{itemID}.json.
update_stockwrite
Set stock level
CHANGES STOCK COUNTS: sets (does not add to) the quantity on hand of one item in one shop to `qoh`, by updating the item's ItemShop record. Use for correcting a few items; for many items use an inventory count in Lightspeed. Identify the shop by shop_id, or by item_shop_id from get_item's ItemShops. Not for shopID 0 (the all-shops summary). PUT /Account/{accountID}/Item/{itemID}.json with ItemShops.
lightspeedrseries_usage_statusmeta
Usage status (free-tier meter)
Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter.
lightspeedrseries_upgrademeta
Upgrade to Pro (unlimited)
Subscribe to the Pro plan for UNLIMITED Lightspeed Retail tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Does not count against the meter.
lightspeedrseries_cancel_subscriptionmeta
Cancel the Pro subscription
Cancel the caller's Lightspeed Retail Pro subscription at the end of the paid period (no refund for the current period; unlimited calls continue until then, then the free tier applies). Requires confirm: true. Run lightspeedrseries_upgrade later to undo the cancel before the period ends. Does not count against the meter.

Pricing

PlanPriceLimit
Free$0100 tool calls / month
Proper store account$9/mo · $90/yrUnlimited

Pro covers this Lightspeed Retail (R-Series) server only. Subscribe with lightspeedrseries_upgrade (it returns a Stripe Checkout link). Cancel any time with lightspeedrseries_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running lightspeedrseries_upgrade before then undoes the cancel. Or write to [email protected].

This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.

More Commerce & Memberships MCP servers

BettermodeBloomerangBooqableBreeze ChMSEcwidElvantoEventbriteFoxy.ioGumroadHumanitixLearnWorldsLittle Green LightLoyverseMemberfulNeon CRMOwnerRezPrintfulPrintifyRaiselyRechargeSmile.ioSwellTeamUpTitoUnleashed SoftwareVirtuousWild Apricot

All Commerce & Memberships servers →