py-ynab-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YNAB_ACCESS_TOKEN | Yes | Your YNAB Personal Access Token from https://app.ynab.com/settings/developer |
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 |
|---|---|
| list_budgetsA | List all budgets for the authenticated YNAB user. Returns budget names, IDs, date ranges, and last modified dates. Use the budget ID with other tools to target a specific budget. |
| list_accountsA | List all accounts for a YNAB budget with balances. Args: budget_id: Budget ID to list accounts for. If not provided, uses the default budget. |
| list_categoriesA | List all categories for a YNAB budget, grouped by category group. Returns category names and IDs needed for creating transactions. Args: budget_id: Budget ID to list categories for. If not provided, uses the default budget. |
| list_payeesA | List all payees for a YNAB budget. Returns payee names and IDs. Args: budget_id: Budget ID to list payees for. If not provided, uses the default budget. |
| list_monthsA | List all budget months with summary figures. Returns each month's income, budgeted, activity, available (to-be-budgeted), and age of money. Args: budget_id: Budget ID. If not provided, uses the default budget. |
| get_monthA | Get a single budget month with per-category breakdown. Returns the month summary (income, budgeted, activity, available) plus every category's budgeted/activity/balance. Args: month: Month to retrieve (YYYY-MM-DD, first of month, e.g. "2026-03-01") or "current" for the current month. budget_id: Budget ID. Defaults to last-used budget. |
| list_transactionsA | List transactions from YNAB with optional filters. Returns transactions since the given date. Optionally filter by one of: account, category, or payee (mutually exclusive). Args: since_date: Start date (YYYY-MM-DD). Required. account_id: Filter by account UUID. category_id: Filter by category UUID. payee_id: Filter by payee UUID. type: Filter by "uncategorized" or "unapproved". budget_id: Budget ID. Defaults to last-used budget. |
| create_transactionA | Create a transaction in YNAB. Args: account_id: Account UUID. amount: Dollar amount ("-42.50" for outflow, "100.00" for inflow). date: Transaction date (YYYY-MM-DD). payee_name: Payee name (YNAB auto-creates new payees). category_id: Category UUID. memo: Transaction memo. cleared: "cleared", "uncleared", or "reconciled". approved: Whether the transaction is approved. budget_id: Budget ID. Defaults to last-used budget. dry_run: Validate and preview without creating. |
| create_transactionsA | Create multiple transactions in YNAB in a single API call. Preferred over create_transaction when creating multiple transactions to minimize rate limit usage. Args: transactions_json: JSON array of transactions. Each element: {"account_id", "amount", "date", "payee_name"?, "category_id"?, "memo"?, "cleared"?, "approved"?}. Amounts are in dollars (e.g. "-42.50"). budget_id: Budget ID. Defaults to last-used budget. dry_run: Validate and preview without creating. |
| update_transactionA | Update fields of an existing YNAB transaction. Only provide the fields you want to change. Args: transaction_id: Transaction UUID to update. account_id: New account UUID. amount: New dollar amount ("-42.50" for outflow). date: New date (YYYY-MM-DD). payee_name: New payee name. category_id: New category UUID. memo: New memo. cleared: "cleared", "uncleared", or "reconciled". approved: Whether the transaction is approved. budget_id: Budget ID. Defaults to last-used budget. dry_run: Validate and preview without updating. |
| delete_transactionB | Delete a transaction from YNAB. Args: transaction_id: Transaction UUID to delete. budget_id: Budget ID. Defaults to last-used budget. dry_run: Validate and preview without deleting. |
| update_category_budgetA | Set the budgeted (assigned) amount for a category in a specific month. Args: category_id: Category UUID. month: Month to update (YYYY-MM-DD, first of month, e.g. "2026-03-01"). amount: Dollar amount to assign (e.g. "500.00"). budget_id: Budget ID. Defaults to last-used budget. dry_run: Validate and preview without updating. |
| update_categoryA | Update category metadata in YNAB. Only provide the fields you want to change. Args: category_id: Category UUID. name: New category name. note: New category note. hidden: Whether to hide the category. budget_id: Budget ID. Defaults to last-used budget. dry_run: Validate and preview without updating. |
| list_scheduled_transactionsB | List all scheduled transactions for a YNAB budget. Returns each scheduled transaction with its frequency, next date, amount, payee, and category. Args: budget_id: Budget ID. If not provided, uses the default budget. |
| get_scheduled_transactionA | Get details of a single scheduled transaction. Returns full detail including subtransactions if present. Args: scheduled_transaction_id: Scheduled transaction UUID. budget_id: Budget ID. Defaults to last-used budget. |
| create_scheduled_transactionA | Create a scheduled (recurring) transaction in YNAB. Args: account_id: Account UUID. amount: Dollar amount ("-42.50" for outflow, "100.00" for inflow). date: First occurrence date (YYYY-MM-DD). frequency: Recurrence frequency. Only single-word values work via the YNAB API: "never", "daily", "weekly", "monthly", "yearly". Multi-word camelCase values (everyOtherWeek, twiceAMonth, etc.) are documented but rejected by YNAB's own backend — set those manually in the YNAB UI. payee_name: Payee name. category_id: Category UUID. memo: Transaction memo. flag_color: Flag color. budget_id: Budget ID. Defaults to last-used budget. dry_run: Validate and preview without creating. |
| update_scheduled_transactionA | Update fields of an existing scheduled transaction. Only provide the fields you want to change. Args: scheduled_transaction_id: Scheduled transaction UUID. account_id: New account UUID. amount: New dollar amount. date: New first date (YYYY-MM-DD). frequency: New frequency. Only single-word values work via the YNAB API: "never", "daily", "weekly", "monthly", "yearly". Multi-word values are rejected by YNAB's backend — change those in the UI. payee_name: New payee name. category_id: New category UUID. memo: New memo. flag_color: New flag color. budget_id: Budget ID. Defaults to last-used budget. dry_run: Validate and preview without updating. |
| delete_scheduled_transactionA | Delete a scheduled transaction from YNAB. Args: scheduled_transaction_id: Scheduled transaction UUID. budget_id: Budget ID. Defaults to last-used budget. dry_run: Validate and preview without deleting. |
| get_userA | Get the authenticated YNAB user. Returns the user ID. |
| get_budget_settingsA | Get budget settings including date and currency format. Args: budget_id: Budget ID. Defaults to last-used budget. |
| get_accountA | Get a single YNAB account with full details. Returns balance, type, on-budget status, note, and more. Args: account_id: Account UUID. budget_id: Budget ID. Defaults to last-used budget. |
| get_categoryA | Get a single YNAB category with budget details. Returns budgeted, activity, balance, and metadata. Args: category_id: Category UUID. budget_id: Budget ID. Defaults to last-used budget. |
| get_payeeC | Get a single YNAB payee. Args: payee_id: Payee UUID. budget_id: Budget ID. Defaults to last-used budget. |
| update_payeeA | Update a YNAB payee (rename). Args: payee_id: Payee UUID. name: New name for the payee. budget_id: Budget ID. Defaults to last-used budget. dry_run: Validate and preview without updating. |
| get_transactionB | Get a single YNAB transaction with full details. Args: transaction_id: Transaction UUID. budget_id: Budget ID. Defaults to last-used budget. |
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/duganth/py-ynab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server