Skip to main content
Glama
davidboulay

Lightspeed X-Series MCP

by davidboulay

sales_summary

Read-onlyIdempotent

Retrieves revenue totals for a date range, optionally grouped by outlet, day, user or product, and returns sales count, tax, units and average sale value to summarize sales performance.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
topNo
statesNo
date_toNo
group_byNooutlet
date_fromNo
outlet_idNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuinely non-obvious behavior: it filters to closed sales unless `states` is passed, includes returns as negatives, and caps results at 20,000 sales with a `truncated` signal. That last point tells the agent exactly how to detect and react to incomplete data, which is the kind of context annotations cannot convey.

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

Conciseness5/5

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

Front-loads the core purpose, then delivers defaults, grouping values, return shape and the truncation escape hatch in tight, information-dense sentences. No sentence is filler, and the truncation caveat is placed at the end where it functions as a recovery instruction.

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?

An output schema exists, so listing return fields is mildly redundant but harmless, and the description covers dates, grouping, state filtering and the cap. The gaps are `top` (pagination/limit behavior) and `outlet_id` (whether it scopes the whole report) — both undocumented in schema and description, which matters for a 6-parameter aggregation tool.

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

Parameters4/5

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

Schema coverage is 0%, so the description carries the load and does much of it: date format (YYYY-MM-DD), inclusive bounds, default of today, and — critically — the allowed group_by values (outlet, day, user, product, none), which the schema does not enumerate. The `top` and `outlet_id` parameters are left completely unexplained, keeping it out of 5 territory.

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

Purpose4/5

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

States a specific verb+resource (revenue totals over a date range) and enumerates the grouping dimensions, which clearly separates it from row-level siblings like search_sales and get_sale. It never names those siblings explicitly, so an agent must infer the boundary between this aggregate summary and get_user_sale_totals.

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

Usage Guidelines3/5

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

Gives concrete usage conditions: closed sales by default, 'pass states to change', and 'narrow the range if `truncated` is true' — that is real when-to-do-what guidance. However, it offers no comparison against the closest alternatives (search_sales, get_user_sale_totals, get_register_payments_summary), so an agent still has to guess when this aggregation is preferred over a detail listing.

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