track_order
Check the current status and estimated delivery time for your Drizly order using the order ID.
Instructions
Track the current status and estimated delivery time of an order
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | Order ID to track (format: DRZ-XXXXXXXXXX) |
Implementation Reference
- src/browser.ts:476-496 (handler)Core implementation of trackOrder method that searches for an order by ID and simulates status progression based on elapsed time since order placement
trackOrder(orderId: string): DrizlyOrder | null { const order = this.orders.find((o) => o.id === orderId); if (!order) return null; // Simulate order status progression based on time const placedTime = new Date(order.placedAt).getTime(); const elapsed = Date.now() - placedTime; const minutes = elapsed / 60000; if (minutes < 5) { order.status = "confirmed"; } else if (minutes < 15) { order.status = "preparing"; } else if (minutes < 35) { order.status = "out_for_delivery"; } else { order.status = "delivered"; } return order; } - src/index.ts:542-586 (handler)MCP tool handler that validates input, calls the trackOrder method, and returns formatted response with order status and user-friendly status messages
case "track_order": { const params = TrackOrderSchema.parse(args); const order = drizly.trackOrder(params.orderId); if (!order) { return { content: [ { type: "text", text: JSON.stringify( { error: `Order '${params.orderId}' not found` }, null, 2 ), }, ], }; } const statusMessages: Record<string, string> = { confirmed: "Your order has been confirmed and is being processed", preparing: "The store is preparing your order", out_for_delivery: "Your order is on its way!", delivered: "Your order has been delivered", }; return { content: [ { type: "text", text: JSON.stringify( { orderId: order.id, status: order.status, statusMessage: statusMessages[order.status] || order.status, estimatedDelivery: order.estimatedDelivery, order, }, null, 2 ), }, ], }; } - src/index.ts:79-81 (schema)Zod schema definition for validating track_order tool input parameters
const TrackOrderSchema = z.object({ orderId: z.string().describe("Order ID to track (e.g., DRZ-1234567890)"), }); - src/index.ts:261-273 (registration)Tool registration in the ListToolsRequestSchema handler defining the track_order tool with its JSON Schema input specification
name: "track_order", description: "Track the current status and estimated delivery time of an order", inputSchema: { type: "object", properties: { orderId: { type: "string", description: "Order ID to track (format: DRZ-XXXXXXXXXX)", }, }, required: ["orderId"], }, },