ynab-mcp
MCP server for YNAB. Reconcile bank statements, itemize receipts, manage transactions — all through natural language.
YNAB MCP Server
Connect YNAB to any AI assistant. Manage your budget in plain English.
Demo
What you can do
| Workflow | Example prompt |
|---|---|
| Receipt split | "Create a split transaction for this receipt and allocate tax." |
| Bank reconciliation | "Reconcile my checking account using this CSV." |
| Spending analysis | "What did I spend on takeout this month?" |
| Transaction creation | "Create a transaction: $42.18 at Trader Joe's yesterday." |
| Month overview | "Show my budget summary for January." |
How it works
graph LR
U(You) -->|Plain English| C[Claude Desktop<br/>or any MCP client]
C -->|MCP protocol| S[YNAB MCP Server<br/>28 tools]
S -->|YNAB API| Y[(Your Budget)]
style S fill:#2563EB,color:#fff,stroke:#1d4ed8
style Y fill:#16a34a,color:#fff,stroke:#15803d
style C fill:#7c3aed,color:#fff,stroke:#6d28d9
Features
- Receipt itemization — Paste a receipt, get an itemized split transaction with tax allocation automatically distributed across line items.
- Bank reconciliation (beta) — Import a bank CSV, fuzzy-match against YNAB, detect missing or mismatched transactions, and apply bulk fixes.
- 28 YNAB tools — Full coverage of budgets, accounts, transactions, categories, payees, months, and utilities.
- Delta sync — Fetches only changed data since the last request, keeping things fast.
- Markdown or JSON — All read tools support
response_format: human-readable markdown tables (default) or structured JSON. - MCP-native — Structured outputs, annotations, completions API, and resource templates.
How reconciliation works
sequenceDiagram
participant You
participant Claude
participant MCP as YNAB MCP Server
participant YNAB
You->>Claude: "Reconcile my checking<br/>with this CSV"
Claude->>MCP: reconcile_account(csv_data)
MCP->>YNAB: Fetch transactions
YNAB-->>MCP: YNAB transactions
MCP->>MCP: Parse CSV<br/>Fuzzy-match payees & dates<br/>Detect missing / mismatched
MCP-->>Claude: Matches + recommendations
Claude->>You: "Found 47 matches, 3 missing.<br/>Apply changes?"
You->>Claude: "Yes"
Claude->>MCP: Apply recommended changes
MCP->>YNAB: Create / update transactions
MCP-->>Claude: Done
Claude->>You: "3 transactions created,<br/>account reconciled."
Setup (2 minutes)
1 — Get a YNAB token
- Open YNAB Web App
- Go to Account Settings → Developer Settings → New Token
- Copy it (shown once only)
2 — Install
- Download the latest
.mcpbfrom Releases - Drag it into Claude Desktop
- Enter your
YNAB_ACCESS_TOKENwhen prompted - Restart Claude Desktop
Add to your Claude Desktop config:
{
"mcpServers": {
"ynab": {
"command": "npx",
"args": ["-y", "@dizzlkheinz/ynab-mcpb@latest"],
"env": {
"YNAB_ACCESS_TOKEN": "your-token-here"
}
}
}
}
{
"mcpServers": {
"ynab": {
"command": "npx",
"args": ["-y", "@dizzlkheinz/ynab-mcpb@latest"],
"env": {
"YNAB_ACCESS_TOKEN": "your-token-here"
}
}
}
}
[mcp_servers.ynab-mcpb]
command = "npx"
args = ["-y", "@dizzlkheinz/ynab-mcpb@latest"]
env = {"YNAB_ACCESS_TOKEN" = "your-token-here"}
startup_timeout_sec = 120
- Command:
npx - Args:
["-y", "@dizzlkheinz/ynab-mcpb@latest"] - Env:
YNAB_ACCESS_TOKEN=<your token>
3 — Try these prompts
List my budgets and set the default to my main budget.
Show recent transactions in my checking account.
How much did I spend on groceries in the last 30 days?
Create a transaction: $42.18 at Trader Joe's yesterday.
Tools (28)
| Category | Tools |
|---|---|
| Budgets | list_budgets get_budget get_default_budget set_default_budget |
| Accounts | list_accounts get_account create_account |
| Transactions | list_transactions get_transaction create_transaction create_transactions update_transaction update_transactions delete_transaction export_transactions compare_transactions create_receipt_split_transaction |
| Categories | list_categories get_category update_category |
| Payees | list_payees get_payee |
| Months | list_months get_month |
| Reconciliation | reconcile_account |
| Utilities | get_user diagnostic_info clear_cache |
All read tools accept response_format ("markdown" or "json", default: "markdown").
Full reference: docs/reference/API.md
Configuration
| Variable | Default | Description |
|---|---|---|
YNAB_ACCESS_TOKEN | — | Required. Your YNAB personal access token. |
YNAB_EXPORT_PATH | ~/Downloads | Directory for exported transaction files. |
YNAB_MCP_ENABLE_DELTA | true | Enable delta sync (only fetch changed data). |
YNAB_MCP_CACHE_DEFAULT_TTL_MS | 300000 | Cache TTL in milliseconds (5 min). |
YNAB_MCP_CACHE_MAX_ENTRIES | 1000 | Maximum cache entries before LRU eviction. |
See .env.example for all options.
Troubleshooting
| Symptom | Fix |
|---|---|
npx fails | Install Node.js 18+, then restart your MCP client. |
| Auth errors | Regenerate your YNAB token and update YNAB_ACCESS_TOKEN. |
| Tools not detected | Restart the MCP client after any config change. |
| Reconciliation issues | Open an issue with an anonymized CSV sample. |
For developers
git clone https://github.com/dizzlkheinz/ynab-mcpb.git
cd ynab-mcpb
npm install
cp .env.example .env # add YNAB_ACCESS_TOKEN
npm run build
npm test
Architecture and contributor guidance: CLAUDE.md
Reconciliation architecture: docs/technical/reconciliation-system-architecture.md
Contributing
Bug reports and CSV edge-case repros are very welcome, especially for bank reconciliation: Open an issue
PRs welcome — run npm test and npm run lint before submitting.
License
Related Servers
aibtc-mcp-server
Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg, NFTs, and x402 payments.
Tenki
A server for fetching weather information in Japan.
Wordle MCP
Fetches the Wordle solution for a specific date, available from 2021-05-19 up to 23 days in the future.
Airthings Consumer
Monitor air quality with Airthings devices.
Texas Holdem MCP Server
A Texas Hold'em poker game server with an MCP API, built using Node.js and TypeScript.
Robust Long‑Term Memory
A persistent, human‑like memory system for AI companions
Apigene MCP Gateway
Apigene MCP Gateway is the runtime layer that connects AI agents to APIs and MCP servers via Model Context Protocol.
Upstox MCP server
A MCP server for integrating with the Upstox trading API by Upstox.
Fonparam MCP
FonParam API üzerinden fonların güncel verilerini, performans istatistiklerini ve karşılaştırmalarını alabilirsiniz.
OctoEverywhere For 3D Printing
A 3D Printing MCP server that allows for querying for live state, webcam snapshots, and 3D printer control.