YNAB MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YNAB_API_TOKEN | Yes | Your Personal Access Token from YNAB (required) | |
| YNAB_BUDGET_ID | No | Your YNAB budget ID (optional) |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ynab_list_plansA | Lists all available plans from YNAB API |
| ynab_list_budgetsA | Former name of ynab_list_plans. |
| ynab_get_unapproved_transactionsA | Gets every unapproved transaction in a plan, optionally limited to those on or after a given date. |
| ynab_plan_summaryA | Get a summary of the plan for a specific month highlighting overspent categories that need attention and categories with a positive balance that are doing well. |
| ynab_budget_summaryD | Former name of ynab_plan_summary. |
| ynab_create_transactionA | Creates a new transaction in your YNAB plan. The account can be given as accountId or accountName, and the category as categoryId or categoryName - names are fuzzy-matched against the plan. Either payeeId or payeeName must also be provided. |
| ynab_approve_transactionA | Approves an existing transaction in your YNAB plan. |
| ynab_update_category_budgetA | Updates the budgeted amount for a category in a specific month. Use this to allocate funds to categories or move money between categories. |
| ynab_update_transactionA | Updates an existing transaction. All fields except transactionId are optional - only provide fields you want to change. |
| ynab_bulk_approve_transactionsA | Approves multiple transactions at once. Provide an array of transaction IDs to approve them all in a single API call. |
| ynab_list_payeesA | Lists all payees in a plan. Useful for finding payee IDs when creating transactions. |
| ynab_get_transactionsB | Gets transactions from a plan with optional filters. Can filter by date range, account, category, payee, or approval status. |
| ynab_delete_transactionA | Deletes a transaction from the plan. This action cannot be undone. |
| ynab_list_categoriesA | Lists all categories in a plan, grouped by category group. Useful for finding category IDs when creating transactions or updating budgeted amounts. |
| ynab_list_accountsA | Lists all accounts in a plan. Useful for finding account IDs when creating transactions. |
| ynab_list_scheduled_transactionsA | Lists all scheduled (recurring) transactions in a plan. |
| ynab_import_transactionsA | Imports available transactions on all linked accounts for the plan. This triggers an import from connected financial institutions (equivalent to clicking 'Import' in the YNAB app). |
| ynab_list_monthsA | Lists all plan months. Each month contains summary information about budgeting status. |
| ynab_move_moneyA | Moves budgeted money from one category to another in a given month, typically to cover overspending. YNAB has no single move endpoint, so this reads both categories and rewrites their budgeted amounts; if the second write fails the response says exactly which half was applied. |
| ynab_auto_assignA | Distributes Ready to Assign across categories whose monthly goal is not yet fully funded, largest shortfall first, until the money runs out. Set dryRun to see the plan without changing anything. |
| ynab_spending_by_categoryA | Totals spending per category over a date range, biggest spend first. Splits are counted through their subtransactions, and transfers between your own accounts are excluded. |
| ynab_spending_by_payeeA | Totals spending per payee over a date range, biggest spend first - where the money actually goes by merchant. Splits are counted through their subtransactions, and transfers between your own accounts are excluded. |
| ynab_cash_flowA | Income versus spending, month by month, so you can see whether you are running a surplus. Uses YNAB's own monthly totals rather than re-adding transactions. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 23 tools
Most tools target distinct resources, but there is real overlap: ynab_list_budgets duplicates ynab_list_plans, ynab_budget_summary duplicates ynab_plan_summary, and ynab_get_unapproved_transactions overlaps with ynab_get_transactions. The approval tools also have single and bulk variants that could be conflated, though the descriptions help.
Tool names consistently use the ynab_ prefix and mostly follow a verb_noun pattern like ynab_list_accounts and ynab_create_transaction. The mix of list/get and the plan/budget terminology shift is slightly inconsistent, but the overall convention is predictable.
23 tools is at the high end and includes duplicate legacy aliases that inflate the count. The core operations are broad enough to justify many tools, but the surface feels heavier than necessary for a focused budgeting server.
Transactions, approvals, categories, budgets, payees, accounts, and reporting are well covered, and the create/read/update/delete lifecycle for transactions is complete. Notable gaps remain for scheduled transactions, which can only be listed, and for managing categories/payees themselves.