- Python 90.6%
- Go Template 5.2%
- Makefile 2.5%
- Dockerfile 1.7%
Default the lookback to 90 days (overridable via LUNCH_MONEY_CATEGORIZE_DAYS) to clear the older uncategorized backlog. closes #13 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .coily | ||
| .github/workflows | ||
| chart | ||
| docs | ||
| examples | ||
| lunch_money_mcp | ||
| scripts | ||
| tests | ||
| .dockerignore | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| AGENTS.md | ||
| Dockerfile | ||
| LICENSE | ||
| Makefile | ||
| pyproject.toml | ||
| README.md | ||
| rules.example.yaml | ||
| uv.lock | ||
lunch-money-k8s 🍱☸️
An MCP server for the Lunch Money personal-finance API, served over HTTP and deployable to Kubernetes with a Helm chart. Point Claude or any MCP client at it and ask about your spending in plain language.
Most Lunch Money MCP servers run stdio-only on a laptop. This one runs as a service: containerized, Helm-installable, happy on a homelab cluster.
Tools
list_transactions- transactions in a date range, optional uncategorized filterlist_categories/create_category- read and create categoriescategorize_transaction- assign a category to a transactionspending_summary- total spend per categorylist_budgets- budget detail per category
Quick start (local, stdio)
Grab an API token from the Lunch Money developers page:
export LUNCH_MONEY_TOKEN=...
uv sync
uv run lunch-money-mcp
Then register uv run lunch-money-mcp with your MCP client.
The server talks to the Lunch Money v1 API by default. Set
LUNCH_MONEY_API_VERSION=v2 to use the v2 API (Lunch Money's open alpha);
LUNCH_MONEY_API_BASE overrides the base URL.
Run on Kubernetes
helm install lunch-money ./chart --set lunchMoney.token=$LUNCH_MONEY_TOKEN
The server speaks streamable HTTP at /mcp on port 8080. Ingress, existing-secret
wiring, and the categorization-rules ConfigMap are covered in
docs/deploy.md.
Auto-categorization
scripts/categorize.py seeds a category set and assigns transactions by
payee-prefix rules. Copy rules.example.yaml to rules.yaml (gitignored, so your
real payees never get committed) and edit it for your own spending.
License
AGPL-3.0. See LICENSE.
See also
- docs/FEATURES.md - inventory of what ships today.
- docs/deploy.md - Kubernetes deployment notes.
- AGENTS.md - agent instructions.