UNPKG

pocketsmith-mcp

Version:

MCP server for managing budgets via PocketSmith API

206 lines (205 loc) 6.45 kB
/** * @fileoverview Get budget summary with period analysis from PocketSmith */ import { z } from "zod"; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { RequestContext } from "../../../utils/index.js"; export declare const GetBudgetSummaryInputSchema: z.ZodObject<{ apiKey: z.ZodOptional<z.ZodString>; accessToken: z.ZodOptional<z.ZodString>; period: z.ZodEnum<["weeks", "months", "years"]>; interval: z.ZodNumber; startDate: z.ZodString; endDate: z.ZodString; }, "strip", z.ZodTypeAny, { startDate: string; endDate: string; period: "weeks" | "months" | "years"; interval: number; apiKey?: string | undefined; accessToken?: string | undefined; }, { startDate: string; endDate: string; period: "weeks" | "months" | "years"; interval: number; apiKey?: string | undefined; accessToken?: string | undefined; }>; export type GetBudgetSummaryInput = z.infer<typeof GetBudgetSummaryInputSchema>; export declare const GetBudgetSummaryResponseSchema: z.ZodObject<{ budgetSummary: z.ZodArray<z.ZodObject<{ category: z.ZodObject<{ id: z.ZodNumber; title: z.ZodString; }, "strip", z.ZodTypeAny, { title: string; id: number; }, { title: string; id: number; }>; periods: z.ZodArray<z.ZodObject<{ period_label: z.ZodString; budget_amount: z.ZodNumber; actual_amount: z.ZodNumber; difference: z.ZodNumber; percentage_used: z.ZodNumber; }, "strip", z.ZodTypeAny, { difference: number; period_label: string; budget_amount: number; actual_amount: number; percentage_used: number; }, { difference: number; period_label: string; budget_amount: number; actual_amount: number; percentage_used: number; }>, "many">; overall: z.ZodObject<{ total_budget: z.ZodNumber; total_actual: z.ZodNumber; total_difference: z.ZodNumber; average_percentage: z.ZodNumber; }, "strip", z.ZodTypeAny, { total_budget: number; total_actual: number; total_difference: number; average_percentage: number; }, { total_budget: number; total_actual: number; total_difference: number; average_percentage: number; }>; }, "strip", z.ZodTypeAny, { category: { title: string; id: number; }; periods: { difference: number; period_label: string; budget_amount: number; actual_amount: number; percentage_used: number; }[]; overall: { total_budget: number; total_actual: number; total_difference: number; average_percentage: number; }; }, { category: { title: string; id: number; }; periods: { difference: number; period_label: string; budget_amount: number; actual_amount: number; percentage_used: number; }[]; overall: { total_budget: number; total_actual: number; total_difference: number; average_percentage: number; }; }>, "many">; summary: z.ZodObject<{ analysis_period: z.ZodString; total_periods: z.ZodNumber; overall_budget: z.ZodNumber; overall_actual: z.ZodNumber; overall_difference: z.ZodNumber; overall_percentage: z.ZodNumber; categories_over_budget: z.ZodNumber; categories_under_budget: z.ZodNumber; }, "strip", z.ZodTypeAny, { analysis_period: string; total_periods: number; overall_budget: number; overall_actual: number; overall_difference: number; overall_percentage: number; categories_over_budget: number; categories_under_budget: number; }, { analysis_period: string; total_periods: number; overall_budget: number; overall_actual: number; overall_difference: number; overall_percentage: number; categories_over_budget: number; categories_under_budget: number; }>; }, "strip", z.ZodTypeAny, { summary: { analysis_period: string; total_periods: number; overall_budget: number; overall_actual: number; overall_difference: number; overall_percentage: number; categories_over_budget: number; categories_under_budget: number; }; budgetSummary: { category: { title: string; id: number; }; periods: { difference: number; period_label: string; budget_amount: number; actual_amount: number; percentage_used: number; }[]; overall: { total_budget: number; total_actual: number; total_difference: number; average_percentage: number; }; }[]; }, { summary: { analysis_period: string; total_periods: number; overall_budget: number; overall_actual: number; overall_difference: number; overall_percentage: number; categories_over_budget: number; categories_under_budget: number; }; budgetSummary: { category: { title: string; id: number; }; periods: { difference: number; period_label: string; budget_amount: number; actual_amount: number; percentage_used: number; }[]; overall: { total_budget: number; total_actual: number; total_difference: number; average_percentage: number; }; }[]; }>; export type GetBudgetSummaryResponse = z.infer<typeof GetBudgetSummaryResponseSchema>; export declare function getBudgetSummaryLogic(params: GetBudgetSummaryInput, context: RequestContext): Promise<GetBudgetSummaryResponse>; export declare const registerGetBudgetSummaryTool: (server: McpServer) => Promise<void>;