Lightspeed Retail (R-Series) MCP by usefulapi
Server Details
Read Lightspeed R-Series items, stock, sales, customers and POs; create customers and set stock.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
17 toolscreate_customerCreate a customerInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Primary email address. | ||
| phone | No | Phone number. | |
| title | No | Job title. | |
| company | No | Company name. | |
| last_name | No | Last name. | |
| first_name | No | First name. | |
| phone_type | No | Phone type (default Mobile). | |
| customer_type_id | No | customerTypeID to assign. |
get_accountGet accountRead-onlyInspect
The connected Lightspeed Retail (R-Series) account: id, name, status, employee count/limit, default and purchasing currencies. Good first call. GET /Account/{accountID}.json.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
get_customerGet a customerRead-onlyInspect
One customer by customerID with Contact (emails, phones, addresses), customer type and notes. GET /Account/{accountID}/Customer/{customerID}.json.
| Name | Required | Description | Default |
|---|---|---|---|
| relations | No | Related records to include (each adds a little to the request's rate-limit cost). Default: Contact, CustomerType, Note. Allowed: Contact, CustomerType, Discount, Note, TaxCategory, CreditAccount, Tags, CustomFieldValues, CustomFieldValues.value. | |
| customer_id | Yes | The customerID (from list_customers). |
get_itemGet an itemRead-onlyInspect
One item by itemID with its prices, per-shop stock (ItemShops), category and other related records. GET /Account/{accountID}/Item/{itemID}.json.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | The itemID (from list_items). | |
| relations | No | Related records to include (each adds a little to the request's rate-limit cost). Default: ItemShops, Category, Manufacturer, ItemVendorNums, Note. Allowed: Category, TaxClass, ItemAttributes, ItemAttributes.ItemAttributeSet, Manufacturer, Note, Images, ItemShops, ItemVendorNums, ItemComponents, ItemECommerce, TagRelations, TagRelations.Tag, CustomFieldValues, CustomFieldValues.value, ItemPrices. |
get_purchase_orderGet a purchase orderRead-onlyInspect
One purchase order by orderID with its lines (OrderLines: itemID, quantity, numReceived, price), vendor and shop. GET /Account/{accountID}/Order/{orderID}.json.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | The orderID (from list_purchase_orders). | |
| relations | No | Related records to include (each adds a little to the request's rate-limit cost). Default: OrderLines, Vendor, Shop, Note. Allowed: OrderLines, Note, Vendor, Shop, CustomFieldValues, CustomFieldValues.value. |
get_saleGet a saleRead-onlyInspect
One sale by saleID with its line items (SaleLines with Item), payments (SalePayments with PaymentType) and customer. GET /Account/{accountID}/Sale/{saleID}.json.
| Name | Required | Description | Default |
|---|---|---|---|
| sale_id | Yes | The saleID (from list_sales). | |
| relations | No | Related records to include (each adds a little to the request's rate-limit cost). Default: SaleLines, SaleLines.Item, SalePayments, SalePayments.PaymentType, Customer. Allowed: SaleLines, SaleLines.Discount, SaleLines.TaxClass, SaleLines.Note, SaleLines.Item, SaleLines.InventorySales, SaleNotes, SalePayments, SalePayments.PaymentType, SalePayments.CCCharge, SalePayments.SaleAccounts, SalePayments.Signatures, ShipTo, ShipTo.Contact, Customer, Customer.Contact, Discount, TaxCategory, TaxCategory.TaxCategoryClasses, Quote. |
list_categoriesList categoriesRead-onlyInspect
Item categories (hierarchical): categoryID, name, fullPathName, parentID, nodeDepth. GET /Account/{accountID}/Category.json.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name contains this text. | |
| sort | No | Sort field; prefix "-" for descending. Allowed: categoryID, timeStamp, leftNode, rightNode. | |
| limit | No | Records per page (1-100, default 100). | |
| next_url | No | To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set. | |
| parent_id | No | Only direct children of this categoryID (0 = top level). |
list_customersList customersRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field; prefix "-" for descending. Allowed: customerID, timeStamp, firstName, lastName. | |
| No | Email contains this text (searches Contact.email). | ||
| limit | No | Records per page (1-100, default 100). | |
| company | No | Company contains this text. | |
| archived | No | false (default) = active records only, true = active and archived, only = archived only. | |
| next_url | No | To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set. | |
| last_name | No | Last name contains this text. | |
| first_name | No | First name contains this text. | |
| include_contact | No | Include the Contact relation (emails, phones, addresses). |
list_employeesList employeesRead-onlyInspect
Employees: employeeID, firstName, lastName, lockOut, archived, employeeRoleID, limitToShopID. Use employeeID to filter sales. GET /Account/{accountID}/Employee.json.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field; prefix "-" for descending. Allowed: employeeID, timeStamp. | |
| limit | No | Records per page (1-100, default 100). | |
| archived | No | false (default) = active records only, true = active and archived, only = archived only. | |
| next_url | No | To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set. | |
| include_contact | No | Include the Contact relation. |
list_inventoryList inventory levelsRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field; prefix "-" for descending. Allowed: itemShopID, timeStamp. | |
| limit | No | Records per page (1-100, default 100). | |
| item_id | No | Only this item (itemID). | |
| max_qoh | No | Quantity on hand <= this (e.g. 0 for out of stock). | |
| min_qoh | No | Quantity on hand >= this. | |
| shop_id | No | Only this shop (shopID; 0 = the all-shops summary records). | |
| next_url | No | To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set. | |
| modified_since | No | Only records changed at or after this time (timeStamp). |
list_itemsList itemsRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ean | No | Exact EAN. | |
| upc | No | Exact UPC. | |
| sort | No | Sort field; prefix "-" for descending. Allowed: itemID, timeStamp, description. | |
| limit | No | Records per page (1-100, default 100). | |
| min_qoh | No | Only items with at least one shop record whose quantity on hand is >= this (loads ItemShops). | |
| archived | No | false (default) = active records only, true = active and archived, only = archived only. | |
| next_url | No | To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set. | |
| item_code | No | Exact match on itemID, UPC or EAN. | |
| vendor_id | No | Only items whose default vendor is this vendorID. | |
| custom_sku | No | Exact custom SKU. | |
| system_sku | No | Exact Lightspeed system SKU (the barcode on labels). | |
| category_id | No | Only items in this category (categoryID). | |
| description | No | Description contains this text (like search). | |
| include_stock | No | Include per-shop stock (ItemShops relation). | |
| modified_since | No | Only items modified at or after this time (item timeStamp, UTC unless an offset is given). | |
| include_category | No | Include the Category record. | |
| manufacturer_sku | No | Exact manufacturer SKU. |
list_purchase_ordersList purchase ordersRead-onlyInspect
Purchase orders to vendors: orderID, vendorID, shopID, orderedDate, arrivalDate, receivedDate, complete, totalQuantity, shipCost. GET /Account/{accountID}/Order.json.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field; prefix "-" for descending. Allowed: orderID, timeStamp. | |
| limit | No | Records per page (1-100, default 100). | |
| shop_id | No | Only orders for this shop (shopID). | |
| archived | No | false (default) = active records only, true = active and archived, only = archived only. | |
| complete | No | true = completed orders only, false = open orders only. | |
| next_url | No | To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set. | |
| vendor_id | No | Only orders to this vendor (vendorID). | |
| include_lines | No | Include the OrderLines relation. |
list_salesList salesRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End (inclusive), same format. | |
| from | No | Start (inclusive), e.g. 2026-10-01 or 2026-10-01T00:00:00-04:00. Times are UTC unless an offset is given. | |
| sort | No | Sort field; prefix "-" for descending. Allowed: saleID, timeStamp, completeTime, updatetime. | |
| limit | No | Records per page (1-100, default 100). | |
| voided | No | true = voided only, false = exclude voided. | |
| shop_id | No | Only sales in this shop (shopID). | |
| next_url | No | To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set. | |
| completed | No | true = completed sales only, false = open/unfinished only. | |
| date_field | No | Which date from/to apply to (default completeTime). | |
| customer_id | No | Only sales for this customer (customerID). | |
| employee_id | No | Only sales processed by this employee (employeeID). | |
| include_lines | No | Include the SaleLines relation (line items). | |
| include_payments | No | Include the SalePayments relation. |
list_shopsList shopsRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field; prefix "-" for descending. Allowed: shopID. | |
| limit | No | Records per page (1-100, default 100). | |
| next_url | No | To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set. | |
| include_contact | No | Also load each shop's Contact (address, phone). |
list_vendorsList vendorsRead-onlyInspect
Suppliers: vendorID, name, accountNumber, archived. GET /Account/{accountID}/Vendor.json.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name contains this text. | |
| sort | No | Sort field; prefix "-" for descending. Allowed: vendorID, timeStamp, name. | |
| limit | No | Records per page (1-100, default 100). | |
| archived | No | false (default) = active records only, true = active and archived, only = archived only. | |
| next_url | No | To get the next page: the next_url value from a previous call of this same tool, unchanged. Other filters are ignored when it is set. | |
| include_contact | No | Include the Contact relation. |
update_itemUpdate an itemDestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ean | No | New EAN (11-14 digits). | |
| upc | No | New UPC (11-14 digits). | |
| item_id | Yes | The itemID to update. | |
| custom_sku | No | New custom SKU. | |
| category_id | No | New categoryID (0 = no category). | |
| description | No | New description (shown on receipts and labels). | |
| default_cost | No | New default (reorder) cost. | |
| manufacturer_sku | No | New manufacturer SKU. |
update_stockSet stock levelDestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| qoh | Yes | The new quantity on hand. | |
| item_id | Yes | The itemID. | |
| shop_id | No | The shopID whose stock to set (from list_shops). | |
| item_shop_id | No | Or the itemShopID of that item/shop record (from get_item ItemShops). |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
17 tool updates
- First observed
create_customer - First observed
get_account - First observed
get_customer - First observed
get_item - First observed
get_purchase_order - First observed
get_sale - First observed
list_categories - First observed
list_customers - First observed
list_employees - First observed
list_inventory - First observed
list_items - First observed
list_purchase_orders - First observed
list_sales - First observed
list_shops - First observed
list_vendors - First observed
update_item - First observed
update_stock
Related MCP Connectors
Query Loyverse POS receipts, shifts, items, inventory and customers, and update stock and customers.
Read store products, orders, customers, categories and coupons; adjust inventory and update orders.
Read Finale Inventory products, stock, orders and shipments; create draft purchase orders.
131Read Megaventory products, stock, orders and partners; create clients, sales and purchase orders.
201
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables read-only access to Lightspeed X retail data (sales, inventory, products, customers) with aggregated reporting on revenue, COGS, profit, and other metrics for MCP clients like Claude.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables read-only access to retail ERP data through the official output WebService, letting users query products, stock and inventory, customers and suppliers, sales movement and billing, orders, salespeople, and store information with date-window and store filters.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to query a retail and food-service point-of-sale database through predefined business tools for sales summaries, top products, margins, stagnant inventory, cash reconciliation, and optional stock adjustments, returning formatted markdown answers.-
- AlicenseBqualityAmaintenanceEnables Claude and other MCP clients to read and write a Loyverse point-of-sale account, covering catalogue items, inventory levels, loyalty customers, receipts and refunds through natural language. Includes a one-call sales summary that aggregates any date range into totals and ranked breakdowns by day, item, category, payment type, employee or store.41MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.