pocketsmith-mcp
Version:
MCP server for managing budgets via PocketSmith API
176 lines (175 loc) • 5.38 kB
TypeScript
/**
* @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>;