A FastMCP server that stores expenses in SQLite. The database is created as
expenses.db beside main.py by default.
add_expense(amount, expense_type, expense_date, description=None)adds an expense and returns the stored row.remove_expense(expense_id)removes an expense by ID and returns the deleted row.list_expenses(expense_type=None, start_date=None, end_date=None)lists expenses and returns their count and total. Type matching is case-insensitive, and both date boundaries are inclusive.
Dates use ISO YYYY-MM-DD format. To store the database somewhere else, set
the EXPENSE_DB_PATH environment variable before starting the server.
expense://typesexposes expense_types.json asapplication/json. It contains the supportedexpense_typevalues and the correspondingsub_expense_typesthat an MCP client or LLM can use when categorizing an expense.
uv run main.py