Skip to main content
Glama
akutishevsky

LunchMoney MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LUNCHMONEY_API_TOKENYesYour LunchMoney API token from LunchMoney Developer Settings

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_userA

Get details on the current user

get_all_categoriesA

Get a list of all categories associated with the user's account. Returns categories in alphabetical order.

get_single_categoryA

Get details on a single category or category group, including the list of children categories for category groups.

create_categoryA

Create 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).

update_categoryA

Update 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.

delete_categoryA

Delete 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.

get_all_tagsA

Get a list of all tags associated with the user's account.

get_single_tagA

Get details of a single tag by ID.

create_tagB

Create a new tag.

update_tagB

Update properties for an existing tag.

delete_tagA

Delete 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.

get_transactionsA

Retrieve 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_single_transactionA

Get 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.

create_transactionsA

Insert one or more transactions (1-500 per call). Returns inserted transactions plus any skipped duplicates.

update_transactionA

Update 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.

delete_transactionA

Delete a single transaction. Fails for split/group transactions and their parents — unsplit/ungroup first. Irreversible.

update_transactions_bulkA

Update 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.

delete_transactions_bulkA

Bulk-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.

create_transaction_groupA

Create 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.

delete_transaction_groupA

Delete (ungroup) a transaction group. The original child transactions remain and revert to normal ungrouped transactions.

split_transactionA

Split 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).

unsplit_transactionA

Unsplit 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.

attach_file_to_transactionA

Attach a local file (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.

get_transaction_attachment_urlA

Get a short-lived signed download URL for a transaction file attachment. The response includes the URL and an expires_at timestamp.

delete_transaction_attachmentA

Delete a transaction file attachment. Irreversible.

get_recurring_itemsA

Retrieve 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_recurring_itemA

Retrieve a single recurring item by ID. Optional date range populates the matches object.

get_budget_summaryA

Get 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_budget_settingsA

Get budget period and display settings for the account (granularity, period length, anchor date, hide-no-activity preference, income option, rollover-left-to-budget setting).

upsert_budgetA

Create 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).

remove_budgetA

Remove the budget for a specific category and period. The request is idempotent — succeeds even if no budget exists for the period.

get_all_manual_accountsA

Get a list of all manually-managed accounts associated with the user. (Formerly known as assets in the v1 API.)

get_single_manual_accountA

Get details of a single manual account by ID.

create_manual_accountB

Create a new manually-managed account. (Formerly create_asset.)

update_manual_accountC

Update an existing manually-managed account. (Formerly update_asset.)

delete_manual_accountA

Delete a manually-managed account. Optionally also delete its transactions/rules/recurring items, and/or its balance history. Both deletion options are irreversible.

get_all_plaid_accountsA

Get a list of all Plaid (synced) accounts associated with the user.

get_single_plaid_accountA

Get details of a single Plaid (synced) account by ID.

trigger_plaid_fetchA

Trigger 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.

get_all_cryptoA

Get all cryptocurrency holdings from the v1 crypto endpoint. Returns both synced and manually managed crypto assets.

update_manual_cryptoA

Update a manually-managed crypto asset via the v1 crypto endpoint. The id must be from a get_all_crypto result with source=manual.

Prompts

Interactive templates invoked by user choice

NameDescription
monthly_spending_breakdownAnalyze spending by category for a given month, combining transaction data with budget targets
subscription_auditReview recurring items for a given month to audit subscriptions and recurring costs
net_worth_snapshotCalculate total net worth by combining manual assets, Plaid accounts, and crypto holdings
uncategorized_cleanupFind uncategorized transactions in a date range and suggest categories for them

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/akutishevsky/lunchmoney-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server