YNAB MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_BEARER_TOKEN | No | Optional token used to secure the MCP endpoint when running over HTTP. | |
| YNAB_ACCESS_TOKEN | Yes | Your YNAB Personal Access Token, obtained from YNAB Settings > Developer Settings. | |
| YNAB_DEFAULT_BUDGET_ID | No | Optional default budget UUID or 'last-used'. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_budgetsA | 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_accountsA | 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_categoriesA | 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_payeesB | List all payees in a budget. Args: budget_id: Budget ID (uses default if omitted). Returns: List of payees with id and name. |
| get_monthA | 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_transactionsA | 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_transactionA | 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_categoryA | 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_transactionA | 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_transactionB | 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_bulkA | 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_transactionsB | 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_accountA | 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_monthsA | 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_categoryB | 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/a1athrop/ynab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server