Skip to main content
Glama

Lightspeed Retail (X-Series) MCP by usefulapi

Sales summary (totals for a period)

lightspeedxseries_sales_summary
Read-only

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.

Input Schema

NameRequiredDescriptionDefault
stateNoSale state. On-account and layby sales are state closed (they differ by attributes).
offsetNoOffset for the next page: pass next_offset from the previous call (default 0).
date_toNoSales up to this UTC time. YYYY-MM-DD means the END of that UTC day (23:59:59Z).
user_idNoOnly sales by this staff user.
date_fromNoSales 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.
max_pagesNoPages of page_size sales to read (default 5, max 20).
outlet_idNoOnly sales at this outlet.
page_sizeNoSales per page (default 1000).
product_idNoOnly sales containing this product.
customer_idNoOnly sales to this customer.
register_idNoOnly sales on this register.
counted_statesNoSale states that count towards the totals (exact, case-insensitive). Default: every state containing 'closed'.
invoice_numberNo
payment_type_idNoOnly sales with this payment type (the payment type's config_id, shown as payments[].type.config_id in a sale).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only readOnlyHint available, the description adds meaningful behavior: totals are computed from at most max_pages x page_size sales (so they can cover only a subset of data), only 'closed'-like states count by default, and a truncated reply must be resumed via offset and summed. However, it never states what happens if the underlying sales exceed that page budget and no 'truncated' flag appears, which is the biggest safety caveat for a totals tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and outputs, then constraints (default states, UTC, pagination). Dense but every sentence carries information; the only cost is the long single paragraph that makes the truncation-recovery instruction easy to miss.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, no-output-schema aggregation tool it covers purpose, defaults, time semantics, and continuation behavior well. Gaps remain around the shape of the returned breakdowns (e.g. how many 'top products', what the day/outlet keys look like) and what 'truncated' means in terms of completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 93%, so the schema already carries nearly all parameter meaning; baseline is a 3. The description does add real semantics the schema can't express — that max_pages x page_size bounds how much data the totals reflect, and the exact default for counted_states — but it says nothing about the filter interaction (e.g. whether product_id restricts the top-products breakdown).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb-and-resource ('totals for a period computed here') and enumerates the exact outputs: sale count, net/tax/gross, and breakdowns by state, UTC day, outlet, payment type, plus top products. The clause 'a report needs ONE tool call instead of dozens' implicitly separates it from the paginated list/search sales siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use context (aggregated reporting rather than raw record retrieval) and explains the default filter plus how to override it with counted_states. It doesn't name a specific sibling alternative (e.g. list_sales / search_sales) as an explicit fallback, so it stops short of full when/when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.