Skip to main content
Glama
ScottyOmega

YNAB MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
YNAB_ACCESS_TOKENYesYour YNAB Personal Access Token (generate one in YNAB under Account Settings → Developer Settings → New Token)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
helloA

Says hello back, to confirm the YNAB MCP server is connected and working.

list_budgetsA

Lists all YNAB budgets available to this account, with their IDs and names.

list_accountsB

Lists the open accounts in a budget (checking, savings, credit cards, etc.) with their current balances.

list_all_account_balancesA

Lists account balances across every budget on this account, grouped by budget. Useful for a full net-worth view without checking each budget individually.

get_ready_to_assignA

Gets the current 'Ready to Assign' amount for a budget — the money not yet assigned to any category this month.

move_money_between_categoriesA

Moves budgeted money from one category to another within the same month — e.g. moving $50 from Child Support into Haircuts to cover a specific expense. Reduces the source category's assigned amount and increases the destination's by the same amount. Look up category_id values with list_categories first.

list_categoriesA

Lists the category groups and categories in a budget, with their IDs, names, and remaining balances. Use a category's id with categorize_transaction.

get_category_targetsA

Lists categories that have a target (goal) set, with the target amount, type, due date if any, and progress. Categories without a target are omitted.

set_category_targetA

Sets, updates, or clears a target (goal) on a category. Provide either goal_target_date (a one-time target due by a specific date) or goal_frequency (a recurring target), not both. Pass clear_target: true to remove an existing target instead.

list_uncategorized_transactionsB

Lists transactions that don't yet have a category assigned, so they can be reviewed and categorized.

list_unapproved_transactionsA

Lists transactions that haven't been approved yet (typically bank-imported transactions awaiting review). This is separate from categorization — a transaction can be categorized but still unapproved.

approve_transactionA

Marks a transaction as approved. Look up transaction_id with list_unapproved_transactions first.

search_transactionsB

Searches transactions in a budget by payee, category, account, and/or date range. All filters are optional and combine together.

suggest_categoryA

Suggests which category a transaction likely belongs to, based on how past transactions from the same payee were categorized. Especially useful when one payee covers multiple different charges (e.g. two different bills from the same company) that can be told apart by amount.

bulk_suggest_categoriesA

Suggests categories for every uncategorized transaction in a budget at once, using each payee's categorization history. Returns a review list — nothing is applied automatically, use categorize_transaction to apply a suggestion you approve of.

categorize_transactionB

Assigns a category to a specific transaction. Look up category_id with list_categories and transaction_id with list_uncategorized_transactions first.

split_transactionA

Splits a single transaction across multiple categories with different amounts — e.g. a $75 haircut charge where $50 goes to your category and $25 goes to a category tracking money owed by someone else. Provide at least 2 splits; their amounts must add up to the transaction's total. This cannot be undone via this tool and does not work on transactions that are already split.

create_category_groupB

Creates a new category group (a section that categories live under) in a budget.

create_categoryA

Creates a new category within an existing category group. Use list_categories first to find the category_group_name, or create one with create_category_group.

spending_by_categoryA

Reports total spending per category over a date range (defaults to the current month so far). Excludes transfers between your own accounts.

get_month_summaryB

Gets a financial snapshot for a budget month: income, total budgeted, total spent, money left to assign, and age of money.

list_overspent_categoriesA

Lists categories with a negative balance this month — categories that have been overspent. Informational only; does not move any money.

spending_trendA

Shows how spending has changed month by month over a recent window — either overall or for one category. Useful for spotting whether spending in an area is creeping up or down over time.

net_worth_snapshotA

Totals your current balance across every open account in every budget, into a single net worth figure, plus a per-budget breakdown.

top_payeesA

Reports total spending grouped by payee over a date range (defaults to the current month so far) — who you spend the most money with. Excludes transfers between your own accounts.

largest_transactionsA

Lists the biggest purchases (outflows) in a date range (defaults to the current month so far) — a quick gut-check on where money actually went. Excludes transfers between your own accounts.

detect_recurring_chargesA

Flags payees that appear to bill a consistent amount repeatedly over the last several months — useful for spotting subscriptions, including ones you may have forgotten about. Heuristic: amounts from the same payee that stay within 5% of their average, occurring at least min_occurrences times.

budget_health_checkA

A single at-a-glance digest of budget health: Ready to Assign, age of money, any overspent categories, and counts of uncategorized/unapproved transactions — instead of checking each separately.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 28 tools

Disambiguation4/5

Most tools target distinct actions or resources, but several reporting/summary tools overlap: list_all_account_balances vs net_worth_snapshot, get_month_summary vs budget_health_check, and Ready to Assign appears in multiple tools. The descriptions do a good job differentiating them, so confusion is limited but present.

Naming Consistency4/5

All tool names use snake_case consistently, with no mixed casing styles. However, several names are noun-phrase reports rather than verb_noun patterns (budget_health_check, net_worth_snapshot, top_payees, spending_by_category), and hello is an outlier.

Tool Count2/5

At 28 tools, the set exceeds the recommended 3-15 range and crosses the 25+ heavy threshold. While many tools serve distinct purposes, several analysis/reporting tools could be consolidated, making the surface larger than necessary.

Completeness2/5

The server covers budgeting analysis, categorization, category creation, and approval workflows well, but it lacks core transaction lifecycle operations: no create_transaction, update_transaction, delete_transaction, or get_transaction by ID. Payee management and scheduled transactions are also missing, which are significant gaps for a YNAB server.

Maintenance

ActivityMaintained
ResponsivenessNo issues