Skip to main content
Glama

Customers

get_customers
Read-onlyIdempotent

Customer figures for the current period: total, new and returning customers (returningCustomers is Shopify's unit, ORDERS placed by repeat buyers; returningBuyers is the headcount behind it), repeatPurchaseRate (a ratio 0..1), avgLtv (lifetime revenue per customer) and marginLtv (the same after product costs), blended CAC (all ad spend ÷ new customers) and paidCac (each ad platform's spend ÷ the new customers whose first paid touch was that platform; paidGaps names platforms left out and why), the lifetime-value spread (ltvBands), new vs returning per day (growth), acquisition per channel with new customers, first order value and CAC (acquisition.acquisition), customers back after 180+ days away (acquisition.reactivated of acquisition.lapsedAtStart), and support tickets (support null = no helpdesk connected). Each tile has previous, the prior period's value. Use for any question about customers, LTV, CAC, repeat purchase, acquisition by channel or LTV ÷ CAC — divide nothing yourself: marginLtv and paidCac are both here. When suppressed is true, under half of revenue carries a customer id: say the customer figures are withheld instead of quoting any. A null CAC means no spend or too few new customers (under 10) — never zero. Optional from and to (inclusive YYYY-MM-DD, both or neither, never after today) read another span instead of the default period. A named month, a week or two dates the operator gave MUST be sent here: without them this reads the last 30 days, which is not that month.

Input Schema

NameRequiredDescriptionDefault
toNoLast day of the span, inclusive, as YYYY-MM-DD; not after today. Send together with `from`, or omit both to read the default 30-day period.
fromNoFirst day of the span, inclusive, as YYYY-MM-DD. Send together with `to`, or omit both to read the default 30-day period.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses meaningful edge-case behavior: `suppressed: true` means under half of revenue carries a customer id and figures must be withheld, a null CAC means no spend or fewer than 10 new customers and is never zero, `support: null` means no helpdesk connected, and `paidGaps` names excluded platforms. It also states the default window is the last 30 days and that each tile carries a `previous` prior-period value.

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?

Information-dense with almost no filler — every clause defines a metric, a null/suppression rule, or a date constraint — and usage guidance about not dividing ratios yourself is front-loaded. The main weakness is structural: it is one long run-on paragraph where the metric enumeration, the edge-case rules and the date-span rules blur together, making it harder to scan than a bulleted layout would be.

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

Completeness5/5

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

With no output schema, the description carries the full burden of describing return values, and it does so exhaustively — naming nested paths (acquisition.acquisition, acquisition.lapsedAtStart, ltvBands, growth) and explaining null/suppressed semantics. For a 2-optional-parameter read tool, nothing an agent needs in order to call it or interpret the response is missing.

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 100%, so the baseline is 3; the description still adds real meaning on top: `from`/`to` are inclusive YYYY-MM-DD, must be sent both or neither, can never be after today, and replace the default 30-day period — with the strong operational rule that an operator-named month or week MUST be passed here. The schema's own descriptions already carry much of this, so the gain is incremental rather than unique.

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?

The description names a specific resource (customer figures for the current period) and enumerates the exact metrics returned: total/new/returning customers, repeatPurchaseRate, avgLtv, marginLtv, blended CAC, paidCac, ltvBands, growth, acquisition.acquisition, acquisition.reactivated and support. It even disambiguates Shopify's returningCustomers (orders) from returningBuyers (headcount), so an agent knows precisely what it gets without opening a schema.

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?

Explicit when-to-use coverage: 'Use for any question about customers, LTV, CAC, repeat purchase, acquisition by channel or LTV ÷ CAC', plus a clear prohibition on self-computing ratios and a rule to send operator-supplied months/weeks/date pairs here. It does not route to any named sibling (e.g. get_customer_lifetime, get_sales_breakdown), so the alternative-selection guidance is implied rather than stated.

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.

Resources