import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { z } from "zod"; import { getDateRange, merchantArg, merchantInstruction, promptMerchantSchema } from "./common.js"; export function registerFinancialReportPrompt(server: McpServer) { server.prompt( "financial-report", "Фінансовий звіт по транзакціях WayForPay", { days: z.string().optional().describe("Кількість днів для аналізу (за замовчуванням 7)"), merchant: promptMerchantSchema, }, ({ days, merchant }) => { const numDays = Number.parseInt(days ?? "7", 10); const { startDate, endDate } = getDateRange(numDays); return { messages: [ { role: "user" as const, content: { type: "text" as const, text: `Згенеруй фінансовий звіт WayForPay за останні ${numDays} днів (${startDate} — ${endDate}). ${merchantInstruction(merchant)} Рекомендований workflow: 1. Виклич wfp_summarize_transactions з dateFrom="${startDate}", dateTo="${endDate}"${merchantArg(merchant)}. 2. Якщо потрібні fee / settlement / AOV по рядках, добери їх через wfp_get_transaction_list порціями з limit<=20. 3. Покажи: - total revenue по Approved - transaction count by status - total amounts by currency - payment system breakdown - daily trend - AOV - total fees - net settlement amount - refund rate 4. Якщо у v2 payload є products / clientName / PRRO, використай їх для коротких спостережень про структуру продажів. 5. Заверши висновками і короткими рекомендаціями.`, }, }, ], }; }, ); }