ynab-mcpb
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YNAB_EXPORT_PATH | No | Optional directory for exported transaction files. | |
| YNAB_ACCESS_TOKEN | Yes | Your YNAB personal access token, obtained from Account Settings -> Developer Settings in the YNAB Web App. | |
| YNAB_MCP_ENABLE_DELTA | No | Enable/disable delta sync optimization (defaults to 'true'). | true |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ynab_list_budgetsA | List all YNAB budgets for the authenticated user. Args:
Returns: budgets[], cached, cache_info Examples:
Errors:
|
| ynab_get_budgetA | Get summary information for a specific YNAB budget. Args:
Returns: budget (id, name, currency_format, accounts_count, categories_count, payees_count, months_count) Examples:
Errors:
|
| ynab_list_payeesA | List all payees for a budget with pagination. Args:
Returns: payees[], total_count, returned_count, offset, has_more, next_offset, cached, cache_info Examples:
Errors:
|
| ynab_get_payeeA | Get details for a specific payee. Args:
Returns: payee (id, name, transfer_account_id, deleted), cached, cache_info Errors:
|
| ynab_list_categoriesA | List all budget categories for a budget with pagination. Args:
Returns: categories[], category_groups[], total_count, returned_count, offset, has_more, next_offset, cached, cache_info Examples:
Errors:
|
| ynab_get_categoryA | Get current month details for a specific budget category. Args:
Returns: category (id, name, budgeted, activity, balance, goal_type, goal_target, goal_percentage_complete), cached, cache_info Errors:
|
| ynab_update_categoryA | Update the budgeted amount for a category in the current month. Args:
Returns: updated category with new budgeted, activity, balance. Examples:
Errors:
Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview. |
| ynab_list_accountsA | List all accounts for a budget. Args:
Returns: accounts[], total_count, returned_count, offset, has_more, next_offset, cached, cache_info Examples:
Errors:
|
| ynab_get_accountA | Get details for a single account including current balance. Args:
Returns: account (id, name, type, balance, cleared_balance, uncleared_balance, on_budget, closed), cached, cache_info Errors:
|
| ynab_create_accountA | Create a new account in a YNAB budget. Args:
Returns: account object with id, name, type, balance fields. Examples:
Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview. |
| ynab_get_monthA | Get full budget data for a specific month including all category balances. Args:
Returns: month (month, income, budgeted, activity, to_be_budgeted, age_of_money, categories[]), cached, cache_info Examples:
Errors:
|
| ynab_list_monthsA | List summary data for all budget months with pagination. Args:
Returns: months[], total_count, returned_count, offset, has_more, next_offset, cached, cache_info Examples:
Errors:
|
| ynab_list_transactionsA | List transactions for a budget with optional filtering and pagination. Args:
Returns: transactions[], total_count, returned_count, offset, has_more, next_offset, cached, cache_info Examples:
Errors:
|
| ynab_export_transactionsA | Export all transactions for a budget to a local JSON file. Args:
Returns: file_path, transaction_count, file_size_kb Examples:
Errors:
|
| ynab_get_transactionA | Get full details for a single transaction by ID. Args:
Returns: transaction (id, date, amount, memo, cleared, approved, account_id, payee_name, category_name, subtransactions), cached, cache_info Errors:
|
| ynab_create_transactionA | Create a single transaction in YNAB. Args:
Use "subtransactions" for manual split transactions. Use "ynab_create_receipt_split_transaction" when you have itemized receipt data and want proportional tax allocation handled for you. Advanced: "import_id" is supported, but it is intentionally not part of normal guidance. Usually omit it if you want the transaction to remain eligible for later bank-import matching. Returns: created transaction with account_balance. Examples:
Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview. |
| ynab_create_transactionsA | Create 1–100 transactions in a single batch with duplicate detection and dry-run support. Args:
Returns: summary (created, duplicates, failed), results[], transactions[]. Examples:
Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview. |
| ynab_create_receipt_split_transactionA | Create a split transaction from itemized receipt data with proportional tax allocation. Args:
Use this helper when you have receipt line items and want tax allocated across categories automatically. For generic manual split transactions without receipt/tax logic, use "ynab_create_transaction" with "subtransactions". Returns: transaction with subtransactions and receipt_summary. Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview. |
| ynab_update_transactionA | Update fields on an existing YNAB transaction. Args:
Returns: updated transaction with updated_balance. Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview. |
| ynab_update_transactionsA | Update 1–100 transactions in a single batch with dry-run preview. Args:
Returns: summary (updated, failed), results[], transactions[]. Examples:
Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview. |
| ynab_delete_transactionA | Delete a transaction from YNAB. This action is irreversible. Args:
Returns: deleted transaction id and updated account balance. Errors:
Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview. |
| ynab_list_scheduled_transactionsA | List scheduled transactions with delta caching and pagination. Amounts are returned in decimal currency and explicit milliunits. |
| ynab_get_scheduled_transactionB | Get one scheduled transaction by ID. |
| ynab_create_scheduled_transactionA | Create a recurring scheduled transaction. Prefer amount_decimal; amount_milliunits is available for already-converted values. Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview. |
| ynab_update_scheduled_transactionA | Update selected fields on a scheduled transaction. Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview. |
| ynab_delete_scheduled_transactionA | Delete a scheduled transaction. Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview. |
| ynab_analyze_spendingA | Deterministically calculate income, spending, and net totals for an inclusive date range, grouped by category, payee, account, week, or month. Aggregates always use the complete fetched period before grouping. |
| ynab_compare_spending_periodsA | Deterministically compare two complete spending periods and calculate total and per-group differences. |
| ynab_compare_transactionsA | Compare bank CSV transactions with YNAB transactions to find missing or mismatched entries. Args:
Returns: comparison report with matched, unmatched_bank, unmatched_ynab transactions. |
| ynab_reconcile_accountA | Guided account reconciliation: match bank CSV transactions to YNAB, detect discrepancies, and optionally execute bulk create/update/unclear operations. Args:
Returns: human-readable reconciliation narrative + structured JSON (unmatched_bank, unmatched_ynab, suggestions, execution_summary when actions are performed). Examples:
Write safety: call without confirmation_token to preview. Execute the identical validated request with the short-lived confirmation_token returned by that preview. |
| ynab_get_userA | Get information about the authenticated YNAB user. Args:
Returns: user (id) Errors:
|
| ynab_set_default_budgetA | Set a default budget so other tools don't require budget_id every call. Args:
Returns: success, default_budget_id, cache_warm_started. Examples:
Errors:
|
| ynab_get_default_budgetA | Get the currently configured default budget ID. Args:
Returns: default_budget_id (null if not set), has_default. |
| ynab_diagnostic_infoA | Get comprehensive diagnostic information about the MCP server (health, cache, delta, security). Args:
Returns: diagnostics object with requested sections. |
| ynab_clear_cacheA | Clear all in-memory caches. Safe operation — no YNAB data is modified. Args: (none) Returns: success. Use when: you need fresh data after external YNAB changes, or to free memory. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create-transaction | Create a new transaction in YNAB |
| budget-summary | Get a summary of your budget status |
| reconcile-account | Reconcile a YNAB account against a bank statement or CSV export |
| account-balances | Check balances across all accounts |
| weekly-budget-review | Review deterministic spending and budget status for a week |
| uncategorized-transaction-review | Find and review uncategorized transactions without guessing categories |
| month-end-close | Run a read-first month-end budget close checklist |
| spending-period-comparison | Compare two periods using server-calculated spending totals |
| scheduled-cash-flow-review | Review scheduled inflows and outflows without claiming a forecast model |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| YNAB Budgets | List of all available budgets |
| YNAB User Info | Current user information including ID and email address |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/dizzlkheinz/ynab-mcpb'
If you have feedback or need assistance with the MCP directory API, please join our Discord server