UNPKG

@tomaspavlin/rohlik-mcp

Version:

MCP server for controlling Rohlik.cz grocery shopping website

61 lines 2.54 kB
export function createUpcomingOrdersTool(createRohlikAPI) { return { name: "get_upcoming_orders", definition: { title: "Get Upcoming Orders", description: "Get your scheduled upcoming orders", inputSchema: {} }, handler: async () => { try { const api = createRohlikAPI(); const upcomingOrders = await api.getUpcomingOrders(); if (!upcomingOrders || (Array.isArray(upcomingOrders) && upcomingOrders.length === 0)) { return { content: [ { type: "text", text: "No upcoming orders found." } ] }; } const formatUpcomingOrder = (order, index) => { const deliveryDate = order.deliveryDate || order.scheduledAt || 'Unknown date'; const deliveryTime = order.deliveryTime || order.timeSlot || 'Unknown time'; const totalPrice = order.totalPrice || order.price || 'Unknown price'; const orderNumber = order.orderNumber || order.id || `Order ${index + 1}`; const status = order.status || 'Scheduled'; const itemCount = order.itemCount || order.items?.length || 'Unknown'; return `${index + 1}. ${orderNumber} Delivery: ${deliveryDate} ${deliveryTime} Total: ${totalPrice} CZK Items: ${itemCount} Status: ${status}`; }; const orders = Array.isArray(upcomingOrders) ? upcomingOrders : [upcomingOrders]; const output = `📦 UPCOMING ORDERS (${orders.length} orders):\n\n${orders.map(formatUpcomingOrder).join('\n\n')}`; return { content: [ { type: "text", text: output } ] }; } catch (error) { return { content: [ { type: "text", text: error instanceof Error ? error.message : String(error) } ], isError: true }; } } }; } //# sourceMappingURL=upcoming-orders.js.map