Skip to main content
Glama
johannesbraeunig

ynab-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
YNAB_ACCESS_TOKENYesYour YNAB Personal Access Token. Grants full read/write access to your entire YNAB account.
YNAB_API_BASE_URLNoOverrides the YNAB API base URL (defaults to https://api.ynab.com/v1). Only useful for testing.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
ynab_get_userA

Get the id of the authenticated user for the configured access token.

ynab_list_budgetsA

List all budgets accessible to the configured YNAB access token.

ynab_get_budgetA

Get an overview of one budget: metadata plus counts of accounts/categories/payees/transactions. For the actual account, category, or transaction data, use ynab_list_accounts / ynab_list_categories / ynab_list_transactions instead — this tool intentionally does not return the full embedded export (which can be very large for budgets with long history).

ynab_get_budget_settingsA

Get the date format and currency format settings for a budget.

ynab_list_accountsA

List all accounts (checking, savings, credit card, etc.) in a budget, with balances in milliunits.

ynab_get_accountA

Get a single account by id, with balances in milliunits.

ynab_create_accountA

Create a new on-budget account. There is no API-supported way to close/delete an account afterwards — YNAB's public API has no update or close endpoint for accounts, only create and read, so this action can't be undone through this server (or any other API client).

ynab_list_categoriesA

List all category groups and categories in a budget, with budgeted/activity/balance figures (in milliunits) for the current month.

ynab_get_categoryA

Get a single category by id, including budgeted/activity/balance and goal figures (in milliunits) for the current month.

ynab_create_category_groupA

Create a new category group in a budget.

ynab_update_category_groupB

Rename an existing category group.

ynab_create_categoryA

Create a new category within an existing category group.

ynab_update_categoryA

Update a category's name, note, and/or which category group it belongs to. Only the fields provided are changed. To change the budgeted (assigned) amount for a specific month, use ynab_assign_budgeted_amount instead.

ynab_assign_budgeted_amountA

Set the budgeted (assigned) amount for a category in a specific month — the "assign money" action. Amount is in milliunits and replaces the existing budgeted amount for that month, it does not add to it.

ynab_list_monthsA

List summary figures (income/budgeted/activity/to_be_budgeted, in milliunits) for every month in a budget's history.

ynab_get_monthA

Get summary figures for one budget month plus every category's budgeted/activity/balance for that month (all in milliunits).

ynab_list_payeesB

List all payees in a budget.

ynab_get_payeeB

Get a single payee by id.

ynab_create_payeeB

Create a new payee in a budget.

ynab_update_payeeB

Rename an existing payee.

ynab_list_scheduled_transactionsA

List all upcoming scheduled (future-dated, recurring) transactions in a budget.

ynab_list_transactionsA

List transactions in a budget. Defaults to the last 30 days if since_date is not given, and returns at most 200 transactions per call (most recent first) with has_more indicating whether more exist for the window. Note: the YNAB API has no result-count limit of its own, so this tool always fetches every transaction in the requested date range before applying the 200-result cap — narrow the date range for large or long-lived budgets rather than requesting everything at once, both to keep the response small and to avoid burning YNAB's 200-requests/hour rate limit on an oversized fetch. For repeated polling of the same budget, prefer last_knowledge_of_server over re-fetching the full date range each time.

ynab_get_spending_summaryA

Summarize spending (outflow) and income (inflow) per category over a date range, computed client-side from transactions (YNAB has no single endpoint for this). Defaults to the last 30 days if since_date is not given. Narrow the date range for large or long-lived budgets, both to keep the response small and to avoid burning YNAB's 200-requests/hour rate limit.

ynab_create_transactionA

Create a single transaction. Amount is in milliunits: negative = outflow (spending), positive = inflow.

ynab_create_transactions_bulkA

Create multiple transactions in a single call. Amounts are in milliunits: negative = outflow (spending), positive = inflow.

ynab_update_transactionB

Update a transaction's account, date, amount, payee, category, memo, cleared status, and/or approved status. Only the fields provided are changed — this single tool covers approving a transaction, categorizing it, editing its amount, etc.

ynab_delete_transactionA

Permanently delete a transaction. This cannot be undone via the API. Requires confirm: true.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

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/johannesbraeunig/ynab-mcp'

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