list_orders
Retrieve and filter orders from ShipBob's fulfillment system by date, status, or pagination parameters for order management.
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_orders"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| limit | No | Number of orders per page | |
| status | No | Filter by order status | |
| startDate | No | Start date for filtering (YYYY-MM-DD) | |
| endDate | No | End date for filtering (YYYY-MM-DD) |
Implementation Reference
- src/tools/order-tools.js:15-31 (handler)The async handler function for the 'list_orders' tool. It constructs parameters from inputs, calls shipbobClient.getOrders, and returns the JSON-stringified orders or an error message.
handler: async ({ page, limit, status, startDate, endDate }) => { try { const params = { page, limit, status, startDate, endDate }; const orders = await shipbobClient.getOrders(params); return { content: [{ type: "text", text: JSON.stringify(orders, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: `Error listing orders: ${error.message}` }], isError: true }; } } - src/tools/order-tools.js:8-14 (schema)Zod schema defining the optional input parameters for filtering and paginating the list of orders.
schema: { page: z.number().optional().describe("Page number for pagination"), limit: z.number().optional().describe("Number of orders per page"), status: z.string().optional().describe("Filter by order status"), startDate: z.string().optional().describe("Start date for filtering (YYYY-MM-DD)"), endDate: z.string().optional().describe("End date for filtering (YYYY-MM-DD)") }, - src/server.js:51-51 (registration)Registers the orderTools array, which includes the 'list_orders' tool, using the registerTools utility function.
registerTools(orderTools);