Lunch Money
MCP server for managing LunchMoney personal finances: transactions, budgets, categories, and more.
Connector by akutishevsky · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying Lunch Money?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/akutishevsky-lunchmoney-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 25 read · 20 write · 13 delete · 1 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 59
Read from the source code; the running server may list different tools.
Read 25 · Look things up without changing anything.
get_account_balance_historyget_all_categoriesget_all_manual_accountsget_all_manual_cryptoget_all_plaid_accountsget_all_synced_cryptoget_all_tagsget_balance_historyget_budget_settingsget_budget_summaryget_crypto_synced_balance_historyget_recurring_items
Show 13 more tools
get_single_categoryget_single_manual_accountget_single_manual_cryptoget_single_plaid_accountget_single_recurring_itemget_single_synced_cryptoget_single_tagget_single_transactionget_supported_cryptocurrenciesget_synced_crypto_balanceget_transaction_attachment_urlget_transactionsget_user
Write 20 · Create, change, send or run things.
add_supported_cryptocurrencyattach_file_to_transactioncreate_categorycreate_manual_accountcreate_manual_cryptocreate_tagcreate_transaction_groupcreate_transactionsrefresh_synced_cryptotrigger_plaid_fetchupdate_categoryupdate_deleted_account_details
Show 8 more tools
update_manual_accountupdate_manual_cryptoupdate_tagupdate_transactionupdate_transactions_bulkupsert_account_balance_historyupsert_budgetupsert_crypto_synced_balance_history
Delete 13 · Delete, drop, revoke or wipe things.
delete_account_balance_historydelete_balance_history_entrydelete_categorydelete_crypto_synced_balance_historydelete_manual_accountdelete_manual_cryptodelete_tagdelete_transactiondelete_transaction_attachmentdelete_transaction_groupdelete_transactions_bulkremove_budget
Show 1 more tools
unsplit_transaction
Not yet classified 1 · We could not tell from the name and description.
split_transaction
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
LUNCHMONEY_API_TOKEN
Other settings (environment variables or headers).
LUNCHMONEY_DEBUG
Network hosts it talks to 4
api.lunchmoney.dev· found in codecoingecko.com· found in codegithub.com· found in codemy.lunchmoney.app· found in code
Tools (59)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
add_supported_cryptocurrencyAdd a new cryptocurrency to the supported manual-crypto list by submitting its CoinGecko coin-page URL. Only needed when get_supported_cryptocurrencies does not already list the symbol you want to track.
attach_file_to_transactionAttach a local image or PDF receipt (max 10MB) to a transaction. Allowed types: image/jpeg, image/png, image/heic, image/heif, application/pdf. The file is read from the local filesystem of the host running this MCP server, and its type is determined from its actual contents — files that are not a real image or PDF are rejected. If LUNCHMONEY_ATTACHMENTS_DIR is set on the host, only files inside that directory can be attached.
create_categoryCreate a new category or a category group. Set is_group=true to create a category group; supply children as an array of existing category IDs and/or strings (names of new sub-categories to create).
create_manual_accountCreate a new manually-managed account. (Formerly `create_asset`.)
create_manual_cryptoCreate a manually-managed crypto asset. The symbol must match one returned by get_supported_cryptocurrencies.
create_tagCreate a new tag.
create_transaction_groupCreate a transaction group from 2-500 existing transactions. Source transactions are hidden from get_transactions and accessible via the new group's `children` (set include_children=true on get_single_transaction). Cannot include split or recurring transactions.
create_transactionsInsert one or more transactions (1-500 per call). Returns inserted transactions plus any skipped duplicates.
delete_account_balance_historycan change or delete dataDelete ALL historical balance entries for a single account. This is irreversible and affects the Net Worth views. To remove a single month, use delete_balance_history_entry instead.
delete_balance_history_entrycan change or delete dataDelete a single historical balance entry by its id. The id must come from an entry with type=historical in a balance history response; ephemeral `current` entries have no id and cannot be deleted.
delete_categorycan change or delete dataDelete a single category or category group. By default fails (HTTP 422) if dependencies exist, returning a structured `dependents` payload. Set force=true to delete and disassociate from all related budgets, transactions, recurring items, etc. Force delete is irreversible.
delete_crypto_synced_balance_historycan change or delete dataDelete ALL historical balance entries for a synced crypto holding. This is irreversible and affects the Net Worth views.
delete_manual_accountcan change or delete dataDelete a manually-managed account. Optionally also delete its transactions/rules/recurring items, and/or its balance history. Both deletion options are irreversible.
delete_manual_cryptocan change or delete dataDelete a manually-managed crypto asset. If the asset has balance history, keep_history must be set explicitly or the API rejects the request. Irreversible.
delete_tagcan change or delete dataDelete a tag. By default fails (HTTP 422) with a structured `dependents` payload if the tag is in use by transactions or rules. Set force=true to delete and disassociate from those records.
Show 44 more tools
delete_transactioncan change or delete dataDelete a single transaction. Fails for split/group transactions and their parents — unsplit/ungroup first. Irreversible.
delete_transaction_attachmentcan change or delete dataDelete a transaction file attachment. Irreversible.
delete_transaction_groupcan change or delete dataDelete (ungroup) a transaction group. The original child transactions remain and revert to normal ungrouped transactions.
delete_transactions_bulkcan change or delete dataBulk-delete transactions by ID (1-500). Fails if any ID is a split or group parent, or part of a split/group; unsplit or ungroup those first. Irreversible.
get_account_balance_historyread-onlyGet monthly balance history for a single account. Call get_all_manual_accounts, get_all_plaid_accounts, or get_all_manual_crypto first to discover ids. For synced crypto holdings use get_crypto_synced_balance_history instead.
get_all_categoriesread-onlyGet a list of all categories associated with the user's account. Returns categories in alphabetical order.
get_all_manual_accountsread-onlyGet a list of all manually-managed accounts associated with the user. (Formerly known as `assets` in the v1 API.)
get_all_manual_cryptoread-onlyGet all manually-managed crypto balances associated with the user.
get_all_plaid_accountsread-onlyGet a list of all Plaid (synced) accounts associated with the user.
get_all_synced_cryptoread-onlyGet all synced crypto accounts (Coinbase, Kraken, Ethereum wallets) and their nested per-symbol balances. Synced accounts are connected in the Lunch Money web app and cannot be created or edited through the API.
get_all_tagsread-onlyGet a list of all tags associated with the user's account.
get_balance_historyread-onlyGet monthly account balance history across all accounts — the data behind the Net Worth views in the LunchMoney app. History is monthly. With no month range, returns all available history plus an ephemeral `current` entry for the current month, which is calculated on demand and may change between requests. Only months with data are included.
get_budget_settingsread-onlyGet budget period and display settings for the account (granularity, period length, anchor date, hide-no-activity preference, income option, rollover-left-to-budget setting).
get_budget_summaryread-onlyGet a summary of the user's budget for a specified date range. Returns per-category totals (other_activity, recurring_activity, budgeted, available, recurring_remaining, recurring_expected). Set include_occurrences=true for a per-period breakdown matching the account's budget periodicity. (Backed by the v2 GET /summary endpoint.)
get_crypto_synced_balance_historyread-onlyGet monthly balance history for a synced crypto holding, identified by its account id and ticker symbol. Synced crypto is scoped per symbol, so it is not available through get_account_balance_history.
get_recurring_itemsread-onlyRetrieve a list of recurring items expected for a specified date range. The `matches` object on each item is populated based on the requested range.
get_single_categoryread-onlyGet details on a single category or category group, including the list of children categories for category groups.
get_single_manual_accountread-onlyGet details of a single manual account by ID.
get_single_manual_cryptoread-onlyGet a single manually-managed crypto balance by ID. Call get_all_manual_crypto first to discover ids.
get_single_plaid_accountread-onlyGet details of a single Plaid (synced) account by ID.
get_single_recurring_itemread-onlyRetrieve a single recurring item by ID. Optional date range populates the `matches` object.
get_single_synced_cryptoread-onlyGet a single synced crypto account and all its nested balances by ID.
get_single_tagread-onlyGet details of a single tag by ID.
get_single_transactionread-onlyGet details of a specific transaction. The response always includes plaid_metadata, custom_metadata, files, and (for split or group parents) the children array — none of which are returned by default in get_transactions.
get_supported_cryptocurrenciesread-onlyGet the list of cryptocurrencies supported for manual tracking. The `symbol` of an entry here is what must be passed to create_manual_crypto.
get_synced_crypto_balanceread-onlyGet a single balance held inside a synced crypto account, looked up by its cryptocurrency symbol.
get_transaction_attachment_urlread-onlyGet a short-lived signed download URL for a transaction file attachment. The response includes the URL and an `expires_at` timestamp.
get_transactionsread-onlyRetrieve transactions, optionally filtered by date range, account, category, tag, recurring item, status, and more. Returns at most `limit` transactions (default 1000, max 2000); `has_more` is set on the response when more match the filters. Pending and split-parent / group-child transactions are excluded by default.
get_userread-onlyGet details on the current user
refresh_synced_cryptoTrigger a balance refresh for a synced crypto account and return the refreshed account. Reaches out to the external crypto provider.
remove_budgetcan change or delete dataRemove the budget for a specific category and period. The request is idempotent — succeeds even if no budget exists for the period.
split_transactionSplit an existing transaction into 2-500 child transactions. The sum of child amounts must equal the parent's amount. After splitting, the parent is hidden from get_transactions and accessible via get_single_transaction (returns the parent with `children`).
trigger_plaid_fetchTrigger a fetch of latest data from Plaid. Optionally scope the fetch to a date range and/or a specific Plaid account ID. Note: Plaid enforces a minimum 60-second delay between fetch requests; fetching may take up to 5 minutes.
unsplit_transactioncan change or delete dataUnsplit a previously split transaction by deleting its children and restoring the parent. Pass the parent (split_parent_id) — not a child — as the path id.
update_categoryUpdate properties for an existing category or category group. For category groups, supplying children replaces the group's full child list. Cannot be used to convert between category and category group.
update_deleted_account_detailsUpdate the display details shown for a deleted account in the Net Worth views. Applies to all historical entries for that deleted source. At least one field must be provided; pass null to clear a field.
update_manual_accountUpdate an existing manually-managed account. (Formerly `update_asset`.)
update_manual_cryptoUpdate a manually-managed crypto balance. At least one of name, display_name, institution_name, or balance must be supplied. The symbol of an existing balance cannot be changed.
update_tagUpdate properties for an existing tag.
update_transactionUpdate an existing transaction. Provide any subset of writable fields directly (the v2 API no longer wraps the body in a `transaction` envelope). Cannot modify split or grouped transactions; use the corresponding split/group tools instead.
update_transactions_bulkUpdate multiple transactions in a single call (1-500). Each entry must include `id` plus at least one writable field. Cannot be used to modify split or grouped transactions.
upsert_account_balance_historyCreate or update monthly balance history entries for a single account. Every month must be a past calendar month — the current month is calculated on demand and cannot be written. The request is all-or-nothing: if any entry fails validation, none are applied. The response contains only the entries submitted, not the account's full history.
upsert_budgetCreate or update a budget for a category and budget period. The start_date must be a valid budget period start for the account (see get_budget_settings).
upsert_crypto_synced_balance_historyCreate or update monthly balance history entries for a synced crypto holding. Every month must be a past calendar month. If an entry sets `symbol`, it must match the symbol argument. The request is all-or-nothing.
Signals
- Stars
- 109
- Forks
- 19
- Open issues
- 0
- Weekly downloads
- 308
- Last commit
- Aug 3, 2026 (2 months ago)
- Last release
- Aug 3, 2026 (2 months ago)
- Last package publish
- Aug 3, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.akutishevsky/lunchmoney-mcp- Version
- 3.0.0
- Auth
- API key
- Packages
- npm @akutishevsky/lunchmoney-mcp
- License
- MIT
- Repository
- github.com/akutishevsky/lunchmoney-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
More from akutishevsky
- 0.608score

Nutrition MCP
akutishevsky
Nutrition tracking: log meals and macros, USDA and Open Food Facts lookups, history, app import.
ConnectorAFreshness: ARemote★ 80Claude Code +3 - 0.554score
Monobank
akutishevsky
MCP server for Monobank API — currency rates, client info, and account statements
ConnectorAFreshness: ALocalRead-only★ 11Claude Code +5 - 0.541score
Withings Health Data
akutishevsky
MCP server for Withings health data — sleep, activity, heart, and body metrics.
ConnectorBFreshness: BRemoteRead-only★ 45Claude Code +3 - 0.468score
Spotify
akutishevsky
Full Spotify Web API coverage - albums, artists, playlists, player controls, and more.
ConnectorCFreshness: CRemoteDownClaude Code +3
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get Lunch Money running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
Lunch Money MCP server. Agent Mart. https://agentmart.dev/connectors/akutishevsky-lunchmoney-mcp (last updated 2026-10-25)