Skip to main content
Glama
a1athrop

YNAB MCP Server

by a1athrop

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_BEARER_TOKENNoOptional token used to secure the MCP endpoint when running over HTTP.
YNAB_ACCESS_TOKENYesYour YNAB Personal Access Token, obtained from YNAB Settings > Developer Settings.
YNAB_DEFAULT_BUDGET_IDNoOptional default budget UUID or 'last-used'.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_budgets

List all budgets the user has access to.

Args: include_accounts: If True, include account summaries for each budget.

Returns: List of budgets with id, name, last_modified_on, and currency format.

get_accounts

List all accounts in a budget with balances.

Args: budget_id: Budget ID (uses default if omitted).

Returns: List of accounts with name, type, balance, cleared_balance, on_budget, and closed status.

get_categories

List all category groups and categories with budgeted/activity/balance for the current month.

Args: budget_id: Budget ID (uses default if omitted).

Returns: Category groups with nested categories showing budgeted, activity, balance, and goal info.

get_payees

List all payees in a budget.

Args: budget_id: Budget ID (uses default if omitted).

Returns: List of payees with id and name.

get_month

Get a monthly budget summary with category breakdowns.

Args: month: Month in YYYY-MM-DD format (first of month, e.g., "2026-02-01"). Defaults to current month. budget_id: Budget ID (uses default if omitted).

Returns: Month overview: income, budgeted, activity, to_be_budgeted, age_of_money, plus per-category details.

get_transactions

Search and list transactions with optional filters.

Args: budget_id: Budget ID (uses default if omitted). since_date: Only return transactions on or after this date (YYYY-MM-DD). before_date: Only return transactions before this date (YYYY-MM-DD). Server-side filter. Use with since_date for a date range, e.g. since_date="2024-02-01", before_date="2024-03-01" for all February 2024 transactions. type: Filter by "uncategorized" or "unapproved". account_id: Filter to a specific account. category_id: Filter to a specific category. payee_id: Filter to a specific payee. max_results: Maximum transactions to return (default 200).

Returns: List of transactions with date, amount, payee, category, memo, cleared status. Includes truncated flag and total_available count when results are capped.

create_transaction

Create a new transaction.

Args: account_id: The account UUID to create the transaction in. date: Transaction date in YYYY-MM-DD format. amount: Amount in milliunits (negative for outflows, positive for inflows). Example: -50000 = -$50.00 outflow, 150000 = $150.00 inflow. payee_name: Name of payee (creates new payee if doesn't exist). Use this OR payee_id. payee_id: UUID of existing payee. Use this OR payee_name. category_id: UUID of the budget category. Omit when using subtransactions (each sub has its own). memo: Transaction memo. cleared: Cleared status: "cleared", "uncleared", or "reconciled". Defaults to "cleared". approved: Whether the transaction is approved. Defaults to True. flag_color: Optional flag: red, orange, yellow, green, blue, purple. subtransactions: Array of subtransaction objects for split transactions. Each item: {"amount": int, "category_id": "uuid", "memo": "text", "payee_id": "uuid", "payee_name": "text"}. Only amount and category_id are required per sub. The sub amounts must sum to the parent amount. When using subtransactions, omit category_id on the parent (it becomes a split). budget_id: Budget ID (uses default if omitted).

Returns: Created transaction details with id, date, amount, payee, category, and subtransactions.

update_month_category

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

Use this to move money between categories or adjust budget allocations.

Args: category_id: The category UUID to update. budgeted: New budgeted amount in milliunits (e.g., 50000 = $50.00). month: Month in YYYY-MM-DD format (first of month). Defaults to current month. budget_id: Budget ID (uses default if omitted).

Returns: Updated category with new budgeted amount, activity, and balance.

update_transaction

Update an existing transaction.

Args: transaction_id: The transaction UUID to update. account_id: Move to a different account. date: New date (YYYY-MM-DD). amount: New amount in milliunits. payee_name: New payee name. payee_id: New payee UUID. category_id: New category UUID. memo: New memo. cleared: New cleared status: "cleared", "uncleared", or "reconciled". approved: New approved status. flag_color: New flag color: red, orange, yellow, green, blue, purple. subtransactions: Array of subtransaction objects to convert this into a split transaction. Each item: {"amount": int, "category_id": "uuid", "memo": "text", "payee_id": "uuid", "payee_name": "text"}. Only amount and category_id are required per sub. The sub amounts must sum to the parent amount. When adding subtransactions, also provide the new parent amount if changing it. budget_id: Budget ID (uses default if omitted).

Returns: Updated transaction details.

delete_transaction

Delete a transaction.

Args: transaction_id: The transaction UUID to delete. budget_id: Budget ID (uses default if omitted).

Returns: Confirmation of deletion.

create_transactions_bulk

Create multiple transactions at once from a JSON string.

The JSON should contain a "transactions" array where each item has: account_id (required), date (required), amount (required in milliunits), and optionally: payee_name, payee_id, category_id, memo, cleared, approved, flag_color, subtransactions (array of {amount, category_id, memo, payee_id, payee_name}).

Args: transactions_json: JSON string with a "transactions" array. budget_id: Budget ID (uses default if omitted).

Returns: Summary of created and duplicate transactions.

get_scheduled_transactions

List all scheduled (recurring) transactions.

Args: budget_id: Budget ID (uses default if omitted).

Returns: List of scheduled transactions with frequency, next date, amount, payee, category.

create_account

Create a new account in a budget.

Args: name: Account name (e.g., "Chase Checking"). type: Account type. One of: checking, savings, cash, creditCard, lineOfCredit, otherAsset, otherLiability, mortgage, autoLoan, studentLoan, personalLoan, medicalDebt, otherDebt. balance: Starting balance in milliunits (e.g., 100000 = $100.00). budget_id: Budget ID (uses default if omitted).

Returns: Created account details with id, name, type, and balance.

get_budget_months

List all months in a budget with summary data.

Useful for trend analysis — see how income, spending, and budgeting have changed over time.

Args: budget_id: Budget ID (uses default if omitted).

Returns: List of months with income, budgeted, activity, to_be_budgeted, age_of_money.

update_category

Update a category's name, note, or goal target.

Args: category_id: The category UUID. name: New category name. note: New category note. goal_target: New goal target in milliunits (e.g., 500000 = $500.00). budget_id: Budget ID (uses default if omitted).

Returns: Updated category details.

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

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