list_orders
Retrieve and filter ShipBob orders by status and date range, with pagination support for managing large datasets efficiently.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date for filtering (YYYY-MM-DD) | |
| limit | No | Number of orders per page | |
| page | No | Page number for pagination | |
| startDate | No | Start date for filtering (YYYY-MM-DD) | |
| status | No | Filter by order status |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"endDate": {
"description": "End date for filtering (YYYY-MM-DD)",
"type": "string"
},
"limit": {
"description": "Number of orders per page",
"type": "number"
},
"page": {
"description": "Page number for pagination",
"type": "number"
},
"startDate": {
"description": "Start date for filtering (YYYY-MM-DD)",
"type": "string"
},
"status": {
"description": "Filter by order status",
"type": "string"
}
},
"type": "object"
}
Implementation Reference
- src/tools/order-tools.js:15-31 (handler)The async handler function for the 'list_orders' MCP tool. It constructs parameters from inputs, calls shipbobClient.getOrders(), formats the response as JSON text or 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 input schema for the 'list_orders' tool, defining optional pagination and filtering parameters.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 (containing 'list_orders' tool) with the MCP server via the registerTools utility function.registerTools(orderTools);