Skip to main content
Glama

query_orders

List individual orders matching filters: date range, financial status, customerId, min/max order total, order tags — sortable by date or total. Returns one row per order with name, status, fulfillment, orderTotal (formatted), items count, country, tags, and date. Use for 'show me recent orders', 'orders over $500', 'this customer's pending orders', 'orders tagged wholesale'. DISAMBIGUATION: for AGGREGATE order analytics (counts/revenue by status, country, or product) use get_orders; to look up ONE known order by its #name or ID with line items, use get_order.

Notes

  • Returns at most 50 orders per call. For larger sets, page with _offset (the response sets _pagination.hasMore).

  • status filters Shopify financial status; omit it to include all statuses.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNoFilter to orders carrying these Shopify order tags. Matching is case-insensitive. By default an order matches if it has ANY of the tags (see tagMatch). E.g. ['wholesale'] or ['gift','vip'].
limitNoNumber of results (default: 20, max: 50)
offsetNoPagination offset
sortByNoSort field (default: processedAt)
statusNoFilter by financial status
_offsetNoPagination offset. If a response includes _pagination.hasMore=true, use _offset to fetch the next page.
endDateNoEnd date (YYYY-MM-DD). Defaults to yesterday.
maxTotalNoMaximum order total in dollars
minTotalNoMinimum order total in dollars
tagMatchNoHow to match multiple tags: 'any' (default, order has at least one) or 'all' (order has every listed tag).
sortOrderNoSort order (default: desc)
startDateNoStart date (YYYY-MM-DD). Defaults to a 30-day window ending yesterday.
customerIdNoFilter to orders for a specific customer (Shopify customer ID)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added
  2. Removed
  3. Added

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the 50-row cap, the _offset/_pagination.hasMore paging contract, the response row shape, and that omitting status includes all financial statuses. It stops short of stating permissions/auth requirements or confirming read-only behavior, so it is strong but not exhaustive.

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?

Purpose, trigger examples, and disambiguation are front-loaded in the first two sentences, with operational caveats isolated in a short Notes block. Every sentence carries either routing or behavioral information; nothing is redundant.

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?

For a 13-parameter, no-required-args query tool with no output schema, the description covers defaults, caps, paging, and a summary of returned fields, which is exactly what an agent needs to invoke it correctly. The absence of an output schema is compensated by the explicit return-field listing.

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 already 100%, so the baseline is 3, but the description adds real meaning: it explains the operational difference between offset and _offset for paging, ties _offset to the _pagination.hasMore flag, and states that status maps to Shopify financial status. These clarifications go beyond the field-level schema text.

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 opens with a specific verb and resource ('List individual orders matching filters') and enumerates the filter dimensions plus the sortable fields. It explicitly names the two confusing siblings, get_orders (aggregate) and get_order (single known order), so an agent can distinguish this tool without opening either schema.

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

Usage Guidelines5/5

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

It gives concrete trigger phrases ('show me recent orders', 'orders over $500', 'this customer's pending orders', 'orders tagged wholesale') and an explicit DISAMBIGUATION block routing aggregate analytics to get_orders and single-order lookup to get_order. When-to-use and when-not-to-use are both 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