UNPKG

pocketsmith-mcp

Version:

MCP server for managing budgets via PocketSmith API

176 lines (175 loc) 5.38 kB
/** * @fileoverview Get comprehensive user financial summary from PocketSmith */ import { z } from "zod"; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { RequestContext } from "../../../utils/index.js"; export declare const GetUserSummaryInputSchema: z.ZodObject<{ apiKey: z.ZodOptional<z.ZodString>; accessToken: z.ZodOptional<z.ZodString>; includeRecentTransactions: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>; transactionLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>; }, "strip", z.ZodTypeAny, { includeRecentTransactions: boolean; transactionLimit: number; apiKey?: string | undefined; accessToken?: string | undefined; }, { apiKey?: string | undefined; accessToken?: string | undefined; includeRecentTransactions?: boolean | undefined; transactionLimit?: number | undefined; }>; export type GetUserSummaryInput = z.infer<typeof GetUserSummaryInputSchema>; export declare const GetUserSummaryResponseSchema: z.ZodObject<{ user: z.ZodObject<{ id: z.ZodNumber; name: z.ZodString; email: z.ZodString; base_currency_code: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { name: string; id: number; email: string; base_currency_code?: string | undefined; }, { name: string; id: number; email: string; base_currency_code?: string | undefined; }>; financialSummary: z.ZodObject<{ totalBalance: z.ZodNumber; totalAccounts: z.ZodNumber; accountsByType: z.ZodRecord<z.ZodString, z.ZodNumber>; netWorth: z.ZodNumber; }, "strip", z.ZodTypeAny, { totalBalance: number; totalAccounts: number; accountsByType: Record<string, number>; netWorth: number; }, { totalBalance: number; totalAccounts: number; accountsByType: Record<string, number>; netWorth: number; }>; recentTransactions: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodNumber; payee: z.ZodString; amount: z.ZodNumber; date: z.ZodString; account: z.ZodString; category: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: number; date: string; payee: string; amount: number; account: string; category?: string | undefined; }, { id: number; date: string; payee: string; amount: number; account: string; category?: string | undefined; }>, "many">>; budgetHighlights: z.ZodOptional<z.ZodObject<{ categoriesTracked: z.ZodNumber; overBudgetCategories: z.ZodNumber; totalBudgetVariance: z.ZodNumber; }, "strip", z.ZodTypeAny, { categoriesTracked: number; overBudgetCategories: number; totalBudgetVariance: number; }, { categoriesTracked: number; overBudgetCategories: number; totalBudgetVariance: number; }>>; categoryBreakdown: z.ZodArray<z.ZodObject<{ category: z.ZodString; count: z.ZodNumber; isTransfer: z.ZodBoolean; isBill: z.ZodBoolean; }, "strip", z.ZodTypeAny, { category: string; isBill: boolean; isTransfer: boolean; count: number; }, { category: string; isBill: boolean; isTransfer: boolean; count: number; }>, "many">; }, "strip", z.ZodTypeAny, { user: { name: string; id: number; email: string; base_currency_code?: string | undefined; }; financialSummary: { totalBalance: number; totalAccounts: number; accountsByType: Record<string, number>; netWorth: number; }; categoryBreakdown: { category: string; isBill: boolean; isTransfer: boolean; count: number; }[]; recentTransactions?: { id: number; date: string; payee: string; amount: number; account: string; category?: string | undefined; }[] | undefined; budgetHighlights?: { categoriesTracked: number; overBudgetCategories: number; totalBudgetVariance: number; } | undefined; }, { user: { name: string; id: number; email: string; base_currency_code?: string | undefined; }; financialSummary: { totalBalance: number; totalAccounts: number; accountsByType: Record<string, number>; netWorth: number; }; categoryBreakdown: { category: string; isBill: boolean; isTransfer: boolean; count: number; }[]; recentTransactions?: { id: number; date: string; payee: string; amount: number; account: string; category?: string | undefined; }[] | undefined; budgetHighlights?: { categoriesTracked: number; overBudgetCategories: number; totalBudgetVariance: number; } | undefined; }>; export type GetUserSummaryResponse = z.infer<typeof GetUserSummaryResponseSchema>; export declare function getUserSummaryLogic(params: GetUserSummaryInput, context: RequestContext): Promise<GetUserSummaryResponse>; export declare const registerGetUserSummaryTool: (server: McpServer) => Promise<void>;