github akutishevsky/lunchmoney-mcp mcpb-2.0.0
MCPB-2.0.0

2 days ago

[2.0.0] - 2026-04-15

Breaking change. Migrates the entire MCP server from LunchMoney's v1 API (https://dev.lunchmoney.app/v1) to the v2 API (https://api.lunchmoney.dev/v2, currently in alpha). v2 is not backwards-compatible with v1, and this release is not backwards-compatible with v1.x of this server. Tool count grows from 29 to 41.

Breaking

  • Base URL changed to https://api.lunchmoney.dev/v2. Existing LUNCHMONEY_API_TOKEN works unchanged.
  • assets renamed to manual_accounts everywhere. get_all_assets / create_asset / update_asset are now get_all_manual_accounts / create_manual_account / update_manual_account. Field renames in request bodies: type_nametype, subtype_namesubtype, exclude_transactionsexclude_from_transactions.
  • Transaction field renames affecting both filters and bodies: asset_idmanual_account_id, tags (array of {id, name}) → tag_ids (array of integers), is_group filter → is_group_parent. User response: user_id / user_name / user_emailid / name / email.
  • debit_as_negative is gone. v2 always uses signed amounts (positive = debit, negative = credit) on every transaction endpoint.
  • update_transaction body is no longer wrapped in { transaction: { ... } }. The new update_transaction tool takes the partial update under an update field and exposes update_balance (boolean query param, default true) instead of v1's skip_balance_update.
  • Transaction status enum changed from cleared / uncleared / pending to reviewed / unreviewed / delete_pending (and writeable values are limited to reviewed / unreviewed).
  • Categories consolidated. Dropped create_category_group, add_to_category_group, force_delete_category. create_category and update_category now handle category groups via is_group and children fields. delete_category accepts a force boolean to override the dependency check.
  • Crypto endpoints removed in v2. get_all_crypto and update_manual_crypto are preserved as tool names but rewritten as thin wrappers over /manual_accounts (filtering / updating accounts where type === "cryptocurrency").
  • Budget summary moved. get_budget_summary now calls GET /summary instead of GET /budgets. Response shape is different and supports new include flags (include_occurrences, include_totals, include_rollover_pool, etc).
  • Dropped unsplit_transactions (POST) and get_transaction_group (GET) v1 tools — see the new tools below.

Added

  • Tags CRUD: get_single_tag, create_tag, update_tag, delete_tag (with force flag).
  • Manual accounts CRUD: get_single_manual_account, delete_manual_account (with delete_items and delete_balance_history flags).
  • Plaid accounts: get_single_plaid_account. trigger_plaid_fetch now accepts optional start_date, end_date, and id to scope the fetch.
  • Recurring items: get_single_recurring_item. get_recurring_items adds include_suggested.
  • Budgets: get_budget_settings (GET /budgets/settings). upsert_budget adds optional notes.
  • Transactions — many new filters on get_transactions: created_since, updated_since, manual_account_id, plaid_account_id, is_pending, include_pending, include_metadata, include_split_parents, include_group_children, include_children, include_files. Limit max raised from 500 to 2000.
  • Transactions — new tools: delete_transaction, update_transactions_bulk, delete_transactions_bulk (each capped at 500), split_transaction, unsplit_transaction, attach_file_to_transaction (multipart upload from a local file path), get_transaction_attachment_url, delete_transaction_attachment.
  • update_transaction exposes the new additional_tag_ids field for additive (vs. replacement) tag semantics.
  • api.upload(path, formData) helper added in src/api.ts for multipart uploads, with the same auth and retry behavior as the JSON helpers.
  • api.delete(path, body?) accepts an optional JSON body to support DELETE /transactions.

Changed

  • All list-style tools now pass through the v2 envelope (e.g. { tags: [...] }, { manual_accounts: [...] }, { transactions: [...], has_more }) instead of unwrapping to a bare array.
  • Response handling for 204 No Content is explicit on every DELETE-style tool.

Don't miss a new lunchmoney-mcp release

NewReleases is sending notifications on new releases.