Reference

Tools and prompts

69 tools and 7 guided prompts, generated from the server's own definitions.

Read-only tools only read. Write tools add data and need write mode. Destructive tools overwrite or delete data that YNAB can't restore. In read-only mode the server hides every write tool. The same data is available as tools.json.

Analytics 23 tools

Computed from your budget data: trends, health, forecasts and insights. All read-only.

  • ynab_detect_recurring

    Detect Recurring TransactionsRead-only

    Detect recurring transactions (subscriptions, bills) by analyzing transaction patterns.

    • “What subscriptions do I have?”
    • “Find my recurring bills”
    • “What do I pay every month?”
    Parameters (3)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    monthsnumberNumber of months to analyze (default 6)
    min_occurrencesnumberMinimum occurrences to consider recurring (default 3)

    Analyzes transaction history to find patterns and estimates monthly costs.

  • ynab_spending_analysis

    Spending AnalysisRead-only

    Analyze spending patterns and trends.

    • “How much am I spending?”
    • “What are my biggest expenses?”
    • “Show my spending trends”
    Parameters (3)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    monthsnumberNumber of months to analyze (default 3)
    category_idstringOptional: Focus on a specific category

    Provides category breakdowns, trends, and insights.

  • ynab_budget_health

    Budget Health CheckRead-only

    Get an overall budget health assessment.

    • “How is my budget doing?”
    • “What's my budget status?”
    • “Am I on track this month?”
    Parameters (1)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"

    Provides key metrics, alerts, and recommendations.

  • ynab_savings_opportunities

    Find Savings OpportunitiesRead-only

    Find potential savings opportunities based on spending patterns.

    • “How can I save money?”
    • “Where can I cut back?”
    • “What are my unnecessary expenses?”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    monthsnumberNumber of months to analyze (2-12, default 3)

    Analyzes spending to identify areas where cuts might be possible.

  • ynab_budget_vs_actuals

    Budget vs ActualsRead-only

    Compare budgeted amounts against actual spending for each category.

    • “How am I doing on my budget?”
    • “Am I over budget anywhere?”
    • “Compare budget vs actual”
    Parameters (3)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    monthstringMonth to analyze in YYYY-MM-01 format (first of month, 01-12). Defaults to current month
    include_previousbooleanInclude previous month for comparison

    Returns detailed budget vs actuals for all categories with variance analysis.

  • ynab_quick_summary

    Quick Budget SummaryRead-only

    Get a quick at-a-glance summary of the budget status.

    • “How's my budget looking?”
    • “Give me a quick overview”
    • “What's my financial status?”
    Parameters (1)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"

    Returns key metrics: available funds, spending this month, account balances, and alerts. This is the best tool to use for general budget status questions.

  • ynab_income_expense

    Income vs ExpensesRead-only

    Track income vs expenses with monthly breakdown.

    • “How much did I earn vs spend?”
    • “What's my income vs expenses?”
    • “Am I spending more than I make?”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    monthsintegerNumber of months to analyze (default 6)

    Returns monthly income, expenses, net savings, and savings rate.

  • ynab_net_worth

    Net WorthRead-only

    Calculate total net worth from all accounts.

    • “What's my net worth?”
    • “How much do I have in total?”
    • “Show all my account balances”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    include_closedbooleanInclude closed accounts in calculation (default false)

    Includes both budget accounts and tracking accounts (investments, property, etc.). Returns breakdown by account type with total assets, liabilities, and net worth.

  • ynab_goal_progress

    Goal ProgressRead-only

    Track progress on all category goals.

    • “How are my goals doing?”
    • “Show goal progress”
    • “Which goals need more funding?”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    filter"all" | "on_track" | "behind" | "underfunded" | "complete" | "snoozed"Filter goals by status

    Returns goal progress, funding status, and projections for each category with a goal.

  • ynab_spending_by_payee

    Spending by PayeeRead-only

    Analyze spending patterns by merchant/payee.

    • “Where do I spend the most?”
    • “Top merchants by spending”
    • “Which stores do I shop at most?”
    Parameters (4)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    monthsintegerNumber of months to analyze (1-12, default 3)
    limitintegerMaximum number of payees to return (1-50, default 20)
    min_transactionsintegerMinimum transactions to include payee (default 1)

    Returns top payees ranked by total spending with transaction counts and averages.

  • ynab_unused_categories

    Find Unused CategoriesRead-only

    Find categories with no recent activity.

    • “Which categories am I not using?”
    • “Find unused categories”
    • “Clean up my budget categories”
    Parameters (3)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    monthsnumberNumber of months to check for activity (default 6)
    include_fundedbooleanInclude categories that have funds but no spending (default false)

    Helps identify categories that could be removed or consolidated.

  • ynab_monthly_comparison

    Monthly ComparisonRead-only

    Compare this month vs last month for spending and budgeting.

    • “How does this month compare to last month?”
    • “Am I spending more or less?”
    • “Month over month comparison”
    Parameters (1)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"

    Returns side-by-side comparison of spending, income, and category performance.

  • ynab_cash_flow_forecast

    Cash Flow ForecastRead-only

    Project future cash flow based on scheduled transactions.

    • “What's my cash flow forecast?”
    • “Will I have enough money next month?”
    • “What bills are coming up?”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    daysnumberNumber of days to forecast (default 30)

    Returns projected cash flow including scheduled income and expenses.

  • ynab_reconciliation_helper

    Reconciliation HelperRead-only

    Help with account reconciliation by showing uncleared transactions.

    • “Help me reconcile my accounts”
    • “What transactions haven't cleared?”
    • “Show uncleared transactions”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    account_idstringSpecific account ID to check (optional)

    Returns uncleared transactions organized by account with totals.

  • ynab_budget_suggestions

    Budget SuggestionsRead-only

    Suggest budget amounts based on historical spending.

    • “How much should I budget for [category]?”
    • “Suggest budget amounts”
    • “What's a realistic budget?”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    monthsintegerNumber of months of history to analyze (1-12, default 3)

    Returns suggested monthly budget amounts for each category based on actual spending patterns.

  • ynab_overspending_alerts

    Overspending AlertsRead-only

    Check for categories that are currently overspent.

    • “Am I overspending?”
    • “What categories are over budget?”
    • “Any overspending alerts?”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    thresholdnumberMinimum overspend amount to report in dollars (default 0)

    Returns a quick list of all overspent categories with amounts.

  • ynab_spending_pace

    Spending PaceRead-only

    Track daily spending rate and project end-of-month status.

    • “Am I on track this month?”
    • “What's my spending pace?”
    • “Will I stay within budget?”
    Parameters (1)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"

    Returns current spending rate vs target rate with projections.

  • ynab_category_balances

    Category BalancesRead-only

    Check category balances with optional filtering.

    • “What's my balance in [category]?”
    • “How much do I have for groceries?”
    • “Show category balances”
    Parameters (4)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    filter"all" | "funded" | "unfunded" | "negative" | "positive"Filter categories by balance status
    groupstringFilter by category group name (partial match)
    searchstringSearch category names (partial match)

    Returns current category balances with filtering options.

  • ynab_credit_card_status

    Credit Card StatusRead-only

    Check credit card balances and payment category status.

    • “What's my credit card balance?”
    • “How much do I owe on credit cards?”
    • “Credit card payment status”
    Parameters (1)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"

    Returns credit card balances with corresponding payment category balances.

  • ynab_age_of_money

    Age of MoneyRead-only

    Get the Age of Money metric with explanation and tips.

    • “What's my age of money?”
    • “How old is my money?”
    • “Explain age of money”
    Parameters (1)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"

    Returns the current age of money with context and improvement tips.

  • ynab_preview_scheduled_transaction

    Preview Scheduled TransactionsRead-only

    Preview a scheduled transaction before creating it.

    • “Show me what this scheduled transaction would look like”
    • “Preview recurring payment”
    • “What would this subscription cost annually?”
    Parameters (10)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    account_id requiredstringThe account UUID for this scheduled transaction
    amount requirednumberAmount in dollars (negative for outflow, positive for inflow)
    frequency required"never" | "daily" | "weekly" | "everyOtherWeek" | "twiceAMonth" | "every4Weeks" | "monthly" | "everyOtherMonth" | "every3Months" | "every4Months" | "twiceAYear" | "yearly" | "everyOtherYear"Recurrence frequency
    payee_idstringPayee UUID
    payee_namestringPayee name
    category_idstringCategory UUID
    start_datestringStart date in YYYY-MM-DD format
    memostringTransaction memo/note
    flag_color"red" | "orange" | "yellow" | "green" | "blue" | "purple"Flag color

    Validates all inputs and returns a preview with estimated costs. Does NOT create anything - use ynab_create_scheduled_transaction to actually create.

Budgets 3 tools

Budgets and their settings.

  • ynab_list_budgets

    List BudgetsRead-only

    List all budgets the user has access to in YNAB.

    • “What budgets do I have?”
    • “Show me my YNAB budgets”
    • “List my budgets”
    Parameters (1)
    ParameterTypeDescription
    include_accountsbooleanWhether to include account summaries for each budget

    Returns budget names, IDs, last modified dates, first and last month, and date format. Optionally includes account summaries. Not possible through the YNAB API (do it in the YNAB app): creating, renaming or deleting plans (budgets), and changing plan settings.

  • ynab_get_budget

    Get BudgetRead-only

    Get detailed information about a specific budget including accounts, categories, and payees.

    • “Show me my budget details”
    • “What's in my budget?”
    • “Give me an overview of my budget”
    Parameters (1)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"

    Returns comprehensive budget data including all accounts, category groups, categories, and payees. Not possible through the YNAB API (do it in the YNAB app): creating, renaming or deleting plans (budgets), and changing plan settings.

  • ynab_get_budget_settings

    Get Budget SettingsRead-only

    Get settings for a budget including currency format, date format, and other preferences.

    • “What currency is my budget in?”
    • “Show my budget settings”
    • “What's my budget date format?”
    Parameters (1)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"

    Returns currency format, date format, and currency ISO code. Not possible through the YNAB API (do it in the YNAB app): creating, renaming or deleting plans (budgets), and changing plan settings such as currency or date format.

Accounts 3 tools

Bank, credit and tracking accounts with balances.

  • ynab_list_accounts

    List AccountsRead-only

    List all accounts in a budget with their current balances.

    • “What accounts do I have?”
    • “Show my account balances”
    • “What's my net worth?”
    Parameters (3)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    include_closedbooleanWhether to include closed accounts
    since_server_knowledgeintegerDelta cursor: the server_knowledge from an earlier response of this tool for the same budget (and filters). When given, only entities changed since then are returned (delta: true), with deleted ones listed by id in deleted_ids; omit it for the full list

    Returns account names, types, and current/cleared/uncleared balances, plus on_budget, closed, note, last_reconciled_at, direct import status, transfer_payee_id (use it as payee_id to record a transfer), and debt details (original balance, interest rates, minimum payments, escrow) when present. Pass since_server_knowledge (the server_knowledge of an earlier response) to get only the accounts changed since then. Not possible through the YNAB API (do it in the YNAB app): editing, closing or reopening accounts, setting up loan accounts, and changing interest rates.

  • ynab_get_account

    Get AccountRead-only

    Get details about a specific account including balance and recent activity.

    • “Show me details for my checking account”
    • “What's the balance of [account name]?”
    • “Tell me about my savings account”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    account_id requiredstringThe account UUID to retrieve

    Also returns transfer_payee_id: set it as payee_id on ynab_create_transaction to record a transfer into this account. Requires an account_id. Use ynab_list_accounts first to find the account ID. Not possible through the YNAB API (do it in the YNAB app): editing, closing or reopening an account, setting up loan accounts, and changing interest rates.

  • ynab_create_account

    Create AccountWrite

    Create a new account in a budget.

    • “Add a new checking account”
    • “Create a savings account”
    • “I want to add my credit card to YNAB”
    Parameters (4)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    name requiredstringThe name of the account
    type required"checking" | "savings" | "cash" | "creditCard" | "otherAsset" | "otherLiability"The type of account
    balance requirednumberThe starting balance in dollars (e.g., 1000.50)

    Account types (only these can be created via the YNAB API): checking, savings, cash, creditCard, otherAsset, otherLiability Balance should be provided in dollars (e.g., 1000.50). For credit cards and liability accounts, use a negative balance for amounts owed. Not possible through the YNAB API (do it in the YNAB app): editing, closing or reopening accounts, setting up loan accounts, and changing interest rates.

Categories 9 tools

Category groups, categories, monthly budgeted amounts and targets.

  • ynab_list_categories

    List CategoriesRead-only

    List all category groups and categories in a budget with budgeted amounts and balances.

    • “What categories do I have?”
    • “Show my budget categories”
    • “How is my budget organized?”
    Parameters (3)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    include_hiddenbooleanWhether to include hidden categories
    since_server_knowledgeintegerDelta cursor: the server_knowledge from an earlier response of this tool for the same budget (and filters). When given, only entities changed since then are returned (delta: true), with deleted ones listed by id in deleted_ids; omit it for the full list

    Returns category groups with their categories, including budgeted amounts, activity, and remaining balances. Pass since_server_knowledge (the server_knowledge of an earlier response) to get only the groups and categories changed since then. Budgeted, activity and balance are for the current month, and a new month changes them without YNAB reporting a change, so re-read in full after a month begins. Not possible through the YNAB API (do it in the YNAB app): target cadences other than monthly/weekly/yearly, due days, choosing the target type, and snoozing a target; hiding, unhiding, deleting or reordering categories and groups.

  • ynab_get_category

    Get CategoryRead-only

    Get details about a specific budget category including budgeted amount, activity, and goal status.

    • “Show me details for my Groceries category”
    • “What's the balance in [category name]?”
    • “How much is budgeted for [category]?”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    category_id requiredstringThe category UUID to retrieve

    Requires a category_id. Use ynab_list_categories first to find the category ID. Not possible through the YNAB API (do it in the YNAB app): target cadences other than monthly/weekly/yearly, due days, choosing the target type, and snoozing a target.

  • ynab_get_month_category

    Get Month CategoryRead-only

    Get category details for a specific month, including that month's budgeted amount, activity, and balance.

    • “How much did I budget for Groceries in January?”
    • “What was my spending in [category] last month?”
    • “Show me [category] for [month]”
    Parameters (3)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    month requiredstringThe budget month in YYYY-MM-01 format (first of month)
    category_id requiredstringThe category UUID to retrieve

    Use first-of-month format for the month parameter (e.g., 2024-01-01 for January 2024). Requires a category_id. Use ynab_list_categories first to find the category ID. Not possible through the YNAB API (do it in the YNAB app): target cadences other than monthly/weekly/yearly, due days, choosing the target type, and snoozing a target.

  • ynab_update_category

    Update Category BudgetWriteDestructive

    Update the budgeted amount for a category in a specific month.

    • “Budget $500 for Groceries this month”
    • “Set my dining out budget to $200”
    • “Increase my entertainment budget”
    Parameters (4)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    month requiredstringThe budget month in YYYY-MM-01 format (first of month)
    category_id requiredstringThe category UUID to update
    budgeted requirednumberThe new budgeted amount in dollars

    To rename a category, change its note, move it to another group, or set/clear its target, use ynab_update_category_details instead (this tool only changes a month's budgeted amount). Use first-of-month format for the month parameter (e.g., 2024-01-01 for January 2024). The budgeted amount is in dollars (e.g., 500.00 for $500). Requires a category_id. Use ynab_list_categories first to find the category ID. **Note:** This is a write operation. Requires YNAB_READ_ONLY=false.

  • ynab_move_money

    Move Money Between CategoriesWriteDestructive

    Move budgeted money from one category to another within a single month.

    • “Move $50 from Dining Out to Groceries”
    • “Cover my overspent Groceries category from Fun Money”
    • “Shift $100 of this month's budget from [category] to [category]”
    Parameters (5)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    month requiredstringThe budget month: "current" or first-of-month YYYY-MM-01
    from_category_id requiredstringThe category UUID to take budgeted money from
    to_category_id requiredstringThe category UUID to add budgeted money to (must differ from from_category_id)
    amount requirednumberAmount to move in dollars (greater than zero)

    This subtracts the amount from the first category's budgeted amount and adds it to the second's, for the given month. It changes budgeted amounts only: it does NOT create a YNAB money-movement record, because the YNAB API has no money-movement write, so the move will not appear in ynab_list_money_movements. The two updates are not atomic: if the second fails, the tool tries to restore the first and reports whether that rollback succeeded. A failed move may need a manual check: if a request errors with an unknown outcome, or the source category was edited by someone else in the meantime, the tool does not guess and reports move_outcome_uncertain or move_partially_applied, and the categories should be verified with ynab_get_month_category. The amount is in dollars and must be greater than zero. The month is "current" or first-of-month format (e.g., 2024-01-01). Use ynab_list_categories to find category IDs. To set an absolute budgeted amount for one category use ynab_update_category. Internal categories (such as "Inflow: Ready to Assign") cannot be used as the source or target. To assign money from Ready to Assign to a category, set that category's budgeted amount with ynab_update_category. **Note:** This is a write operation. Requires YNAB_READ_ONLY=false.

  • ynab_update_category_details

    Update Category DetailsWriteDestructive

    Update a category's details: rename it, change its note, move it to a different category group, or set/clear its target (goal).

    • “Rename my [category] category to X”
    • “Add a note to [category]" or "Clear the note on [category]”
    • “Move [category] to the [group] group”
    Parameters (9)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    category_id requiredstringThe category UUID to update
    namestringNew name for the category
    notestring | nullNew note for the category. Pass null or an empty string to clear the note
    category_group_idstringUUID of the category group to move the category into
    goal_targetnumber | nullTarget amount in dollars (e.g. 200 for $200.00; >= 0). Creates a monthly goal if none exists Pass null to remove the existing value.
    goal_target_datestring | nullTarget date in YYYY-MM-DD format. Not supported for categories paired to a loan account Pass null to remove the existing value.
    goal_needs_whole_amountboolean | nullOnly for spending-target (NEED) goals. true = "Set aside another..." each period, false = "Refill up to..." Pass null to remove the existing value.
    goal_frequency"monthly" | "weekly" | "yearly"Makes goal_target a recurring "set aside" (NEED) target that repeats at this frequency, e.g. goal_target 50 with "weekly" = $50 every week. Replaces any existing target. Requires goal_target; cannot be combined with goal_target_date; not supported for Credit Card Payment categories or categories paired to a loan account

    - "Set a $50 weekly target for Dining Out" (goal_target 50 + goal_frequency "weekly") Provide at least one of name, note, category_group_id, goal_target (in dollars, e.g. 200 for $200), goal_target_date, goal_needs_whole_amount, goal_frequency (monthly|weekly|yearly; recurring target, requires goal_target, not combinable with goal_target_date). Target fields accept null to remove the existing value; note accepts null or "" to clear it. Moving into YNAB's internal category group is rejected. Requires a category_id (and a category_group_id when moving). Use ynab_list_categories first to find the IDs. To change how much is budgeted for a category in a given month, use ynab_update_category instead; this tool never changes budgeted amounts. **Note:** This is a write operation. Requires YNAB_READ_ONLY=false. Not possible through the YNAB API (do it in the YNAB app): target cadences other than monthly/weekly/yearly, due days, choosing the target type, snoozing, and hiding, unhiding, deleting or reordering categories.

  • ynab_create_category

    Create CategoryWrite

    Create a new category inside an existing category group.

    • “Add a new category called X to my [group] group”
    • “Create a budgeting category for Y”
    Parameters (8)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    category_group_id requiredstringThe UUID of the category group to add the category to
    name requiredstringThe name of the new category
    notestringOptional note for the category
    goal_targetnumberTarget amount in dollars (e.g. 200 for $200.00; >= 0). Creates a monthly goal if none exists
    goal_target_datestringTarget date in YYYY-MM-DD format. Not supported for categories paired to a loan account
    goal_needs_whole_amountbooleanOnly for spending-target (NEED) goals. true = "Set aside another..." each period, false = "Refill up to..."
    goal_frequency"monthly" | "weekly" | "yearly"Makes goal_target a recurring "set aside" (NEED) target that repeats at this frequency, e.g. goal_target 50 with "weekly" = $50 every week. Replaces any existing target. Requires goal_target; cannot be combined with goal_target_date; not supported for Credit Card Payment categories or categories paired to a loan account

    Requires a category_group_id. Use ynab_list_categories first to find the group ID. Optionally set a target (goal) at creation: goal_target (in dollars, e.g. 200 for $200), goal_target_date (YYYY-MM-DD) and goal_needs_whole_amount. Supplying goal_target creates a monthly spending target. Add goal_frequency (monthly, weekly or yearly) with goal_target for a recurring "set aside" target (e.g. "Create Dining Out with a $50 weekly target" = goal_target 50, goal_frequency weekly); it cannot be combined with goal_target_date. **Note:** This is a write operation. Requires YNAB_READ_ONLY=false. Not possible through the YNAB API (do it in the YNAB app): hiding, unhiding, deleting or reordering categories, target cadences other than monthly/weekly/yearly, due days, choosing the target type, and snoozing a target.

  • ynab_create_category_group

    Create Category GroupWrite

    Create a new category group.

    • “Add a new category group called X”
    • “Create a top-level budgeting section for Y”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    name requiredstringThe name of the new category group

    Category groups organize related categories (e.g., "Monthly Bills", "Fun Money"). After creating a group, use ynab_create_category to add categories to it. **Note:** This is a write operation. Requires YNAB_READ_ONLY=false. Not possible through the YNAB API (do it in the YNAB app): hiding, unhiding, deleting or reordering category groups.

  • ynab_update_category_group

    Rename Category GroupWriteDestructive

    Rename an existing category group.

    • “Rename the [group] category group”
    • “Change the name of my budgeting section”
    Parameters (3)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    category_group_id requiredstringThe category group UUID to update
    name requiredstringThe new name for the category group

    Requires a category_group_id. Use ynab_list_categories first to find the group ID. **Note:** This is a write operation. Requires YNAB_READ_ONLY=false. Not possible through the YNAB API (do it in the YNAB app): hiding, unhiding, deleting or reordering category groups.

Transactions 11 tools

Find, add, change and remove transactions, including splits.

  • ynab_list_transactions

    List TransactionsRead-only

    List transactions for a budget with optional filters.

    • “Show my recent transactions”
    • “What did I spend this month?”
    • “List my uncategorized transactions”
    Parameters (7)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    monthstringOnly return transactions in this budget month: YYYY-MM-01 (first of month) or "current". Pending transactions are excluded. May be combined with since_date/until_date to narrow within the month
    since_datestringOnly return transactions on or after this date. Accepts YYYY-MM-DD or natural language: "today", "this week", "past 30 days", etc.. If omitted, YNAB returns only the last 12 months; pass an earlier date for older history
    type"uncategorized" | "unapproved"Filter by transaction type: "uncategorized" or "unapproved"
    until_datestringOnly return transactions on or before this date (inclusive). Accepts YYYY-MM-DD or "today" or "yesterday". Prefer ISO dates for an end bound: period names such as "last month" or "this year" resolve to the START of that period, so they would exclude most of it
    limitnumberMaximum number of transactions to return (default 100, max 500)
    since_server_knowledgeintegerDelta cursor: the server_knowledge from an earlier response of this tool for the same budget (and filters). When given, only entities changed since then are returned (delta: true), with deleted ones listed by id in deleted_ids; omit it for the full list

    - "Show all transactions for March" (month: "2024-03-01") Supports filtering by date (ISO or natural language like "past 30 days", "this month") and type (uncategorized/unapproved). Returns transaction details including date, payee, amount, category, and status. NOTE: If since_date is omitted, YNAB returns only the last 12 months of transactions (API 1.85 default). Pass an earlier since_date to see older history. until_date sets an inclusive upper bound. Pass month (YYYY-MM-01 or "current") to list a single budget month instead of the default 12-month window; it can be narrowed further with since_date/until_date. Pass since_server_knowledge (the server_knowledge of an earlier response with the same filters) to get only the transactions changed since then. If more changed than limit, the response keeps your cursor (cursor_withheld: true) so nothing is skipped. A delta may leave out a transaction that changed so it no longer matches the filters; re-read in full to keep a filtered list exact.

  • ynab_get_transaction

    Get TransactionRead-only

    Get details about a specific transaction.

    • “Show me details for that transaction”
    • “What's the info on transaction [id]?”
    • “Tell me more about that purchase”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    transaction_id requiredstringThe transaction UUID to retrieve

    Requires a transaction_id. Use ynab_list_transactions first to find the transaction ID.

  • ynab_create_transaction

    Create TransactionWrite

    Create a new transaction in a budget.

    • “Add a transaction for $50 at Amazon”
    • “Record a purchase”
    • “Log an expense”
    Parameters (13)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    account_id requiredstringThe account UUID for this transaction
    date requiredstringTransaction date in YYYY-MM-DD format
    amount requirednumberAmount in dollars (negative for outflow, positive for inflow)
    payee_idstringPayee UUID
    payee_namestringPayee name (creates new payee if payee_id not provided)
    category_idstringCategory UUID
    memostringTransaction memo/note
    cleared"cleared" | "uncleared" | "reconciled"Cleared status
    approvedbooleanWhether the transaction is approved
    flag_color"red" | "orange" | "yellow" | "green" | "blue" | "purple"Flag color
    import_idstringUnique import ID for deduplication (max 36 chars)
    subtransactionsarray of objectSplit the transaction across categories (at least 2). Split amounts (dollars) must sum exactly to the parent amount, and the parent must not set category_id. Each split takes amount, optional payee_id or payee_name, category_id and memo.

    Requires READ_ONLY mode to be disabled (YNAB_READ_ONLY=false). Amount should be negative for expenses/outflows and positive for income/inflows. Split transactions: pass subtransactions (at least 2, each with amount in dollars and optional payee_id/payee_name, category_id, memo). Split amounts must sum exactly to the parent amount, and the parent must not set category_id. The splits of an existing transaction cannot be edited afterwards (YNAB limitation), so get them right on creation. Pass import_id to make the create idempotent: the request is sent in YNAB's skip-duplicates form, so if that import_id already exists nothing is created and the result has success=false with duplicate_import_ids.

  • ynab_update_transaction

    Update TransactionWriteDestructive

    Update an existing transaction.

    • “Change the category on that transaction”
    • “Update the amount”
    • “Mark transaction as cleared”
    Parameters (12)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    transaction_id requiredstringThe transaction UUID to update
    account_idstringNew account UUID
    datestringNew transaction date in YYYY-MM-DD format
    amountnumberNew amount in dollars
    payee_idstring | nullNew payee UUID (null to clear the payee)
    payee_namestringNew payee name
    category_idstring | nullNew category UUID (null to uncategorize)
    memostring | nullNew memo/note (null to clear the memo)
    cleared"cleared" | "uncleared" | "reconciled"New cleared status
    approvedbooleanNew approved status
    flag_color"red" | "orange" | "yellow" | "green" | "blue" | "purple" | nullNew flag color (null to remove)

    Requires READ_ONLY mode to be disabled (YNAB_READ_ONLY=false). Only provide the fields you want to change; omitted fields stay unchanged. To clear a field, pass null (distinct from omitting it): category_id null uncategorizes the transaction, payee_id null clears the payee, memo null clears the memo. Split limitation: YNAB cannot edit the splits of an existing transaction, so you cannot change, add or remove splits here. To restructure splits, delete the transaction and create a new one with subtransactions via ynab_create_transaction.

  • ynab_delete_transaction

    Delete TransactionWriteDestructive

    Delete a transaction from a budget.

    • “Delete that transaction”
    • “Remove the transaction”
    • “Cancel that purchase entry”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    transaction_id requiredstringThe transaction UUID to delete

    Requires READ_ONLY mode to be disabled (YNAB_READ_ONLY=false). This action cannot be undone.

  • ynab_create_transactions

    Create Transactions in BulkWrite

    Create multiple transactions in a single request (bulk import).

    • “Import these transactions”
    • “Add multiple transactions”
    • “Bulk create transactions”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    transactions requiredarray of objectArray of transactions to create

    Requires READ_ONLY mode to be disabled (YNAB_READ_ONLY=false). Maximum 100 transactions per request. Use import_id to prevent duplicate imports. Any item may carry subtransactions (at least 2, amounts in dollars) to create a split transaction: split amounts must sum exactly to that item's amount, and the item must not set category_id. YNAB cannot edit the splits of an existing transaction afterwards.

  • ynab_update_transactions

    Update Transactions in BulkWriteDestructive

    Update multiple existing transactions in a single request (up to 100).

    • “Recategorize all these transactions”
    • “Mark these transactions as cleared”
    • “Approve all imported transactions”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    transactions requiredarray of objectArray of transactions to update (1-100). Each must include exactly one of id or import_id.

    Each entry must include exactly one of id or import_id to address the transaction. Use ynab_list_transactions first to find ids. Amounts are in dollars (e.g., -42.50 for a $42.50 outflow). To clear a field, pass null (distinct from omitting it, which leaves it unchanged): category_id null uncategorizes, payee_id null clears the payee, memo null clears the memo. YNAB cannot edit the splits of an existing transaction. **Note:** This is a write operation. Requires YNAB_READ_ONLY=false.

  • ynab_list_account_transactions

    List Account TransactionsRead-only

    List transactions for a specific account.

    • “Show transactions for my checking account”
    • “What purchases were made on my credit card?”
    • “List activity in [account name]”
    Parameters (7)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    account_id requiredstringThe account UUID to get transactions for
    since_datestringOnly return transactions on or after this date. Accepts YYYY-MM-DD or natural language like "past 30 days". If omitted, YNAB returns only the last 12 months; pass an earlier date for older history
    until_datestringOnly return transactions on or before this date (inclusive). Accepts YYYY-MM-DD or "today" or "yesterday". Prefer ISO dates for an end bound: period names such as "last month" or "this year" resolve to the START of that period, so they would exclude most of it
    type"uncategorized" | "unapproved"Filter by transaction type: "uncategorized" or "unapproved"
    limitnumberMaximum number of transactions to return (default 100, max 500)
    since_server_knowledgeintegerDelta cursor: the server_knowledge from an earlier response of this tool for the same budget (and filters). When given, only entities changed since then are returned (delta: true), with deleted ones listed by id in deleted_ids; omit it for the full list

    Pass type ("unapproved" or "uncategorized") to narrow to transactions that need attention. Requires an account_id. Use ynab_list_accounts first to find the account ID. NOTE: If since_date is omitted, YNAB returns only the last 12 months of transactions (API 1.85 default). Pass an earlier since_date to see older history. until_date sets an inclusive upper bound. Pass since_server_knowledge (the server_knowledge of an earlier response with the same filters) to get only the transactions changed since then. If more changed than limit, the response keeps your cursor (cursor_withheld: true) so nothing is skipped. A delta may leave out a transaction that changed so it no longer matches the filters; re-read in full to keep a filtered list exact.

  • ynab_list_category_transactions

    List Category TransactionsRead-only

    List transactions for a specific category.

    • “Show my grocery transactions”
    • “What did I spend on dining out?”
    • “List transactions in [category name]”
    Parameters (7)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    category_id requiredstringThe category UUID to get transactions for
    since_datestringOnly return transactions on or after this date. Accepts YYYY-MM-DD or natural language like "past 30 days". If omitted, YNAB returns only the last 12 months; pass an earlier date for older history
    until_datestringOnly return transactions on or before this date (inclusive). Accepts YYYY-MM-DD or "today" or "yesterday". Prefer ISO dates for an end bound: period names such as "last month" or "this year" resolve to the START of that period, so they would exclude most of it
    type"uncategorized" | "unapproved"Filter by transaction type: "uncategorized" or "unapproved"
    limitintegerMaximum number of transactions to return (default 100, max 500)
    since_server_knowledgeintegerDelta cursor: the server_knowledge from an earlier response of this tool for the same budget (and filters). When given, only entities changed since then are returned (delta: true), with deleted ones listed by id in deleted_ids; omit it for the full list

    Pass type ("unapproved" or "uncategorized") to narrow to transactions that need attention. Requires a category_id. Use ynab_list_categories first to find the category ID. NOTE: If since_date is omitted, YNAB returns only the last 12 months of transactions (API 1.85 default). Pass an earlier since_date to see older history. until_date sets an inclusive upper bound. Pass since_server_knowledge (the server_knowledge of an earlier response with the same filters) to get only the transactions changed since then. If more changed than limit, the response keeps your cursor (cursor_withheld: true) so nothing is skipped. A delta may leave out a transaction that changed so it no longer matches the filters; re-read in full to keep a filtered list exact.

  • ynab_list_payee_transactions

    List Payee TransactionsRead-only

    List transactions for a specific payee (merchant/vendor).

    • “Show my Amazon purchases”
    • “What have I spent at Costco?”
    • “List transactions for [payee name]”
    Parameters (7)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    payee_id requiredstringThe payee UUID to get transactions for
    since_datestringOnly return transactions on or after this date. Accepts YYYY-MM-DD or natural language like "past 30 days". If omitted, YNAB returns only the last 12 months; pass an earlier date for older history
    until_datestringOnly return transactions on or before this date (inclusive). Accepts YYYY-MM-DD or "today" or "yesterday". Prefer ISO dates for an end bound: period names such as "last month" or "this year" resolve to the START of that period, so they would exclude most of it
    type"uncategorized" | "unapproved"Filter by transaction type: "uncategorized" or "unapproved"
    limitintegerMaximum number of transactions to return (default 100, max 500)
    since_server_knowledgeintegerDelta cursor: the server_knowledge from an earlier response of this tool for the same budget (and filters). When given, only entities changed since then are returned (delta: true), with deleted ones listed by id in deleted_ids; omit it for the full list

    Pass type ("unapproved" or "uncategorized") to narrow to transactions that need attention. Requires a payee_id. Use ynab_list_payees first to find the payee ID. NOTE: If since_date is omitted, YNAB returns only the last 12 months of transactions (API 1.85 default). Pass an earlier since_date to see older history. until_date sets an inclusive upper bound. Pass since_server_knowledge (the server_knowledge of an earlier response with the same filters) to get only the transactions changed since then. If more changed than limit, the response keeps your cursor (cursor_withheld: true) so nothing is skipped. A delta may leave out a transaction that changed so it no longer matches the filters; re-read in full to keep a filtered list exact.

  • ynab_import_transactions

    Import Transactions (Deprecated)WriteDeprecated

    DEPRECATED: This tool no longer imports anything. YNAB API 1.88 deprecated the transaction import endpoint; it does nothing and always returns an empty result. YNAB imports linked bank accounts automatically.

    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    include_idsbooleanInclude imported transaction IDs in the response

    Do NOT use this tool to sync, refresh, or pull in bank transactions. It will not fetch new transactions. To review recent transactions, use ynab_list_transactions instead. Kept registered for backward compatibility only. Makes no API call and returns deprecated: true with an explanatory message and an imported_count of 0.

Scheduled transactions 5 tools

Recurring bills, subscriptions and future-dated transactions.

  • ynab_list_scheduled_transactions

    List Scheduled TransactionsRead-only

    List all scheduled transactions (recurring bills, subscriptions, etc.) in a budget.

    • “Show my scheduled transactions”
    • “What recurring bills do I have?”
    • “List my subscriptions”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    since_server_knowledgeintegerDelta cursor: the server_knowledge from an earlier response of this tool for the same budget (and filters). When given, only entities changed since then are returned (delta: true), with deleted ones listed by id in deleted_ids; omit it for the full list

    Returns scheduled transaction details including frequency, next occurrence, and amounts. Pass since_server_knowledge (the server_knowledge of an earlier response) to get only the scheduled transactions changed since then.

  • ynab_get_scheduled_transaction

    Get Scheduled TransactionRead-only

    Get details about a specific scheduled transaction.

    • “Show me details for that scheduled transaction”
    • “What's the info on my Netflix subscription?”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    scheduled_transaction_id requiredstringThe scheduled transaction UUID to retrieve

    Requires a scheduled_transaction_id. Use ynab_list_scheduled_transactions first to find the ID.

  • ynab_create_scheduled_transaction

    Create Scheduled TransactionWrite

    Create a new scheduled transaction (recurring bill, subscription, etc.) in a budget.

    • “Schedule a recurring payment”
    • “Add a subscription”
    • “Set up automatic bill”
    Parameters (10)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    account_id requiredstringThe account UUID for this scheduled transaction
    date requiredstringStart date in YYYY-MM-DD format (must be future, max 5 years ahead)
    amount requirednumberAmount in dollars (negative for outflow, positive for inflow)
    frequency required"never" | "daily" | "weekly" | "everyOtherWeek" | "twiceAMonth" | "every4Weeks" | "monthly" | "everyOtherMonth" | "every3Months" | "every4Months" | "twiceAYear" | "yearly" | "everyOtherYear"Recurrence frequency
    payee_idstringPayee UUID
    payee_namestringPayee name (creates new payee if payee_id not provided)
    category_idstringCategory UUID (Credit Card Payment categories NOT allowed)
    memostringTransaction memo/note
    flag_color"red" | "orange" | "yellow" | "green" | "blue" | "purple"Flag color

    Requires READ_ONLY mode to be disabled (YNAB_READ_ONLY=false). Date must be in the future and within 5 years. Amount should be negative for expenses/outflows and positive for income/inflows. Split limitation: YNAB cannot create scheduled transactions with splits, so a scheduled transaction has a single category. Splits are only supported when creating a regular transaction (ynab_create_transaction).

  • ynab_update_scheduled_transaction

    Update Scheduled TransactionWriteDestructive

    Update an existing scheduled transaction in a budget.

    • “Change my subscription amount”
    • “Update recurring payment”
    • “Modify scheduled transaction”
    Parameters (11)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    scheduled_transaction_id requiredstringThe scheduled transaction UUID to update
    account_idstringNew account UUID
    datestringNew date in YYYY-MM-DD format (must be future)
    amountnumberNew amount in dollars (negative for outflow, positive for inflow)
    frequency"never" | "daily" | "weekly" | "everyOtherWeek" | "twiceAMonth" | "every4Weeks" | "monthly" | "everyOtherMonth" | "every3Months" | "every4Months" | "twiceAYear" | "yearly" | "everyOtherYear"New recurrence frequency
    payee_idstringNew payee UUID
    payee_namestringNew payee name
    category_idstringNew category UUID
    memostringNew memo/note
    flag_color"red" | "orange" | "yellow" | "green" | "blue" | "purple" | nullNew flag color (null to remove)

    Requires READ_ONLY mode to be disabled (YNAB_READ_ONLY=false). Only provided fields will be updated. Split limitation: YNAB scheduled transactions cannot have splits, and the splits of an existing split scheduled transaction cannot be edited through the API.

  • ynab_delete_scheduled_transaction

    Delete Scheduled TransactionWriteDestructive

    Delete a scheduled transaction from a budget.

    • “Delete that scheduled transaction”
    • “Remove the recurring payment”
    • “Cancel that subscription”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    scheduled_transaction_id requiredstringThe scheduled transaction UUID to delete

    Requires READ_ONLY mode to be disabled (YNAB_READ_ONLY=false). This action cannot be undone.

Payees 7 tools

Payees (merchants and people) and their saved locations.

  • ynab_list_payees

    List PayeesRead-only

    List all payees in a budget.

    • “Show my payees”
    • “List all merchants”
    • “Who have I paid?”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    since_server_knowledgeintegerDelta cursor: the server_knowledge from an earlier response of this tool for the same budget (and filters). When given, only entities changed since then are returned (delta: true), with deleted ones listed by id in deleted_ids; omit it for the full list

    Returns payee names and IDs. Payees are merchants, people, or places you transact with. Pass since_server_knowledge (the server_knowledge of an earlier response) to get only the payees changed since then. Not possible through the YNAB API (do it in the YNAB app): deleting or merging payees, and editing payee locations.

  • ynab_get_payee

    Get PayeeRead-only

    Get details about a specific payee.

    • “Show me details for [payee]”
    • “Get info on a merchant”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    payee_id requiredstringThe payee UUID to retrieve

    Requires a payee_id. Use ynab_list_payees first to find the payee ID.

  • ynab_create_payee

    Create PayeeWrite

    Create a new payee.

    • “Add a payee called X”
    • “Create a new merchant”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    name requiredstringThe name of the new payee

    Most of the time payees are created automatically when you add a transaction with a new payee_name. Use this tool when you need a payee to exist ahead of time. **Note:** This is a write operation. Requires YNAB_READ_ONLY=false. Not possible through the YNAB API (do it in the YNAB app): deleting or merging payees, and editing payee locations.

  • ynab_update_payee

    Rename PayeeWriteDestructive

    Rename an existing payee.

    • “Rename payee X to Y”
    • “Fix the name of this payee”
    • “Clean up this merchant name”
    Parameters (3)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    payee_id requiredstringThe payee UUID to update
    name requiredstringThe new name for the payee

    Requires a payee_id. Use ynab_list_payees first to find the payee ID. **Note:** This is a write operation. Requires YNAB_READ_ONLY=false. Not possible through the YNAB API (do it in the YNAB app): deleting or merging payees, and editing payee locations.

  • ynab_list_payee_locations

    List Payee LocationsRead-only

    List all payee locations for a budget.

    • “Where are my payees located?”
    • “Show payee locations”
    • “Map of where I spend”
    Parameters (1)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"

    Returns payee locations with latitude/longitude for mapping purposes. Not possible through the YNAB API (do it in the YNAB app): adding, editing or deleting payee locations.

  • ynab_get_payee_location

    Get Payee LocationRead-only

    Get a specific payee location by ID.

    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    payee_location_id requiredstringThe payee location UUID

    Returns the details of a single payee location including coordinates.

  • ynab_list_payee_locations_by_payee

    List Locations for PayeeRead-only

    List all locations for a specific payee.

    • “Where is [payee] located?”
    • “Show locations for [store]”
    • “Which [payee] locations have I visited?”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    payee_id requiredstringThe payee UUID

    Returns all recorded locations for a specific payee.

Months 2 tools

Month-by-month budget summaries.

  • ynab_list_months

    List Budget MonthsRead-only

    List all budget months with summary information.

    • “Show my budget months”
    • “What months do I have budgeted?”
    • “List my budget history”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    since_server_knowledgeintegerDelta cursor: the server_knowledge from an earlier response of this tool for the same budget (and filters). When given, only entities changed since then are returned (delta: true), with deleted ones listed by id in deleted_ids; omit it for the full list

    Returns each month's income, budgeted, activity, and to-be-budgeted amounts. Pass since_server_knowledge (the server_knowledge of an earlier response) to get only the months changed since then.

  • ynab_get_month

    Get Budget MonthRead-only

    Get detailed information about a specific budget month including all categories.

    • “Show me January's budget”
    • “What did I budget last month?”
    • “Give me details for [month]”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    month requiredstringThe budget month in YYYY-MM-DD format (use first of month, or "current")

    Use first-of-month format for the month parameter (e.g., 2024-01-01 for January 2024). Use "current" for the current month.

Money movements 2 tools

Moves of money between categories made in YNAB.

  • ynab_list_money_movements

    List Money MovementsRead-only

    List money movements (moves of funds between categories) for a budget.

    • “Show me my money moves between categories”
    • “When did I move money out of [category]?”
    • “List my category fund transfers”
    Parameters (3)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    monthstringOnly return movements for this budget month: YYYY-MM-01 (first of month) or "current"
    group_by_groupbooleanNest movements under their money movement group (one extra request for the groups). Default false

    Returns each movement's amount (formatted, plus amount_milliunits), the categories it moved between, when it happened and who performed it (performed_by_user_id, masked). Pass month (YYYY-MM-01 or "current") to limit to a single budget month. Pass group_by_group=true to get movements nested under their money movement group (money_movement_groups[].movements, plus ungrouped_movements) instead of a flat list; it costs one extra request.

  • ynab_list_money_movement_groups

    List Money Movement GroupsRead-only

    List money movement groups: batches of category-to-category fund moves that were made together.

    • “Which budget rebalancing batches did I do?”
    • “Show my money move groups for [month]”
    • “What were the notes on my category fund moves?”
    Parameters (2)
    ParameterTypeDescription
    budget_idstringBudget UUID, "last-used", or "default". Defaults to YNAB_BUDGET_ID env var or "last-used"
    monthstringOnly return groups for this budget month: YYYY-MM-01 (first of month) or "current"

    Each group has an id, creation time, month, note and who performed it (performed_by_user_id, masked). Use the group id to match entries from ynab_list_money_movements (money_movement_group_id). Pass month (YYYY-MM-01 or "current") to limit to one budget month.

User 1 tool

The signed-in YNAB user.

  • ynab_get_user

    Get UserRead-only

    Get information about the authenticated YNAB user.

    • “Who am I logged in as?”
    • “What's my YNAB user ID?”
    • “Show my user ID”
    Details

    No parameters.

    Returns the user's ID.

System 3 tools

The server's own state: rate limit, audit log and a health check.

  • ynab_rate_limit_status

    Rate Limit StatusRead-only

    Check the current YNAB API rate limit status.

    Details

    No parameters.

    Use when you need to: - Check how many API requests are available - See if rate limiting might affect operations - Plan large operations that require many API calls YNAB allows 200 requests per hour. This server uses 180 as a safety margin. If YNAB itself has answered 429 (too many requests), ynab_exhausted shows when that happened and when requests are allowed again; until then requests fail fast.

  • ynab_audit_log

    View Audit LogRead-only

    View the audit log of write operations.

    • “What changes have been made?”
    • “Show me the audit log”
    • “What transactions were created?”
    Parameters (5)
    ParameterTypeDescription
    operation"create" | "update" | "delete"Filter by operation type
    resource_type"transaction" | "account" | "category"Filter by resource type
    successbooleanFilter by success/failure
    limitintegerMaximum entries to return (default 20)
    summary_onlybooleanReturn only summary statistics

    Shows all create, update, and delete operations with timestamps.

  • ynab_health_check

    Health CheckRead-only

    Check the health of the YNAB MCP server and API connection.

    Details

    No parameters.

    Use when: - Troubleshooting connection issues - Verifying the server is configured correctly - Checking if the YNAB API is accessible Returns server status, API connectivity, and configuration details.

Prompts

Prompts are guided workflows grounded in YNAB's method. Each one runs several tools and walks through the results. Clients that support MCP prompts list them, often as slash commands.

  • ynab-pulse-check

    Pulse CheckPrompt

    Fast daily-style status check: Ready to Assign, overspending flags, spending pace, and an overall health score. Use for "how am I doing this month", "how's my budget looking", "quick check on my finances", or "am I on track". Not for a full monthly review (use ynab-monthly-review) or fixing overspending (use ynab-overspending-triage).

  • ynab-monthly-review

    Monthly ReviewPrompt

    Runs a complete end-of-month budget review: this month's performance vs. plan, goal progress, income/savings trend, net worth change, and suggested targets for next month. Use for "let's do my monthly budget review", "end of month check-in", "how did this month go", "review my budget", "close out this month", or "help me plan next month's budget". Not for a quick daily-style check (use ynab-pulse-check), or deep reconciliation/cash-flow work (use ynab-reconcile-cleanup / ynab-age-of-money) — this flags those but doesn't deep-dive them.

    Arguments: month (optional): Month to review in YYYY-MM-01 format (first of month). Defaults to the current month.

  • ynab-assign-money

    Assign MoneyPrompt

    Helps give every dollar a job: assigns unallocated Ready to Assign money to categories, funds underfunded goals, and sets up new categories. Use for "I have money to assign", "help me budget this month", "what should I fund", "help me set up a new category", "organize my budget categories", or "assign my leftover funds". Not for fixing already-overspent categories (use ynab-overspending-triage) or the initial category structure of a brand-new budget (that's a bigger first-time-setup conversation).

  • ynab-true-expenses

    True ExpensesPrompt

    Finds and plans for irregular or infrequent costs — annual subscriptions, car repairs, holiday spending, insurance premiums — and detects recurring bills that may be missing from the budget or scheduled transactions. Use for "help me plan for an annual expense", "I have a big bill coming up", "make sure my recurring bills are captured", "set up a sinking fund", "did I forget any subscriptions", or "embrace my true expenses". Not for general new-category creation unrelated to irregular costs (use ynab-assign-money) or fixing an already-overspent category (use ynab-overspending-triage).

  • ynab-overspending-triage

    Overspending TriagePrompt

    Finds where money is being overspent and helps roll with the punches: move funds from categories with slack, and surface discretionary cuts. Use for "find places I'm overspending", "where did I overspend", "help me fix overspending", "roll with the punches", "where can I find extra money", or "help me cut back this month". Not for computing true-expense monthly contributions (use ynab-true-expenses) or the initial "assign new money" pass (use ynab-assign-money) — this is remediation of overspending, not allocation of unassigned money.

  • ynab-age-of-money

    Age of Money CheckPrompt

    Checks how healthy the cash cushion is: Age of Money, near-term cash flow forecast, and whether the credit card float is quietly draining the buffer. Use for "check my age of money", "am I living paycheck to paycheck", "how's my cash flow", "will I have enough before payday", or "is my credit card float catching up to me". Not for the overall month scorecard (use ynab-monthly-review, which references this in one line but doesn't forecast) or fixing overspending that's causing a low Age of Money (use ynab-overspending-triage).

  • ynab-reconcile-cleanup

    Reconcile CleanupPrompt

    Runs the weekly housekeeping pass: flags uncleared transactions per account for reconciliation, and audits the budget for unused or overly-granular ("sprawl") categories worth merging or archiving. Use for "let's reconcile my accounts", "clean up my budget", "find categories I don't use", "check for uncleared transactions", or "audit my budget for clutter". Not for spending analysis or overspending remediation — purely data-integrity and structure hygiene.