Skip to main content
Glama
shahlaukik

Money Manager MCP Server

by shahlaukik

transfer_update

Modify existing transfers in Money Manager by updating date, amount, accounts, or description. Creates a new transaction ID while preserving financial data accuracy.

Instructions

Modifies an existing transfer. WARNING: The server creates a new transfer with a NEW ID instead of updating in-place. The old ID will no longer exist after update. Use transaction_list to get the new ID if needed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesTransfer transaction ID
moveDateYesTransfer date (YYYY-MM-DD)
fromAssetIdYesSource asset ID
fromAssetNameYesSource asset name
toAssetIdYesDestination asset ID
toAssetNameYesDestination asset name
moveMoneyYesTransfer amount
moneyContentNoOptional: Description
mbDetailContentNoOptional: Detailed notes

Implementation Reference

  • Handler function that executes the transfer_update tool logic by validating input and calling the Money Manager /modifyMoveAsset API endpoint. Note the warning about the server creating a new transfer ID.
    export async function handleTransferUpdate(
      httpClient: HttpClient,
      input: unknown,
    ): Promise<TransferOperationResponse> {
      const validated = TransferUpdateInputSchema.parse(input);
    
      const response = await httpClient.post<ApiOperationResponse>(
        "/modifyMoveAsset",
        {
          id: validated.id,
          moveDate: validated.moveDate,
          fromAssetId: validated.fromAssetId,
          fromAssetName: validated.fromAssetName,
          toAssetId: validated.toAssetId,
          toAssetName: validated.toAssetName,
          moveMoney: validated.moveMoney,
          moneyContent: validated.moneyContent || "",
          mbDetailContent: validated.mbDetailContent || "",
        },
      );
    
      return {
        success: response.success !== false && response.result !== "fail",
        transferId: validated.id,
        message:
          response.message ||
          "WARNING: The server creates a new transfer with a NEW ID. The provided ID is now invalid. Use transaction_list to get the new ID.",
      };
    }
  • Zod schema defining the input parameters for the transfer_update tool, including required fields like id, dates, asset IDs, names, and amount.
    export const TransferUpdateInputSchema = z.object({
      id: TransactionIdSchema,
      moveDate: DateSchema,
      fromAssetId: AssetIdSchema,
      fromAssetName: NonEmptyString,
      toAssetId: AssetIdSchema,
      toAssetName: NonEmptyString,
      moveMoney: PositiveNumber,
      moneyContent: z.string().optional(),
      mbDetailContent: z.string().optional(),
    });
    
    export type TransferUpdateInput = z.infer<typeof TransferUpdateInputSchema>;
  • Registration of the transfer_update handler in the toolHandlers object, mapping the tool name to its execution function.
    transfer_update: handleTransferUpdate,
  • src/index.ts:379-409 (registration)
    MCP protocol tool definition registration in TOOL_DEFINITIONS array, including name, description, and JSON schema for input validation.
    {
      name: "transfer_update",
      description:
        "Modifies an existing transfer. WARNING: The server creates a new transfer with a NEW ID instead of updating in-place. The old ID will no longer exist after update. Use transaction_list to get the new ID if needed.",
      inputSchema: {
        type: "object" as const,
        properties: {
          id: { type: "string", description: "Transfer transaction ID" },
          moveDate: { type: "string", description: "Transfer date (YYYY-MM-DD)" },
          fromAssetId: { type: "string", description: "Source asset ID" },
          fromAssetName: { type: "string", description: "Source asset name" },
          toAssetId: { type: "string", description: "Destination asset ID" },
          toAssetName: { type: "string", description: "Destination asset name" },
          moveMoney: { type: "number", description: "Transfer amount" },
          moneyContent: { type: "string", description: "Optional: Description" },
          mbDetailContent: {
            type: "string",
            description: "Optional: Detailed notes",
          },
        },
        required: [
          "id",
          "moveDate",
          "fromAssetId",
          "fromAssetName",
          "toAssetId",
          "toAssetName",
          "moveMoney",
        ],
      },
    },
  • TypeScript type definition for TransferUpdateInput, extending TransferCreateInput with an id field.
    export interface TransferUpdateInput extends TransferCreateInput {
      id: 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