# YNAB — MCP server on mcp.ai > Connect your YNAB account and use 27 tools for accounting straight from your AI agent. Connect in one click, no API key needed. YNAB (You Need A Budget) is a budgeting tool helping users track expenses, plan finances, and gain control over spending to reduce debt. By: mcp.ai · official Page: https://mcp.ai/ynab ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_ynab?ms=1787293560000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/ynab/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/ynab/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/ynab/skill.md Postman collection (v2.1): https://mcp.ai/ynab/postman.json ## Tools - ynab_create_account(account: object, budget_id: string) — Tool to create a new account in a budget. Use when you need to add a manual (non-linked) account to a specific budget. - ynab_create_scheduled_transaction(budget_id: string, scheduled_transaction: object) — Creates a scheduled (recurring) transaction in a YNAB budget. Use this to set up bills, recurring expenses, or income that repeats on a schedule. Requires an account_id (from YNAB_LIST_ACCOUNTS), a da - ynab_delete_scheduled_transaction(budget_id: string, scheduled_transaction_id: string) — Permanently deletes a scheduled transaction from a YNAB budget. Use this when a recurring transaction is no longer needed. This action cannot be undone. Obtain the scheduled_transaction_id from list_s - ynab_get_account_by_id(budget_id: string, account_id: string) — Tool to retrieve a single account resource. Use when you need details of a specific account by its ID after determining the budget. - ynab_get_budget_by_id(budget_id: string, last_knowledge_of_server?: integer) — Retrieve a complete budget export by ID, including all accounts, categories, payees, and transactions. Use this tool when you need comprehensive budget data. The response includes: - Budget metadata ( - ynab_get_budget_month(month: string, budget_id: string) — Tool to retrieve a specific budget month. Use when you need detailed summary and category budgets for a given month after confirming the budget ID. Monetary amounts are returned in milliunits (divide - ynab_get_budget_settings(budget_id: string) — Tool to retrieve budget-level settings. Use when you need to fetch currency and date formatting preferences for a specific budget. - ynab_get_category_by_id(budget_id: string, category_id: string) — Retrieve a single YNAB budget category by its ID. Use this to get detailed category information including budgeted amounts, activity, balance, and goal settings. Amounts are returned for the current b - ynab_get_month_category_by_id(month: string, budget_id: string, category_id: string) — Tool to retrieve a single category for a specific budget month. Use after selecting the budget and month when you need month-specific category details. - ynab_get_payee_by_id(payee_id: string, budget_id: string) — Tool to retrieve a single payee by its ID. Use when you need full details of a payee after confirming the budget and payee selection. - ynab_get_scheduled_transaction_by_id(budget_id: string, scheduled_transaction_id: string) — Tool to retrieve a single scheduled transaction. Use when you need details of a specific scheduled transaction by its ID after confirming the budget. - ynab_get_transaction_by_id(budget_id: string, transaction_id: string) — Tool to retrieve a single transaction by its ID. Use when you need detailed information for a specific transaction after confirming the budget. - ynab_get_user() — Tool to retrieve the authorized user's information. Use after authentication to get current user details. - ynab_list_accounts(budget_id: string, last_knowledge_of_server?: integer) — Retrieves all accounts for a specified YNAB budget. Use this tool to: - Get a complete list of accounts (checking, savings, credit cards, loans, etc.) in a budget - Retrieve account IDs for use with o - ynab_list_budgets(include_accounts?: boolean) — Retrieves all budgets accessible to the authenticated YNAB user. Use this tool to: - Get a list of all budgets in the user's YNAB account - Retrieve budget IDs for use with other YNAB operations - Opt - ynab_list_categories(budget_id: string, last_knowledge_of_server?: integer) — Tool to list all category groups and their categories for a budget. Use when you need the full set of budget categories or only those changed since last sync. Category names may include emojis or near - ynab_list_months(budget_id: string, last_knowledge_of_server?: integer) — Tool to list months for a budget with summary information. Use when you need an overview of all months or only changed months since a given knowledge value (delta requests). - ynab_list_payee_locations(budget_id: string) — Retrieves all GPS locations associated with payees in a budget. Payee locations are recorded when transactions are saved using the YNAB mobile apps, storing GPS coordinates to help pre-populate nearby - ynab_list_payee_locations_by_payee(payee_id: string, budget_id: string) — Retrieves all GPS locations associated with a specific payee in a budget. Payee locations are recorded when transactions are saved using the YNAB mobile apps, storing GPS coordinates to help pre-popul - ynab_list_payees(budget_id: string, last_knowledge_of_server?: integer) — Tool to list payees in a budget. Use when you need all payees or only those changed since a known server knowledge value. - ynab_list_scheduled_transactions(budget_id: string, last_knowledge_of_server?: integer) — List all scheduled (recurring) transactions for a YNAB budget. Returns future-dated transactions that repeat on a schedule (e.g., rent, subscriptions, paychecks). Supports delta sync to fetch only cha - ynab_list_transactions(type?: string, budget_id: string, since_date?: string, last_knowledge_of_server?: integer) — Tool to list transactions in a budget. Use when you need all or delta-filtered transactions after confirming the budget. Omitting all filters returns the full transaction history, which may produce la - ynab_list_transactions_by_account(type?: string, budget_id: string, account_id: string, since_date?: string, last_knowledge_of_server?: integer) — Tool to list transactions for a specific account. Use when you need all or delta-filtered transactions for a given account after confirming the budget and account ID. - ynab_list_transactions_by_category(type?: string, budget_id: string, since_date?: string, category_id: string, last_knowledge_of_server?: integer) — Tool to list transactions for a specific category (excludes pending). Use when you need completed transactions for a given category after obtaining budget_id and category_id. Response includes deleted - ynab_list_transactions_by_payee(type?: string, payee_id: string, budget_id: string, since_date?: string, last_knowledge_of_server?: integer) — Tool to list transactions for a specific payee in a budget. Use when you need to fetch all non-pending transactions for a payee after confirming budget and payee IDs. - ynab_update_payee(name: string, payee_id: string, budget_id: string) — Tool to update a payee. Use when you need to rename an existing payee. - ynab_update_scheduled_transaction(budget_id: string, scheduled_transaction: object, scheduled_transaction_id: string) — Update an existing scheduled transaction in YNAB. Allows modifying the date, frequency, amount, payee, category, memo, or account of a scheduled transaction. Use YNAB_LIST_SCHEDULED_TRANSACTIONS first ## Example prompts - "What can I do in YNAB?" - "Show me a summary of my YNAB account" ## Links Docs: https://mcp.ai/docs/mcps/ynab Website: https://mcp.ai/mcps/ynab