Talk to your budget
in plain English.
A remote deployment of mcp-ynab, an open-source Model Context Protocol server that connects an AI assistant directly to a YNAB budget. The upstream project runs locally, one process per machine; this instance runs as a Cloudflare Container behind this Worker, so any MCP client that speaks remote connectors — Claude web included — can reach it without installing anything first.
https://budget.bryanfawcett.com/mcp
What it does
- 30+ tools — budgets, accounts, transactions, categories, payees, months, scheduled transactions, and analytics
- Delta sync — only fetches what changed since the last call, using YNAB's server knowledge
- 4-tier caching — TTL cache, delta sync, retry with backoff, persistent storage
- Search & analytics — text search across transactions, per-category spending breakdowns, money-flow data
- Bulk operations — create or update multiple transactions in a single call
- Dollar amounts — accepts plain dollars, converts to YNAB's internal format automatically
Available tools
| User | get_user |
|---|---|
| Plans | list_plans, get_plan, get_plan_settings |
| Accounts | list_accounts, get_account, create_account |
| Categories | list_categories, get_category, create_category, update_category, create_category_group, update_category_group, get_category_for_month, update_category_for_month |
| Payees | list_payees, get_payee, update_payee |
| Payee locations | list_payee_locations, get_payee_location, get_payee_locations_by_payee |
| Months | list_months, get_month |
| Money movements | list_money_movements, get_money_movements_for_month, list_money_movement_groups, get_money_movement_groups_for_month |
| Transactions | list_transactions, get_transaction, get_transactions_by_account, get_transactions_by_category, get_transactions_by_month, get_transactions_by_payee, search_transactions, create_transaction, create_transactions, update_transaction, update_transactions, delete_transaction, import_transactions |
| Scheduled | list_scheduled_transactions, get_scheduled_transaction, create_scheduled_transaction, update_scheduled_transaction, delete_scheduled_transaction |
| Analytics | get_money_flow, get_spending_by_category |
Connecting
This is a private, single-user instance — every request needs a bearer token.
In Claude web (Settings → Connectors → Add custom connector), use the
MCP endpoint above with ?token=<token> appended; clients that support
custom headers can send Authorization: Bearer <token> instead.
Running the open-source server yourself instead? See mcp-ynab.com for the local stdio setup (Claude Desktop, Claude Code, ChatGPT).