lunchmoney-mcp-v2
v0.1.1
Published
MCP server for the Lunch Money API v2
Readme
lunchmoney-mcp-v2
MCP server for the Lunch Money API v2. First MCP server built on the v2 API.
Features
- 14 tools covering read, CRUD, and advanced operations
- Hydrated responses: category, tag, and account names instead of raw IDs
- Smart caching: categories, tags, and accounts cached at startup, auto-refreshed after mutations
- Type-safe: generated from the official OpenAPI spec via
openapi-typescript
Setup
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"lunchmoney": {
"command": "npx",
"args": ["lunchmoney-mcp-v2"],
"env": {
"LUNCHMONEY_TOKEN": "your-api-token-here"
}
}
}
}Claude Code
Add to .mcp.json in your project or ~/.claude/mcp.json globally:
{
"mcpServers": {
"lunchmoney": {
"command": "npx",
"args": ["lunchmoney-mcp-v2"],
"env": {
"LUNCHMONEY_TOKEN": "your-api-token-here"
}
}
}
}Get your API token from Lunch Money Developer settings.
Tools
Read
| Tool | Description |
|---|---|
| get_user | Account info (name, email, currency) |
| list_transactions | List/search transactions with filters, or look up by ID |
| list_categories | All categories (nested or flat view) |
| list_tags | All tags |
| get_accounts | Manual + synced accounts with balances |
| get_summary | Budget summary with income/spending/per-category breakdown |
| get_recurring | Recurring items (subscriptions, bills, income) |
CRUD
| Tool | Actions | Description |
|---|---|---|
| manage_transaction | create, update, delete | Single transaction operations |
| manage_category | create, update, delete | Category management (force delete with dependency info) |
| manage_tag | create, update, delete | Tag management (force delete with dependency info) |
| manage_account | create, update, delete | Manual account management (Plaid accounts are read-only) |
Advanced
| Tool | Actions | Description |
|---|---|---|
| bulk_update_transactions | — | Batch update up to 500 transactions at once |
| split_transaction | split, unsplit | Split a transaction into parts or restore the original |
| group_transactions | group, ungroup | Combine transactions into a group or restore originals |
Example prompts
Once connected, just ask your LLM naturally:
Reviewing & organizing
- "Show me all unreviewed transactions from this month"
- "Categorize all my Amazon transactions as Shopping"
- "What did I spend on groceries last week?"
- "Mark these 5 transactions as reviewed"
Budget overview
- "Give me a spending summary for January"
- "What are my recurring expenses?"
- "How much do I have in each account?"
Managing transactions
- "Add a $45 transaction for dinner at Nobu yesterday"
- "Split that $120 Costco transaction into $80 groceries and $40 household"
- "Group these three Uber transactions into one"
- "Delete the duplicate transaction I just created"
Organizing
- "Create a new category called Side Projects"
- "Tag these transactions with travel"
- "Show me all my categories with their IDs"
- "Rename the Dining Out category to Restaurants"
Development
npm install
npm run build
npm startRegenerate types from the OpenAPI spec:
npm run generate:typesArchitecture
src/
index.ts Entry point — registers tools, initializes cache
client.ts openapi-fetch client + error handling
cache.ts In-memory cache for categories, tags, accounts
format.ts Text formatters for all response types
types.ts Generated from @lunch-money/v2-api-spec
tools/
user.ts get_user
transactions.ts list_transactions, manage_transaction, bulk_update, split, group
categories.ts list_categories, manage_category
tags.ts list_tags, manage_tag
accounts.ts get_accounts, manage_account
summary.ts get_summary
recurring.ts get_recurringLicense
MIT
