ynab-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Host to bind HTTP server to (only when MCP_TRANSPORT=http) | 0.0.0.0 |
| PORT | No | Port to bind HTTP server to (only when MCP_TRANSPORT=http) | 8000 |
| YNAB_TOKEN | Yes | Your YNAB Personal Access Token from https://app.ynab.com/settings/developer | |
| MCP_TRANSPORT | No | Transport mode; set to 'http' for HTTP hosting | stdio |
| YNAB_BUDGET_ID | No | Optional budget ID; if empty, uses YNAB's last-used budget |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ynab_list_budgetsA | List the YNAB budgets accessible with this token, with their currency. Returns for each budget: id, name, currency iso_code, last modified date. Useful to grab a specific budget_id (otherwise use "last-used" elsewhere). |
| ynab_list_accountsA | List a budget's accounts with their balance (converted to currency units). Returns: id, name, type, on_budget (bool), current balance, closed flag. |
| ynab_list_categoriesA | List category groups and their categories, with budgeted / activity / balance. Each category: id, name, budgeted, activity, balance (all in currency units). Needed to grab a category_id before creating/categorizing a transaction. |
| ynab_list_payeesA | List a budget's payees, paginated. Returns id + name. Useful to find the id of a recurring merchant. |
| ynab_list_transactionsA | List a budget's transactions, with filters and pagination. Filter by account OR by category (not both, per the API), by date (since_date) and by type (uncategorized / unapproved). Amount is in currency units (negative = expense). Returns id, date, payee_name, amount, category_name, memo, approved, cleared. |
| ynab_create_transactionA | Create a transaction in an account. The amount is given in normal currency units (e.g. -12.50 for a 12.50 expense); conversion to milliunits is automatic. Returns the new id. |
| ynab_update_transactionA | Partially update a transaction (categorize, approve, fix a memo…). Only the provided fields change. Typical case: assign category_id + approved=true to an imported, uncategorized transaction. |
| ynab_get_budget_monthA | Budget summary for a month: to be budgeted, income, budgeted, activity, age of money. |
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 8 tools
Each tool targets a distinct operation: creating, listing, updating transactions, listing budgets, accounts, categories, payees, and retrieving budget month data. No two tools overlap in purpose.
All tool names follow the pattern `ynab_<verb>_<noun>` in snake_case, e.g., `ynab_create_transaction`, `ynab_list_accounts`. Consistent and predictable.
With 8 tools covering core CRUD and listing operations for budgets, accounts, categories, payees, and transactions, the count is well-scoped for a personal finance server.
Covers essential operations: create/update/list transactions, list budgets/accounts/categories/payees, and get budget month. Missing delete transaction is a minor gap, but typical workflows are supported.