Ynab MCP Server
UnclaimedLocal MCP server for YNAB with read-only defaults, full API coverage, safe write controls, and support for budgets, transactions, categories, accounts, and reporting.
Install
docker run -i --rm -e YNAB_API_TOKEN=your-token-here mcp-server-for-ynabUnclaimed listing
Is this your MCP server?
This listing was auto-indexed from the public record. Claim it to edit the page, set compatibility and unlock growth tools. Takes under two minutes.
Claim this serverTools (40)
approve_transactions
Write tool: approve unapproved transactions in bulk by filter (payeeId / categoryId / accountId) without hand-listing IDs. Skips uncategorized transactions by default, requires confirmed: true, and supports expectedMatchedCount.
create_account
Write tool: create a new account (checking, savings, creditCard, mortgage, etc.)
create_category
Write tool: create a new category in an existing group (with optional goal)
create_category_group
Write tool: create a new category group
create_payee
Write tool: create a new payee
create_transaction
Write tool: create a transaction with optional split (subtransactions must sum to total)
create_transactions
Write tool: bulk create multiple transactions in a single API call (supports split transactions)
delete_transaction
Write tool: delete a transaction. Requires confirmed: true.
get_account
Get full account details including notes and debt fields
get_budget
Get budget summary (name, currency, account/category/payee counts). Pass lastKnowledgeOfServer for a delta export of every changed entity plus the next serverknowledge.
get_budget_settings
Get currency and date format settings
get_category
Get full category details including goal progress and cadence
get_money_movement_groups_by_month
Get money movement groups for a specific month
get_money_movements_by_month
Get money movements for a specific month
get_month
Get month detail with per-category budget/activity/balance/goal breakdown
get_month_category
Get category budget for a specific month
get_payee
Get payee details
get_payee_location
Get a specific payee location
get_payee_locations_by_payee
Get all locations for a specific payee
get_transaction
Get a single transaction by ID (includes subtransactions). Auto-handles composite scheduled-transaction IDs like uuidYYYY-MM-DD; if the underlying matched transaction has been deleted, falls back to returning the active scheduled template wrapped as { resourcetype: "scheduledtransaction", ... }.
get_transactions
Get transactions with filters: by account, category, payee, month, status (unapproved/uncategorized), sinceDate, and untilDate
get_user
Get the authenticated user
import_transactions
Write tool: trigger import from linked bank accounts
list_accounts
List all accounts with balances, debt details, and import status
list_budgets
List all budgets with IDs, names, date ranges, format settings, and default budget. Pass includeAccounts: true to include each budget's accounts.
list_categories
List all category groups and their categories with budgeted/activity/balance
list_money_movement_groups
List all money movement groups (batched re-allocations)
list_money_movements
List all money movements (budget re-allocations between categories)
list_months
List budget months with income, budgeted, activity, to-be-budgeted, age of money, and notes
list_payee_locations
List all payee locations (GPS coordinates from mobile app)
list_payees
List all payees with transfer account mappings
reassign_payee_transactions
Write tool: move all transactions from one payee to another, the merge workaround since the YNAB API has no payee delete/merge endpoint. Requires confirmed: true and supports expectedMatchedCount.
search_categories
Case-insensitive partial name search over category names and category-group names (e.g., "groc" finds "Groceries"; "health" finds everything in a "Health & Medical" group). Multi-word queries are tokenized and OR-matched, results are ranked, and each result reports matchedon / matchedterms. Pass inc
search_payees
Case-insensitive partial name search
update_category
Write tool: update name, note, goal target, goal target date, or move to a different group
update_category_group
Write tool: rename a category group
update_month_category
Write tool: set the budgeted amount for a category in a month
update_payee
Write tool: rename a payee
update_transaction
Write tool: partial update - only specified fields change. Can convert a non-split transaction into a split via subtransactions. Composite scheduled-transaction IDs (uuidYYYY-MM-DD) are writable — see below.
update_transactions
Write tool: batch update multiple transactions at once (look up each entry by id or importId), then verify requested fields persisted using a single batch refetch. Returns newlyapprovedcount beside approvedcount. Pass returnSummary: true for compact counts instead of full objects on large batches (a