MCP YNAB Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YNAB_API_KEY | Yes | Your YNAB API key obtained from YNAB Developer Settings (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 |
|---|---|
| set_preferred_budget_idA | Set the preferred YNAB budget ID. |
| pingA | Verify YNAB API auth by fetching the current user's id. |
| executeA | Execute a Python snippet against the gated |
| searchA | Discover available YNAB tools by running a Python snippet against the tool catalog. |
| set_api_keyA | Store a YNAB personal access token in the OS keychain. |
| clear_api_keyA | Remove the stored YNAB API key from the OS keychain (env var unaffected). |
| get_preferencesA | Return the current YNAB MCP preferences as a markdown table. |
| set_preferenceA | Set a single preference and persist it to |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| weekly_review | Walk through the weekly transaction-cleanup workflow. |
| monthly_budget_check | Mid- or end-of-month sanity check: overspending and reallocation. |
| move_money_interactive | Interactive reallocation between two categories. |
| fund_sinking_categories | Rule 2: allocate to non-monthly true-expense categories. |
| categorize_recent | Batch-categorize recent transactions for an account or budget. |
| spending_by_payee | Top-N payee spending report with period-over-period delta. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_preferred_budget_id | Get the preferred YNAB budget ID. |
| get_preferences_resource | Return all preferences as a markdown table; mirrors the ``get_preferences`` tool. |
| get_code_mode_stubs | Return Python type stubs for the current Code Mode namespace. |
| get_code_mode_examples | Return curated examples for the Python Code Mode runner. |
| list_budgets_resource | List all (non-closed/non-deleted) budgets as a markdown table. |
TDQS
Scored across 8 tools
Most tools are distinct, but set_preferred_budget_id and set_preference overlap directly, with the description explicitly noting both write the same default_budget_id field. execute and search are also similar in form, though their targets are clearly differentiated by the descriptions.
Tool names consistently use lowercase snake_case with imperative verbs like set, get, clear, and ping. Minor inconsistency exists between get_preferences (plural) and set_preference (singular), but the overall pattern is predictable.
Eight tools is a well-scoped count for this server. Each tool covers a clear concern: auth, key management, preferences, discovery, and dynamic YNAB API execution.
The server covers its configuration and auth lifecycle thoroughly, and execute provides broad access to the YNAB Code Mode API while search enables discovery. The main limitation is that direct YNAB operations are not exposed as first-class tools, requiring agents to construct snippets.