In the default preview mode a mutation first runs its dry-run path and hands back a confirmation token that expires after two minutes, works once, and only authorizes the same tool name with the same validated arguments — so an agent cannot get approval for one change and spend it on another. The amount handling shows the same care: amount_decimal and amount_milliunits are separate fields and the meaning is never inferred, which is the failure mode in a system where everything is stored in thousandths. Reconciliation is labelled beta by the author.
A YNAB client with 35 tools covering budgets, accounts, categories, payees, transactions and scheduled transactions, plus two workflows YNAB itself does not automate: receipt itemization and CSV reconciliation. Every read tool answers in markdown tables or structured JSON.
- A receipt turned into a split transaction, with tax distributed proportionally across the line items rather than parked on one of them (ynab_create_receipt_split_transaction).
- Guided reconciliation against a bank CSV: fuzzy-match payees and dates, surface what is missing or mismatched, and apply the bulk create, update and unclear operations it recommends — or just get the comparison and decide yourself (ynab_reconcile_account, ynab_compare_transactions).
- Spending arithmetic done deterministically rather than by the model: income, spending and net over an inclusive date range grouped by category, payee, account, week or month, and the same figures compared across two complete periods (ynab_analyze_spending, ynab_compare_spending_periods).
- Transactions one at a time or 1-100 in a batch, with duplicate detection and a dry-run preview on the batch paths (ynab_create_transaction, ynab_create_transactions, ynab_update_transaction, ynab_update_transactions, ynab_delete_transaction).
- Scheduled transactions as first-class records — list, read, create, update and delete the recurring bills and income the month depends on (ynab_list_scheduled_transactions, ynab_create_scheduled_transaction, ynab_update_scheduled_transaction, ynab_delete_scheduled_transaction).
- The budget structure itself: budgets, accounts with balances, categories with current-month detail, payees, and any month's full category picture (ynab_list_budgets, ynab_list_accounts, ynab_get_account, ynab_list_categories, ynab_get_month, ynab_list_months, ynab_list_payees).
- Writes back into the budget where you want them: fund a category for the current month, or create an account of any YNAB type (ynab_update_category, ynab_create_account).
- A default budget you set once so the other tools stop asking for a budget_id, and an export of a budget's transactions to a local JSON file (ynab_set_default_budget, ynab_get_default_budget, ynab_export_transactions).
Node.js 24+ and a YNAB personal access token from Account Settings, Developer Settings, passed as YNAB_ACCESS_TOKEN; a packaged .mcpb file installs it into Claude Desktop without a config file. Three settings decide how much it can do: YNAB_MCP_WRITE_MODE defaults to preview, and read-only or enabled are the other two; YNAB_MCP_TOOL_PROFILE picks core, read-only or full at startup; YNAB_EXPORT_PATH decides where exported files land, defaulting to ~/Downloads.
One command plus a key — npx -y @dizzlkheinz/ynab-mcpb@latest, then supply credentials
