Spendlog

io.github.makz81Published by GitHub account makz81v1.0.4Updated Oct 24, 2026

MCP server for expense tracking, invoices, budgets, and financial insights directly in Claude

VerifiedSTDIODesktop onlyProductivity & WorkflowFinance

Overview

AI-generated overview

Local MCP server that lets an assistant track business expenses, income, budgets and invoices in a local SQLite file through natural language.

What you can do
  • Record and edit expenses and income, list transactions, and delete entries
  • Summarize spending, break it down by category, compare periods and produce tax summaries
  • Create, list, duplicate, mark sent or paid, and delete invoices
  • Set and update budgets, and check budget status
  • Manage recurring expenses, projects and categories
  • Export transactions and invoices, including a tax-advisor export, and read or set the profile
When to use it
Useful for solo entrepreneurs and freelancers who want to log costs, watch budgets and draft invoices while working in Claude Code or Claude Desktop, without a separate accounting app or spreadsheet.
Requirements
Runs locally via npx spendlog, so Node.js 20 or newer is needed. No account or API key. Optional environment variables set the language, data directory, SQLite database path and default project.
Before you install
The assistant can create, update and delete transactions, invoices, budgets, projects and categories, so mistakes or deletions affect your records. Exports write CSV files to disk. It is a cost tracker, not accounting software, and should not be used for official bookkeeping or tax filing.

Installation

In SourceWeft

  1. Open Spendlog in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Spendlog

Cost & expense tracking for solo entrepreneurs, right inside Claude Code. No apps. No spreadsheets. No account.

Track what your business spends, manage budgets, write invoices — all in natural language. Your data stays 100% local in SQLite. Nothing leaves your machine.

[npm version] [npm downloads] [CI] [38 MCP tools] [382 tests] [MIT License]

[Spendlog monthly summary in Claude]

Works with

Claude Code | Claude Desktop | VS Code | Cursor

Quick Start

bash
npx spendlog

Or one-click install:

[Install in VS Code] [Install in Cursor]

The installer auto-configures Claude Desktop and Claude Code. Restart Claude, then try:

"Track 50€ for hosting"

That's it. Requires Node.js 20+.

Why Spendlog?

  • Zero context-switching — log costs while you build, right where you already work
  • Local-first — all data in ~/.spendlog/spendlog.db, no account, no cloud
  • Natural language — no forms, no menus, just tell Claude what you spent
  • 38 tools — invoicing, budgets, recurring expenses, CSV export, multi-project tracking
  • Multilingual — English and German (EN/DE), with i18n ready for more

Examples

Tracking:

You: "29€ for ChatGPT subscription"Claude: Expense saved: 29.00 € — Category: IT & Software
You: "Export 2025 for my accountant"Claude: 247 transactions written to ~/spendlog-export-2025.csv

Invoices:

You: "Create invoice for TechCorp, web development, 8h at 95€/h"Claude: Invoice #2026-004 created — 760.00 €
You: "Mark it as paid"Claude: Invoice #2026-004 marked as paid, income recorded.

Analysis:

You: "How much did I spend on software this quarter?"Claude: IT & Software: 287.00 € (12 transactions) — 23% of total expenses
You: "Compare January vs February"Claude: Expenses up 15%. Biggest increase: Marketing (+120€)

Tools

38 tools across 9 categories:

CategoryTools
Transactionsadd_expense add_income list_transactions update_transaction delete_transaction
Analysisget_summary get_category_breakdown compare_periods get_tax_summary
Invoicescreate_invoice list_invoices get_invoice mark_invoice_sent mark_invoice_paid delete_invoice duplicate_invoice
Budgetsset_budget get_budget_status list_budgets update_budget delete_budget
Recurringcreate_recurring list_recurring delete_recurring process_recurring
Projectscreate_project list_projects rename_project delete_project
Categorieslist_categories add_category delete_category
Exportexport_transactions export_invoices export_for_tax_advisor
Settingsget_profile set_profile get_notifications

Configuration

Manual setup (if the installer didn't work)

Claude Desktop — edit your config file:

json
{  "mcpServers": {    "spendlog": {      "command": "npx",      "args": ["-y", "--package=spendlog", "spendlog-mcp"]    }  }}

Claude Code:

bash
claude mcp add spendlog -- npx -y --package=spendlog spendlog-mcp

Environment variables

VariableDescriptionDefault
SPENDLOG_LANGUAGEen or deen
SPENDLOG_DATA_DIRData directory path~/.spendlog
DATABASE_PATHFull path to SQLite database$SPENDLOG_DATA_DIR/spendlog.db
SPENDLOG_PROJECTDefault project for all transactionsnone

Privacy

All data stays on your machine, in a local SQLite file. No account, no cloud, no telemetry — nothing is ever sent anywhere.

Note: Spendlog is a cost tracker, not accounting software. Use it for your own insights, not official bookkeeping or tax filing.

Development

TypeScript (strict), Vitest for tests, TypeORM + SQLite for storage.

bash
git clone https://github.com/makz81/spendlog.gitcd spendlognpm installnpm run dev       # MCP server with watch modenpm run test      # 382 testsnpm run typecheck # type check (no emit)

See CONTRIBUTING.md for architecture details and how to add new tools.

License

MIT

Source: README.md at commit 0e51678

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.4LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts