Skip to main content
Glama

Search orders

orders_search
Read-onlyIdempotent

Search orders by order number, customer name/email, or criteria filters such as status, payment state, and date range; returns compact summaries with totals and customer details.

Instructions

Search orders by term (order number, customer name/email) and/or Criteria filters such as stateMachineState.technicalName (open, in_progress, completed, cancelled), transactions.stateMachineState.technicalName (paid, open, ...), orderDateTime ranges or orderCustomer.email. Newest first by default. Returns compact summaries with totals, order/payment/delivery state and customer. Use orders_get for line items and addresses. Returns { total, page, limit, items[] }.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "orders_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNo1-based page
sortNoSort order; defaults per tool
termNoFull-text search term
limitNoItems per page, max 50 (default from SHOPWARE_MCP_DEFAULT_LIMIT)
fieldsNoExtra raw entity fields to add to each item, e.g. ['customFields', 'ean']. Dot-paths allowed.
filterNoCriteria filters, combined with AND

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.11.1

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered. The description adds behavior beyond that: default ordering ('Newest first by default') and the fact that results are compact summaries containing totals, order/payment/delivery state and customer rather than full entities. It doesn't mention page-size ceilings or result caps, but those live in the schema.

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?

A single dense, front-loaded paragraph that leads with what is searchable, then ordering, then return content, then the alternative tool. Minor waste in restating return information twice ('Returns compact summaries with totals...' followed by the literal shape), but nothing is extraneous enough to impede scanning.

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?

With no output schema supplied, the description correctly compensates by describing both the shape ({ total, page, limit, items[] }) and the content of items, plus default sort behavior. For a 6-parameter, zero-required search tool this is nearly complete; only edge behavior (empty/misspelled term handling, whether filters and term combine as AND) is left implicit.

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 description coverage is 100%, so the 3 baseline is already met; the description goes further by enumerating meaningful filter paths and accepted values (open, in_progress, completed, cancelled; paid, open; orderDateTime ranges; orderCustomer.email) that an agent could not derive from the generic 'Criteria filters' schema text. It also clarifies the semantics of the free-text term parameter, which the schema only labels 'Full-text search term'.

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 ('Search orders') and immediately names the searchable inputs (term: order number, customer name/email; Criteria filters such as stateMachineState.technicalName). It is clearly distinguishable from the sibling orders_get, which the description explicitly routes to for line items and addresses.

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 concrete usage context (find orders by term or filter fields) and names one alternative with the condition that selects it ('Use orders_get for line items and addresses'). It does not enumerate exclusions or point to other search-adjacent siblings like customers_search, so it falls just short of a full when/when-not guide.

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