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
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Transaction ID | |
| mbDate | Yes | Transaction date (YYYY-MM-DD) | |
| assetId | Yes | Asset/Account ID | |
| payType | Yes | Payment type name | |
| mcid | Yes | Category ID | |
| mbCategory | Yes | Category name | |
| mbCash | Yes | Amount | |
| inOutCode | Yes | Transaction type code | |
| inOutType | Yes | Transaction type name | |
| mcscid | No | Optional: Subcategory ID | |
| subCategory | No | Optional: Subcategory name | |
| mbContent | No | Optional: Description | |
| mbDetailContent | No | Optional: Detailed notes |
Implementation Reference
- src/tools/handlers.ts:261-288 (handler)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, }; }
- src/schemas/index.ts:128-146 (schema)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 >;
- src/tools/handlers.ts:792-828 (registration)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", ], }, },
- src/types/index.ts:65-79 (helper)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; }