Lightspeed Retail (X-Series) MCP by usefulapi
REMOTE · LIGHTSPEED-X-SERIES.USEFULAPI.IO
Read Lightspeed X-Series products, stock, sales, customers, stock orders; one-call sales reports.
Available components
Last scanned (2 hours ago)
Scores higher than 46% of remote servers
Reachable. Last reached 25 Oct 2026.
Category E-commerce
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security78
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability0
- Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability78
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 5178 tokens (~172/item across 30 items; 30 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management7
- Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage91
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 73% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 30 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 31 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Oct 26 +1
- Server version: 1.4.0 → 1.4.3 functional
- 24 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Stability: unverified → 0.03 ▲ functional
- Server version: 1.3.0 → 1.4.0 functional
- Server version: 1.2.0 → 1.3.0 functional
- Server version: 1.0.0 → 1.2.0 functional
- 23 Oct 26 61
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 25 Oct 2026 · Probed https://lightspeed-x-series.usefulapi.io/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=usefulapi.io | CN=WE1,O=Google Trust Services,C=US | 13 Sept 2026 | 12 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | d9be3287b0fde9630e825ba1f79bff3f |
| SANs: usefulapi.io, *.usefulapi.io | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of lightspeed-x-series.usefulapi.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 38690, 57355 | 8, 8 | Verified |
| usefulapi.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 302 |
WWW-Authenticate challenge Bearer realm="OAuth", resource_metadata="https://lightspeed-x-series.usefulapi.io/.well-known/oauth-protected-resource/mcp"
Bearer realm="OAuth", resource_metadata="https://lightspeed-x-series.usefulapi.io/.well-known/oauth-protected-resource/mcp" Protected resource metadata
| Document | https://lightspeed-x-series.usefulapi.io/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://lightspeed-x-series.usefulapi.io/mcp |
| Authorisation server | https://lightspeed-x-series.usefulapi.io |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://lightspeed-x-series.usefulapi.io/mcp | Redirected | 302 | https://usefulapi.io/lightspeed-x-series/ |
| http (plaintext) | http://lightspeed-x-series.usefulapi.io/mcp | Inconclusive | 302 | http://lightspeed-x-series.usefulapi.io/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
lightspeedxseries_create_customer Create customer ~249
WRITE: create a new customer. Give at least a first name, last name or company name. Check search_customers first so you do not create a duplicate. POST /customers.
| Name | Type | Req | Description |
|---|---|---|---|
| company_name | string | – | – |
| customer_code | string | – | Unique customer code (generated when omitted on create). |
| customer_group_id | string | – | Customer group id (see list_customer_groups). |
| date_of_birth | string | – | – |
| do_not_email | boolean | – | – |
| string | – | – | |
| enable_loyalty | boolean | – | – |
| enable_promotional_sms | boolean | – | – |
| first_name | string | – | First name. |
| last_name | string | – | Last name. |
| mobile | string | – | – |
| note | string | – | – |
| phone | string | – | – |
| physical_address_1 | string | – | – |
| physical_address_2 | string | – | – |
| physical_city | string | – | – |
| physical_country_id | string | – | Country code such as US, CA, AU. |
| physical_postcode | string | – | – |
| physical_state | string | – | – |
| physical_suburb | string | – | – |
No output schema declared.
No examples provided.
lightspeedxseries_get_consignment Get consignment ~58
One consignment (stock order, transfer, stocktake or return) by id. GET /consignments/{consignment_id}.
| Name | Type | Req | Description |
|---|---|---|---|
| consignment_id | string | yes | Consignment id (from list_consignments). |
No output schema declared.
No examples provided.
lightspeedxseries_get_customer Get customer ~61
One customer by id: contact details, addresses, customer group, balance, loyalty balance, year-to-date spend. GET /customers/{customer_id}.
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | string | yes | Customer id (from search_customers or list_customers). |
No output schema declared.
No examples provided.
lightspeedxseries_get_inventory_levels Get inventory levels ~351
Stock on hand per product per outlet: product_id, location_id (= outlet id), current_inventory_level, reorder threshold/amount, quantity_to_procure, average cost, total cost, supplier. Filter by outlet_ids, product_ids (or root_product_ids for variant families), supplier_ids; to_be_procured_only keeps products with a positive quantity_to_procure (the vendor's re-order suggestion, which accounts for open orders); for a plain below-reorder-point list, compare current_inventory_level with reorder_threshold yourself. Offset paging: pass next_offset to continue (null = last page). Read-only even though the vendor takes the filter as a POST body. POST /inventory_levels.
| Name | Type | Req | Description |
|---|---|---|---|
| group_variants | boolean | – | Aggregate variant families when filtering by root_product_ids. |
| include_composites | boolean | – | – |
| include_inactive | boolean | – | true = include inactive products. |
| offset | integer | – | Offset for the next page: pass next_offset from the previous call (default 0). |
| outlet_ids | array | – | Only these outlets (the vendor calls them location_ids). |
| product_ids | array | – | Only these products. Not together with root_product_ids. |
| root_product_ids | array | – | Only these variant families (use with group_variants). Not together with product_ids. |
| size | integer | – | Records per page (default 100, max 500 here). |
| sort_direction | string | – | – |
| sort_type | string | – | – |
| supplier_ids | array | – | – |
| to_be_procured_only | boolean | – | true = only products with a positive quantity_to_procure (not the same as below the reorder point). |
No output schema declared.
No examples provided.
lightspeedxseries_get_outlet Get outlet ~42
One outlet by id. GET /outlets/{outlet_id}.
| Name | Type | Req | Description |
|---|---|---|---|
| outlet_id | string | yes | Outlet id (from list_outlets). |
No output schema declared.
No examples provided.
lightspeedxseries_get_product Get product ~85
One product (variant) by id, with its prices, codes, suppliers and outlet taxes. GET /products/{product_id}.
| Name | Type | Req | Description |
|---|---|---|---|
| includes | array | – | Related records to include. 'families' is required together with brands, categories, suppliers, tags, variant_attributes or customizations. |
| product_id | string | yes | Product id (from list_products). |
No output schema declared.
No examples provided.
lightspeedxseries_get_register_payments_summary Get register payments summary ~63
Payment totals by payment type for one register since it was opened (the end-of-day / cash-up view). GET /registers/{register_id}/payments_summary.
| Name | Type | Req | Description |
|---|---|---|---|
| register_id | string | yes | Register id (from list_registers). |
No output schema declared.
No examples provided.
lightspeedxseries_get_retailer Get retailer ~69
The connected store: id, name, domain prefix, store URL, country, currency, time zone, tax-exclusive setting, loyalty and gift-card settings. Good first call (use the time zone to turn a local day into UTC for sales searches). GET /retailer.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
lightspeedxseries_get_sale Get sale ~51
One sale by id with its line items, payments, taxes and totals. GET /sales/{sale_id}.
| Name | Type | Req | Description |
|---|---|---|---|
| sale_id | string | yes | Sale id (from list_sales or search_sales). |
No output schema declared.
No examples provided.
lightspeedxseries_get_user_sale_totals Get user sale totals ~64
Sales totals for one staff user, as the vendor computes them (no date filter; use sales_summary for a period). GET /users/{user_id}/sale_totals.
| Name | Type | Req | Description |
|---|---|---|---|
| user_id | string | yes | User id (from list_users). |
No output schema declared.
No examples provided.
lightspeedxseries_list_brands List brands ~134
List product brands (id, name). Paginate with next_after. GET /brands.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | Cursor: only records with a version number greater than this. Omit for the first page; then pass next_after from the previous call. Stop when data is empty. |
| before | integer | – | Only records with a version number up to this (rarely needed). |
| deleted | boolean | – | true = include deleted records (default: active only). |
| page_size | integer | – | Records per page (the vendor default applies when omitted; 50-100 keeps replies short). |
No output schema declared.
No examples provided.
lightspeedxseries_list_consignment_products List consignment products ~157
The product lines of one consignment: product_id, SKU, ordered count, received quantity, cost. Paginate with next_after (stop when data is empty). GET /consignments/{consignment_id}/products.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | Cursor: only records with a version number greater than this. Omit for the first page; then pass next_after from the previous call. Stop when data is empty. |
| before | integer | – | Only records with a version number up to this (rarely needed). |
| consignment_id | string | yes | Consignment id. |
| page_size | integer | – | Records per page (the vendor default applies when omitted; 50-100 keeps replies short). |
No output schema declared.
No examples provided.
lightspeedxseries_list_consignments List stock orders (consignments) ~216
List consignments: supplier stock orders (type SUPPLIER), transfers between outlets (OUTLET), stocktakes (STOCKTAKE) and returns (RETURN), with status (OPEN, SENT, DISPATCHED, RECEIVED, STOCKTAKE_*, CLOSED, CANCELLED), outlet, supplier, due and received dates, totals. Paginate with next_after. GET /consignments.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | Cursor: only records with a version number greater than this. Omit for the first page; then pass next_after from the previous call. Stop when data is empty. |
| before | integer | – | Only records with a version number up to this (rarely needed). |
| outlet_id | string | – | Only consignments of this outlet. |
| page_size | integer | – | Records per page (the vendor default applies when omitted; 50-100 keeps replies short). |
| status | string | – | – |
| type | string | – | SUPPLIER = purchase / stock orders. |
No output schema declared.
No examples provided.
lightspeedxseries_list_customer_groups List customer groups ~149
List customer groups (id, name). Use the id as customer_group_id when creating or updating a customer. Paginate with next_after. GET /customer_groups.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | Cursor: only records with a version number greater than this. Omit for the first page; then pass next_after from the previous call. Stop when data is empty. |
| before | integer | – | Only records with a version number up to this (rarely needed). |
| deleted | boolean | – | true = include deleted records (default: active only). |
| page_size | integer | – | Records per page (the vendor default applies when omitted; 50-100 keeps replies short). |
No output schema declared.
No examples provided.
lightspeedxseries_list_customers List customers ~173
List customers in version order: id, customer_code, name, email, phone, balance, loyalty_balance, year_to_date, customer group. To find one by name or email use search_customers. Paginate with next_after (stop when data is empty). GET /customers.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | Cursor: only records with a version number greater than this. Omit for the first page; then pass next_after from the previous call. Stop when data is empty. |
| before | integer | – | Only records with a version number up to this (rarely needed). |
| deleted | boolean | – | true = include deleted records (default: active only). |
| page_size | integer | – | Records per page (the vendor default applies when omitted; 50-100 keeps replies short). |
No output schema declared.
No examples provided.
lightspeedxseries_list_outlets List outlets ~162
List the store's outlets (locations): id, name, address, currency, time zone, default tax. Use the outlet id to filter sales, stock and stock orders. Paginate with next_after. GET /outlets.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | Cursor: only records with a version number greater than this. Omit for the first page; then pass next_after from the previous call. Stop when data is empty. |
| before | integer | – | Only records with a version number up to this (rarely needed). |
| deleted | boolean | – | true = include deleted records (default: active only). |
| page_size | integer | – | Records per page (the vendor default applies when omitted; 50-100 keeps replies short). |
No output schema declared.
No examples provided.
lightspeedxseries_list_products List products ~237
List products (variants) in the catalog: id, family_id, sku, variant_name, prices (price_excluding_tax / price_including_tax), active flags, codes, suppliers, version. The product NAME lives on the product family: add includes=["families"] to get it. Paginate with next_after (stop when data is empty). With sku set, only that SKU is looked up and the other filters are ignored. For text/brand/supplier filters use search_products; for stock use get_inventory_levels. GET /products.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | Cursor: only records with a version number greater than this. Omit for the first page; then pass next_after from the previous call. Stop when data is empty. |
| includes | array | – | Related records to include. 'families' is required together with brands, categories, suppliers, tags, variant_attributes or customizations. |
| page_size | integer | – | Records per page (the vendor default applies when omitted; 50-100 keeps replies short). |
| sku | string | – | Exact SKU (other filters are ignored when set). |
No output schema declared.
No examples provided.
lightspeedxseries_list_registers List registers ~151
List registers (tills): id, name, outlet_id, is_open, open/close times and invoice numbering. Paginate with next_after. GET /registers.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | Cursor: only records with a version number greater than this. Omit for the first page; then pass next_after from the previous call. Stop when data is empty. |
| before | integer | – | Only records with a version number up to this (rarely needed). |
| deleted | boolean | – | true = include deleted records (default: active only). |
| page_size | integer | – | Records per page (the vendor default applies when omitted; 50-100 keeps replies short). |
No output schema declared.
No examples provided.
lightspeedxseries_list_sales List sales (change feed) ~178
Sales in version order, oldest changes first: the way to sync everything that changed. It has NO date filter: for a period use search_sales or sales_summary. Each sale: id, date, invoice_number, state, customer_id, source (outlet, register, user), payments, line_items, totals. Paginate with next_after (stop when data is empty). GET /sales.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | Cursor: only records with a version number greater than this. Omit for the first page; then pass next_after from the previous call. Stop when data is empty. |
| before | integer | – | Only records with a version number up to this (rarely needed). |
| page_size | integer | – | Records per page (the vendor default applies when omitted; 50-100 keeps replies short). |
No output schema declared.
No examples provided.
lightspeedxseries_list_suppliers List suppliers ~140
List suppliers: id, name, default markup and contact details. Paginate with next_after. GET /suppliers.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | Cursor: only records with a version number greater than this. Omit for the first page; then pass next_after from the previous call. Stop when data is empty. |
| before | integer | – | Only records with a version number up to this (rarely needed). |
| deleted | boolean | – | true = include deleted records (default: active only). |
| page_size | integer | – | Records per page (the vendor default applies when omitted; 50-100 keeps replies short). |
No output schema declared.
No examples provided.
lightspeedxseries_list_tags List tags ~133
List product tags (id, name). Paginate with next_after. GET /tags.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | Cursor: only records with a version number greater than this. Omit for the first page; then pass next_after from the previous call. Stop when data is empty. |
| before | integer | – | Only records with a version number up to this (rarely needed). |
| deleted | boolean | – | true = include deleted records (default: active only). |
| page_size | integer | – | Records per page (the vendor default applies when omitted; 50-100 keeps replies short). |
No output schema declared.
No examples provided.
lightspeedxseries_list_taxes List taxes ~47
List tax groups and their rates (id, name, is_default, rates). The vendor returns the whole list in one reply (no cursor). GET /taxes.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
lightspeedxseries_list_users List users ~141
List the store's users (staff): id, username, display name, email, account type (cashier, manager, admin), enabled flag, restricted outlets. Paginate with next_after. GET /users.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | Cursor: only records with a version number greater than this. Omit for the first page; then pass next_after from the previous call. Stop when data is empty. |
| before | integer | – | Only records with a version number up to this (rarely needed). |
| page_size | integer | – | Records per page (the vendor default applies when omitted; 50-100 keeps replies short). |
No output schema declared.
No examples provided.
lightspeedxseries_sales_summary Sales summary (totals for a period) ~445
Totals for a period computed here from up to max_pages x page_size sales, so a report needs ONE tool call instead of dozens: sale count and net / tax / gross (tax-inclusive) totals, plus breakdowns by state, UTC day, outlet and payment type name, and the top products by quantity. By default only closed sales are counted (states containing 'closed'); set counted_states to change that. Dates are UTC (convert local days with the retailer's time zone). If the reply says truncated, call again with offset = next_offset and add the figures up. Uses GET /search?type=sales.
| Name | Type | Req | Description |
|---|---|---|---|
| counted_states | array | – | Sale states that count towards the totals (exact, case-insensitive). Default: every state containing 'closed'. |
| customer_id | string | – | Only sales to this customer. |
| date_from | string | – | Sales from this UTC time. YYYY-MM-DD means the start of that UTC day; or 2026-10-01T00:00:00Z. Convert local days to UTC with the retailer's time zone. |
| date_to | string | – | Sales up to this UTC time. YYYY-MM-DD means the END of that UTC day (23:59:59Z). |
| invoice_number | string | – | – |
| max_pages | integer | – | Pages of page_size sales to read (default 5, max 20). |
| offset | integer | – | Offset for the next page: pass next_offset from the previous call (default 0). |
| outlet_id | string | – | Only sales at this outlet. |
| page_size | integer | – | Sales per page (default 1000). |
| payment_type_id | string | – | Only sales with this payment type (the payment type's config_id, shown as payments[].type.config_id in a sale). |
| product_id | string | – | Only sales containing this product. |
| register_id | string | – | Only sales on this register. |
| state | string | – | Sale state. On-account and layby sales are state closed (they differ by attributes). |
| user_id | string | – | Only sales by this staff user. |
No output schema declared.
No examples provided.
lightspeedxseries_search_customers Search customers ~167
Find customers by email, first name, last name, company name, phone, mobile or customer code. Uses offset paging: pass next_offset to continue (null = last page). GET /search?type=customers.
| Name | Type | Req | Description |
|---|---|---|---|
| company_name | string | – | – |
| customer_code | string | – | – |
| deleted | boolean | – | true = include deleted records (default: active only). |
| string | – | – | |
| first_name | string | – | – |
| last_name | string | – | – |
| mobile | string | – | – |
| offset | integer | – | Offset for the next page: pass next_offset from the previous call (default 0). |
| page_size | integer | – | Records per page (max 1000). |
| phone | string | – | – |
No output schema declared.
No examples provided.
lightspeedxseries_search_products Search products ~186
Filter products by SKU, brand, supplier, tag, product type or variant parent. Uses offset paging: pass next_offset to continue (null = last page). GET /search?type=products.
| Name | Type | Req | Description |
|---|---|---|---|
| brand_id | string | – | Brand id. |
| deleted | boolean | – | true = include deleted records (default: active only). |
| offset | integer | – | Offset for the next page: pass next_offset from the previous call (default 0). |
| page_size | integer | – | Records per page (max 1000). |
| product_type_id | string | – | Product type id. |
| sku | string | – | SKU filter (sent in lowercase, as the vendor search requires). |
| supplier_id | string | – | Supplier id. |
| tag_id | string | – | Tag id. |
| variant_parent_id | string | – | Only the variants of this parent product. |
No output schema declared.
No examples provided.
lightspeedxseries_search_sales Search sales ~335
Find sales by date range (UTC), state, outlet, register, user, customer, payment type, product or invoice number. Uses offset paging: pass next_offset to continue (null = last page). Replies can be large: for totals over a period use sales_summary instead of paging through this. GET /search?type=sales.
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | string | – | Only sales to this customer. |
| date_from | string | – | Sales from this UTC time. YYYY-MM-DD means the start of that UTC day; or 2026-10-01T00:00:00Z. Convert local days to UTC with the retailer's time zone. |
| date_to | string | – | Sales up to this UTC time. YYYY-MM-DD means the END of that UTC day (23:59:59Z). |
| invoice_number | string | – | – |
| offset | integer | – | Offset for the next page: pass next_offset from the previous call (default 0). |
| outlet_id | string | – | Only sales at this outlet. |
| page_size | integer | – | Records per page (max 1000). |
| payment_type_id | string | – | Only sales with this payment type (the payment type's config_id, shown as payments[].type.config_id in a sale). |
| product_id | string | – | Only sales containing this product. |
| register_id | string | – | Only sales on this register. |
| state | string | – | Sale state. On-account and layby sales are state closed (they differ by attributes). |
| user_id | string | – | Only sales by this staff user. |
No output schema declared.
No examples provided.
lightspeedxseries_set_product_stock Set product stock and reorder levels ~191
WRITE: set the stock on hand (current_amount) and/or the reorder point and reorder amount of ONE product at ONE outlet. current_amount is the NEW TOTAL on hand, not a change: it overwrites the count, so sales made since you last read it are lost from the count. Read get_inventory_levels first and confirm the number with the user. Other outlets and all other product fields stay as they are. PATCH /products/{product_id} (outlet_inventories).
| Name | Type | Req | Description |
|---|---|---|---|
| current_amount | number | – | New stock on hand at this outlet (the total, not a delta). |
| outlet_id | string | yes | Outlet id (from list_outlets). |
| product_id | string | yes | Product id (from list_products). |
| reorder_amount | number | – | How many to re-order. |
| reorder_point | number | – | Re-order when stock falls to this level. |
No output schema declared.
No examples provided.
lightspeedxseries_update_customer Update customer ~311
WRITE: change fields of an existing customer. Only the fields you pass change: the tool first reads the customer and sends the vendor its full record with your changes applied (the vendor's update is a full PUT). Cannot delete a customer or change balances. Lightspeed offers no partial update for customers, so a change made by someone else in the moments between the tool's read and its write can be overwritten. PUT /customers/{customer_id}.
| Name | Type | Req | Description |
|---|---|---|---|
| company_name | string | – | – |
| customer_code | string | – | Unique customer code (generated when omitted on create). |
| customer_group_id | string | – | Customer group id (see list_customer_groups). |
| customer_id | string | yes | Customer id. |
| date_of_birth | string | – | – |
| do_not_email | boolean | – | – |
| string | – | – | |
| enable_loyalty | boolean | – | – |
| enable_promotional_sms | boolean | – | – |
| first_name | string | – | First name. |
| last_name | string | – | Last name. |
| mobile | string | – | – |
| note | string | – | – |
| phone | string | – | – |
| physical_address_1 | string | – | – |
| physical_address_2 | string | – | – |
| physical_city | string | – | – |
| physical_country_id | string | – | Country code such as US, CA, AU. |
| physical_postcode | string | – | – |
| physical_state | string | – | – |
| physical_suburb | string | – | – |
No output schema declared.
No examples provided.
lightspeedxseries_update_product_prices Update product prices ~157
WRITE: set the selling price of one product (variant). Pass price_excluding_tax or price_including_tax as a decimal string such as "24.99" (set one; the store's tax setting decides which the till uses). Nothing else on the product changes. Read the product first and confirm the new price with the user. PATCH /products/{product_id}.
| Name | Type | Req | Description |
|---|---|---|---|
| loyalty_amount | string | – | New loyalty amount. |
| price_excluding_tax | string | – | New price before tax, e.g. "24.99". |
| price_including_tax | string | – | New price including tax, e.g. "29.99". |
| product_id | string | yes | Product id (from list_products). |
No output schema declared.
No examples provided.
How do I install the Lightspeed Retail (X-Series) MCP by usefulapi server?
Lightspeed Retail (X-Series) MCP by usefulapi is a hosted endpoint at https://lightspeed-x-series.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · lightspeed-x-series.usefulapi.io
claude mcp add --transport http io-usefulapi-lightspeed-x-series 'https://lightspeed-x-series.usefulapi.io/mcp'
What is the Lightspeed Retail (X-Series) MCP by usefulapi server?
Lightspeed Retail (X-Series) MCP by usefulapi is listed in the public MCP registry as io.usefulapi/lightspeed-x-series. Read Lightspeed X-Series products, stock, sales, customers, stock orders; one-call sales reports. This page covers its hosted endpoint (https://lightspeed-x-series.usefulapi.io/mcp).
Is the Lightspeed Retail (X-Series) MCP by usefulapi server safe to use?
Lightspeed Retail (X-Series) MCP by usefulapi scores 62 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Lightspeed Retail (X-Series) MCP by usefulapi server expose?
Lightspeed Retail (X-Series) MCP by usefulapi exposes 30 tools: lightspeedxseries_get_retailer, lightspeedxseries_list_outlets, lightspeedxseries_get_outlet, lightspeedxseries_list_registers, lightspeedxseries_get_register_payments_summary, and 25 more. Their descriptions and schemas cost roughly 4,903 tokens of context every time the server is loaded.
Does the Lightspeed Retail (X-Series) MCP by usefulapi server require authentication?
Yes. Lightspeed Retail (X-Series) MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the Lightspeed Retail (X-Series) MCP by usefulapi server still maintained?
Lightspeed Retail (X-Series) MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 25 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.