Skip to main content
Glama

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
NameRequiredDescriptionDefault
orderIdYesOrder ID to track (format: DRZ-XXXXXXXXXX)

Implementation Reference

  • 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;
    }
  • 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
            ),
          },
        ],
      };
    }
  • 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"],
      },
    },

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/markswendsen-code/mcp-drizly'

If you have feedback or need assistance with the MCP directory API, please join our Discord server