The pitch is the absence of a context switch: the expense gets logged in the window you were already working in, in one sentence, instead of in a browser tab you will open later and then not open. The trade is that this is a personal ledger — one local SQLite file, no sync, no second device — and the project says plainly that it is a cost tracker rather than accounting software, so official bookkeeping still happens elsewhere. The tax-advisor export is the bridge between the two.
An MCP server that turns Claude Code or Claude Desktop into an expense tracker for a one-person business. 38 tools cover transactions, analysis, invoices, budgets, recurring costs, projects, categories, export and settings, and everything lands in a SQLite database in your home directory.
- Expenses and income recorded, listed, corrected and removed from ordinary sentences — `add_expense`, `add_income`, `list_transactions`, `update_transaction`, `delete_transaction`
- Summaries, category breakdowns, period-against-period comparison and a tax summary — `get_summary`, `get_category_breakdown`, `compare_periods`, `get_tax_summary`
- Invoices created, marked sent, marked paid — which records the income — duplicated or deleted — `create_invoice`, `list_invoices`, `get_invoice`, `mark_invoice_sent`, `mark_invoice_paid`, `duplicate_invoice`
- Budgets with a status check, and recurring expenses processed on demand — `set_budget`, `get_budget_status`, `list_budgets`, `create_recurring`, `process_recurring`
- Multi-project tracking and editable categories — `create_project`, `list_projects`, `rename_project`, `list_categories`, `add_category`
- CSV exports, including one shaped for handing to a tax advisor — `export_transactions`, `export_invoices`, `export_for_tax_advisor`
Node.js 20+. `npx spendlog` installs and auto-configures Claude Desktop and Claude Code; the manual client entry runs `npx -y --package=spendlog spendlog-mcp`, and Claude Code takes `claude mcp add spendlog -- npx -y --package=spendlog spendlog-mcp`. The npm package is `spendlog` 1.0.5. Data lives in `~/.spendlog/spendlog.db`; `SPENDLOG_DATA_DIR` and `DATABASE_PATH` move it, `SPENDLOG_LANGUAGE` switches between English and German, `SPENDLOG_PROJECT` sets a default project. No account, no cloud, no telemetry.
One command — npx spendlog
