UNPKG

expense-log-mcp

Version:

A MCP server that provides tools for logging expenses.

40 lines (39 loc) 1.27 kB
import { z } from "zod"; import prisma from "../db.js"; import { successResponse, errorResponse, getErrorMessage } from "./utils.js"; const addExpenseParameters = z.object({ ledgerId: z.string(), categoryId: z.string(), messageId: z.string(), description: z.string(), amount: z.number(), payer: z.string(), }); export const addExpense = { name: "addExpense", description: "Add a new expense.", parameters: addExpenseParameters, execute: async ({ ledgerId, categoryId, messageId, description, amount, payer }) => { try { await prisma.ledger.upsert({ where: { id: ledgerId }, update: {}, create: { id: ledgerId, name: ledgerId }, }); const expense = await prisma.expense.create({ data: { ledgerId, categoryId, messageId, description, amount, payer, }, }); return successResponse("Expense added successfully.", { expenseId: expense.id }); } catch (e) { return errorResponse("DATABASE_ERROR", getErrorMessage(e)); } }, };