Lunchmoney Mcp V2

Created By
leafeye3 months ago
Overview

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

ToolDescription
get_userAccount info (name, email, currency)
list_transactionsList/search transactions with filters, or look up by ID
list_categoriesAll categories (nested or flat view)
list_tagsAll tags
get_accountsManual + synced accounts with balances
get_summaryBudget summary with income/spending/per-category breakdown
get_recurringRecurring items (subscriptions, bills, income)

CRUD

ToolActionsDescription
manage_transactioncreate, update, deleteSingle transaction operations
manage_categorycreate, update, deleteCategory management (force delete with dependency info)
manage_tagcreate, update, deleteTag management (force delete with dependency info)
manage_accountcreate, update, deleteManual account management (Plaid accounts are read-only)

Advanced

ToolActionsDescription
bulk_update_transactionsBatch update up to 500 transactions at once
split_transactionsplit, unsplitSplit a transaction into parts or restore the original
group_transactionsgroup, ungroupCombine 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 start

Regenerate types from the OpenAPI spec:

npm run generate:types

Architecture

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_recurring

License

MIT

Server Config

{
  "mcpServers": {
    "lunchmoney": {
      "command": "npx",
      "args": [
        "lunchmoney-mcp-v2"
      ],
      "env": {
        "LUNCHMONEY_TOKEN": "your-api-token-here"
      }
    }
  }
}
Project Info
Created At
3 months ago
Updated At
3 months ago
Author Name
leafeye
Star
-
Language
-
License
-
Category
Tags

Recommend Servers

View All
Bring your real authenticated browser session to AI coding agents. Local-first MCP server + Chrome MV3 extension. No cloud. No telemetry.
@Cubenest

peek records the user's actual logged-in browser (DOM via rrweb, console events, network metadata, optional response bodies via opt-in Deep capture) through a Chrome MV3 extension. The extension ships events through a native-messaging stdio bridge to a local MCP server (peek-mcp), which persists them to a SQLite database at ~/.peek/sessions.db. AI coding agents (Claude Code, Cursor, Cline, Windsurf) read sessions from the database via 10 MCP tools: Tool What it does list_recent_sessions List recently recorded sessions (id, origin, ts, event count). get_session_summary LLM-readable narrative summary of a session. get_session_console_errors Console errors recorded in a session. get_session_network_errors Failed/notable network requests in a session. get_user_action_before_error Last N user actions before a console error. generate_playwright_repro Generate a runnable Playwright test from a session. get_dom_snapshot Reconstruct the DOM at a given timestamp. query_dom_history Timeline of attribute/text changes for a selector. request_authorization Side-panel consent for write actions (Level 3). execute_action Dispatch a UI action (gated by permission level + destructive blocklist). Why local-first matters Every other "browser session for AI" tool ships to a vendor cloud. peek's SQLite + extension live on the user's machine — no remote endpoints, no telemetry. The privacy policy (docs/peek/PRIVACY_POLICY.md) is the source of truth. Install # 1. Add the MCP server to Claude Code claude mcp add peek -- npx -y @peekdev/mcp # 2. Install the Chrome extension from the Chrome Web Store # (link added once the CWS listing is approved)

2 hours ago