Skip to main content
Glama

list_order_commands

Read-onlyIdempotent

List the ORDER COMMANDS of the project — the sync steps behind each order: insert_order (into the store), update_order, accept_order, cancel_order, add_shipment (tracking to the channel), add_invoice, add_refund, decrease_stock and others. Use this to find which step of an order failed, when and why, e.g. an order that did not reach the shop or a tracking number that did not reach the marketplace. Returns {commands:[{commandId, orderId, commandCode, commandLabel, status, publisher, publisherId, subscriber, subscriberId, createdAt, updatedAt, processAfter, errorCode, message}], returned, statusCounts:[{commandCode, status, count}], countsComplete, sensitiveGate}, most recently created first. status: new / pending / processing / pending_result = waiting or running; complete = done; error = failed (retried at processAfter); warning / skipped / not_available = finished without effect. publisher issued the step and subscriber runs it (store / channel / core), publisherId and subscriberId name the platform or channel; errorCode is Koongo's error code. statusCounts counts the newest 5000 matching commands; countsComplete:false = partial. Filter by order_id (orderId from list_orders; wins over channel_order_id), status, command_code, since (YYYY-MM-DD, created or updated on or after); limit default 50, max 200. A broad filter on a large project can return invalid_request query_timeout: add status, order_id or since. SENSITIVE-GATE: message (redacted error text that can quote customer data) is null until acknowledge_sensitive:true; the first call returns {sensitiveGate:{confirmationRequired:true, itemCount, fields:['message'], kind:'order_messages'}} — present it to the USER, get approval, then re-call. project_id is OPTIONAL (project_id_required otherwise — then call list_projects).

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": "list_order_commands"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoMax commands (default 50, max 200).
sinceNoOnly commands created or updated on or after this date (YYYY-MM-DD).
statusNoOnly commands in this status, e.g. 'error'.
order_idNoKoongo order id (orderId from list_orders).
project_idNo
command_codeNoOnly this command, e.g. 'add_shipment' or 'insert_order'.
channel_order_idNoThe marketplace's order number (channelOrderId from list_orders).
acknowledge_sensitiveNoSet true only AFTER the user approves seeing the error messages; absent/false returns a sensitiveGate instead.

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?

Far exceeds the annotations: it discloses the query_timeout failure mode on broad filters with a concrete remedy, the 5000-row cap behind statusCounts with countsComplete:false meaning partial, the retry semantics at processAfter, the full status taxonomy including the distinction between error and warning/skipped, and the two-step SENSITIVE-GATE flow with the exact gate payload shape. Annotations only say readOnly/idempotent; everything operationally risky is explained here.

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, then usage, then return shape, then filters, then the gate — a logical order with no filler sentences. It is a single dense paragraph, though; the status semantics and gate instructions would scan faster as separated clauses, and a few filter details (limit default/max) repeat the schema verbatim.

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?

There is no output schema, so the description must carry the return contract — and it does, listing all 14 fields of each command, the wrapper keys, ordering, and the statusCounts/partial caveat. Combined with the 88% parameter coverage and the explicit project_id fallback path, nothing an agent needs to call this correctly 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 already 88%, so the baseline is 3, but the description adds real meaning the schema lacks: the precedence rule that order_id wins over channel_order_id, the empty statusCounts/limit interplay, and the acknowledge_sensitive two-call protocol. The status enum values are also given operational meaning (waiting/running vs done vs failed vs finished without effect) that the bare enum does not convey.

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?

Opens with a specific verb+resource ("List the ORDER COMMANDS of the project") and immediately defines the concept as "the sync steps behind each order", enumerating concrete command codes (insert_order, add_shipment, add_invoice...). This makes it clearly distinguishable from siblings like list_orders or get_order_overview, which the agent can tell apart without opening any 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?

Gives a strong positive use case: "Use this to find which step of an order failed, when and why, e.g. an order that did not reach the shop or a tracking number that did not reach the marketplace." It also routes the agent to list_orders for orderId and list_projects when project_id_required fires. It never states an explicit exclusion (e.g. "use list_orders instead for order-level summaries"), so this falls just short of a 5.

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