Skip to main content
Glama
index.ts1.66 kB
import { CallToolResult } from '@modelcontextprotocol/sdk/types.js'; import { zodToJsonSchema } from 'zod-to-json-schema'; import { success, errorFromCatch } from '../../utils/response.js'; import { updateTransaction } from '../../actual-api.js'; import { UpdateTransactionArgsSchema, type UpdateTransactionArgs, ToolInput } from '../../types.js'; export const schema = { name: 'update-transaction', description: 'Update an existing transaction. Can modify date, amount, payee, category, notes, cleared status, and subtransactions.', inputSchema: zodToJsonSchema(UpdateTransactionArgsSchema) as ToolInput, }; export async function handler(args: UpdateTransactionArgs): Promise<CallToolResult> { try { const validatedArgs = UpdateTransactionArgsSchema.parse(args); const { id: transactionId, ...updateData } = validatedArgs; // Filter out undefined values to only send fields that were explicitly provided const filteredUpdateData = Object.fromEntries( Object.entries(updateData).filter(([, value]) => value !== undefined) ); if (Object.keys(filteredUpdateData).length === 0) { return { content: [ { type: 'text', text: 'No fields provided to update. Please specify at least one field to modify.', }, ], isError: true, }; } await updateTransaction(transactionId, filteredUpdateData); const updatedFields = Object.keys(filteredUpdateData).join(', '); return success(`Successfully updated transaction ${transactionId}. Updated fields: ${updatedFields}`); } catch (error) { return errorFromCatch(error); } }

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/s-stefanov/actual-mcp'

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