import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { z } from "zod"; import { merchantArg, merchantInstruction, promptMerchantSchema } from "./common.js"; export function registerReconciliationPrompt(server: McpServer) { server.prompt( "reconciliation", "Звірка платежів за період", { dateBegin: z.string().describe("Дата початку у форматі YYYY-MM-DD"), dateEnd: z.string().describe("Дата кінця у форматі YYYY-MM-DD"), expectedRevenue: z.string().optional().describe("Очікувана виручка, якщо відома"), merchant: promptMerchantSchema, }, ({ dateBegin, dateEnd, expectedRevenue, merchant }) => ({ messages: [ { role: "user" as const, content: { type: "text" as const, text: `Проведи звірку платежів за ${dateBegin} — ${dateEnd}. ${merchantInstruction(merchant)} Workflow: 1. Почни з wfp_summarize_transactions для dateFrom="${dateBegin}", dateTo="${dateEnd}"${merchantArg(merchant)}. 2. Добери fee / settlement / refund details через wfp_get_transaction_list порціями з limit<=20. 3. Порахуй: - gross revenue по Approved - total fees - settlement amount / net - total refunds - by-day breakdown 4. Якщо задано expectedRevenue="${expectedRevenue ?? ""}", порівняй фактичну виручку з очікуваною і поясни розбіжності. 5. Покажи підсумкову таблицю й короткий висновок.`, }, }, ], }), ); }