lunchmoney-mcp-cloudflare

Self-hosted Cloudflare Worker that puts the LunchMoney MCP tools behind Google sign-in for remote use

By Brian Marks (individual) TypeScript Finance and paymentsCloud platforms

9 popularity score ★ 5

What it does

This project packages the community LunchMoney MCP server by akutishevsky as a Cloudflare Worker, so a LunchMoney user can add it to Claude on the web, desktop or phone as a custom connector instead of running a local stdio process. Whoever deploys it runs their own copy on their own Cloudflare account; there is no shared public endpoint.

People who connect sign in with a Google account, optionally limited to an email allowlist, and on first connect paste their own LunchMoney API token into a /setup page. The Worker keeps each token in a Cloudflare KV namespace keyed by the Google account id and uses it for that person's requests only, so one deployment can serve several LunchMoney users and the operator needs no LunchMoney token of their own.

The tools are those of the wrapped server: 50 in all, covering transactions (including bulk create, update and delete, splits, groups and attachments), categories, tags, budgets, recurring items, manual and Plaid accounts, crypto holdings and balance history. The Worker pins a fork of that server at a fixed commit (package.json depends on github:bm1549/lunchmoney-mcp at df910c7) rather than the published npm package, and that fork targets LunchMoney's v2 API, which its README describes as alpha.

What it needs

Operator: a Cloudflare account (free tier per the README), a Google Cloud project with an OAuth web client whose redirect URI is the Worker's /authorize/callback, Node 22 or newer, and wrangler (brought by npm install) to create two KV namespaces and deploy. Each user: a Google account (on the allowlist if one is set) and a LunchMoney API token from my.lunchmoney.app/developers.

Limits

Version 0.3.0 has no self-serve way to change or delete a stored LunchMoney token: the operator must delete the user's KV row with wrangler. The /setup link expires after 30 minutes. Client registration at /register is rate limited to 2 requests per minute per IP (wrangler.jsonc). attach_file_to_transaction opens a file path on the machine running the server (src/attachments.ts of the pinned fork), which here is the Worker, not the user's computer. The wrapped server uses LunchMoney's v2 API, in alpha, and its tool names differ from v1.x.

Who it suits

Suits a LunchMoney user, or a small group such as a household, who wants LunchMoney tools in Claude on the web or mobile and is willing to set up Cloudflare and a Google OAuth client. Someone using a desktop client only can run the upstream lunch-money server (akutishevsky/lunchmoney-mcp, which we list) locally over stdio with a token, avoiding the Google and Cloudflare setup and keeping the token off a hosted store. The connector has full read and write tools, so pick it only if handing the assistant edit rights to your finances is acceptable.

Tools 50

get_user
Show the signed-in LunchMoney user's details
get_all_categories
List categories, with format and group filters
get_single_category
Fetch one category or category group
create_category
Add a category or a group with children
update_category
Change a category; replaces a group's children
delete_category
Remove a category, optionally forcing past dependents
get_all_tags
List all tags
get_single_tag
Fetch one tag by id
create_tag
Add a tag
update_tag
Change a tag
delete_tag
Remove a tag, optionally forcing past dependents
get_transactions
List transactions filtered by date, account, category, tag, status and more
get_single_transaction
Fetch one transaction with metadata, files and children
create_transactions
Insert between 1 and 500 transactions
update_transaction
Partly update one transaction
delete_transaction
Remove one transaction that is not a split or group
update_transactions_bulk
Update up to 500 transactions at once
delete_transactions_bulk
Remove up to 500 transactions by id
create_transaction_group
Group existing transactions together
delete_transaction_group
Break up a transaction group
split_transaction
Split a transaction into 2 to 500 parts
unsplit_transaction
Reverse an earlier split
attach_file_to_transaction
Attach an image or PDF of up to 10MB from a file path
get_transaction_attachment_url
Get a signed link to download an attachment
delete_transaction_attachment
Remove an attachment
get_recurring_items
List recurring items for a date range, optionally with suggestions
get_single_recurring_item
Fetch one recurring item
get_budget_summary
Per-category budget figures for a period
get_budget_settings
Read account-wide budget period and display settings
upsert_budget
Set a budget for a category and period
remove_budget
Clear a budget for a category and period
get_all_manual_accounts
List manually kept accounts
get_single_manual_account
Fetch one manual account
create_manual_account
Add a manual account
update_manual_account
Change a manual account
delete_manual_account
Remove a manual account, optionally with its transactions and history
get_all_plaid_accounts
List bank accounts linked through Plaid
get_single_plaid_account
Fetch one Plaid-linked account
trigger_plaid_fetch
Ask Plaid to pull fresh data, optionally for a range or account
get_all_crypto
List synced and manual crypto holdings
update_manual_crypto
Change a manually kept crypto holding
get_balance_history
Monthly balances across all accounts, optionally for a month range
get_account_balance_history
Monthly balances for one account
upsert_account_balance_history
Write past monthly balances for one account
delete_account_balance_history
Clear all balance history for one account
get_crypto_synced_balance_history
Monthly balances for a synced crypto holding
upsert_crypto_synced_balance_history
Write monthly balances for a synced crypto holding
delete_crypto_synced_balance_history
Clear balance history for a synced crypto holding
delete_balance_history_entry
Remove one balance history entry by id
update_deleted_account_details
Edit the name and details shown for a deleted account

Similar servers