Skip to main content
Glama
shahlaukik

Money Manager MCP Server

by shahlaukik

transaction_update

Modify existing financial transactions to correct details, update amounts, or adjust categories for accurate personal finance tracking.

Instructions

Updates an existing transaction.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesTransaction ID
mbDateYesTransaction date (YYYY-MM-DD)
assetIdYesAsset/Account ID
payTypeYesPayment type name
mcidYesCategory ID
mbCategoryYesCategory name
mbCashYesAmount
inOutCodeYesTransaction type code
inOutTypeYesTransaction type name
mcscidNoOptional: Subcategory ID
subCategoryNoOptional: Subcategory name
mbContentNoOptional: Description
mbDetailContentNoOptional: Detailed notes

Implementation Reference

  • The core handler function that implements the transaction_update tool. It validates the input schema, makes a POST request to the Money Manager '/update' API endpoint with the transaction details, and returns a standardized operation response.
    export async function handleTransactionUpdate( httpClient: HttpClient, input: unknown, ): Promise<TransactionOperationResponse> { const validated = TransactionUpdateInputSchema.parse(input); const response = await httpClient.post<ApiOperationResponse>("/update", { id: validated.id, mbDate: validated.mbDate, assetId: validated.assetId, payType: validated.payType, mcid: validated.mcid, mbCategory: validated.mbCategory, mbCash: validated.mbCash, inOutCode: validated.inOutCode, inOutType: validated.inOutType, mcscid: validated.mcscid || "", subCategory: validated.subCategory || "", mbContent: validated.mbContent || "", mbDetailContent: validated.mbDetailContent || "", }); return { success: response.success !== false && response.result !== "fail", transactionId: validated.id, message: response.message, }; }
  • Zod input validation schema for the transaction_update tool, defining all required fields like id, date, asset, category, amount, and type codes.
    export const TransactionUpdateInputSchema = z.object({ id: TransactionIdSchema, mbDate: DateSchema, assetId: AssetIdSchema, payType: NonEmptyString, mcid: CategoryIdSchema, mbCategory: NonEmptyString, mbCash: PositiveNumber, inOutCode: ExtendedInOutCodeSchema, inOutType: NonEmptyString, mcscid: z.string().optional(), subCategory: z.string().optional(), mbContent: z.string().optional(), mbDetailContent: z.string().optional(), }); export type TransactionUpdateInput = z.infer< typeof TransactionUpdateInputSchema >;
  • Central registry mapping 'transaction_update' tool name to its handleTransactionUpdate handler function, used by executeToolHandler to dispatch calls.
    export const toolHandlers = { // Initialization init_get_data: handleInitGetData, // Transactions transaction_list: handleTransactionList, transaction_create: handleTransactionCreate, transaction_update: handleTransactionUpdate, transaction_delete: handleTransactionDelete, // Summary summary_get_period: handleSummaryGetPeriod, summary_export_excel: handleSummaryExportExcel, // Assets asset_list: handleAssetList, asset_create: handleAssetCreate, asset_update: handleAssetUpdate, asset_delete: handleAssetDelete, // Credit Cards card_list: handleCardList, card_create: handleCardCreate, card_update: handleCardUpdate, // Transfers transfer_create: handleTransferCreate, transfer_update: handleTransferUpdate, // Dashboard dashboard_get_overview: handleDashboardGetOverview, dashboard_get_asset_chart: handleDashboardGetAssetChart, // Backup backup_download: handleBackupDownload, backup_restore: handleBackupRestore, } as const;
  • src/index.ts:116-157 (registration)
    MCP protocol tool registration definition, including the tool name, description, and JSON Schema for input validation exposed to MCP clients.
    { name: "transaction_update", description: "Updates an existing transaction.", inputSchema: { type: "object" as const, properties: { id: { type: "string", description: "Transaction ID" }, mbDate: { type: "string", description: "Transaction date (YYYY-MM-DD)", }, assetId: { type: "string", description: "Asset/Account ID" }, payType: { type: "string", description: "Payment type name" }, mcid: { type: "string", description: "Category ID" }, mbCategory: { type: "string", description: "Category name" }, mbCash: { type: "number", description: "Amount" }, inOutCode: { type: "string", description: "Transaction type code" }, inOutType: { type: "string", description: "Transaction type name" }, mcscid: { type: "string", description: "Optional: Subcategory ID" }, subCategory: { type: "string", description: "Optional: Subcategory name", }, mbContent: { type: "string", description: "Optional: Description" }, mbDetailContent: { type: "string", description: "Optional: Detailed notes", }, }, required: [ "id", "mbDate", "assetId", "payType", "mcid", "mbCategory", "mbCash", "inOutCode", "inOutType", ], }, },
  • TypeScript type definition for TransactionUpdateInput, providing type safety for the input structure used in handlers and schemas.
    export interface TransactionUpdateInput { id: string; mbDate: string; assetId: string; payType: string; mcid: string; mbCategory: string; mbCash: number; inOutCode: string; inOutType: string; mcscid?: string; subCategory?: string; mbContent?: string; mbDetailContent?: string; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shahlaukik/money-manager-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server