Labsco
dizzlkheinz logo

ynab-mcp

β˜… 9

from dizzlkheinz

MCP server for YNAB. Reconcile bank statements, itemize receipts, manage transactions β€” all through natural language.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedAccount requiredNeeds API keys
<div align="center">

YNAB MCP Server

Connect YNAB to any AI assistant. Manage your budget in plain English.

Download MCPB npm License: AGPL v3 Node.js

</div>

Demo

<div align="center"> <img src="docs/assets/demo/receipt-itemization-demo-lite.gif" alt="Receipt itemization demo" width="820" /> <br/> <sub>Paste a receipt &rarr; itemized split transaction in seconds</sub> </div>

What you can do

WorkflowExample 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

<details> <summary>Show workflow diagram</summary>
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."
</details>

Tools (28)

<details> <summary>See all tools by category</summary>
CategoryTools
Budgetslist_budgets get_budget get_default_budget set_default_budget
Accountslist_accounts get_account create_account
Transactionslist_transactions get_transaction create_transaction create_transactions update_transaction update_transactions delete_transaction export_transactions compare_transactions create_receipt_split_transaction
Categorieslist_categories get_category update_category
Payeeslist_payees get_payee
Monthslist_months get_month
Reconciliationreconcile_account
Utilitiesget_user diagnostic_info clear_cache

All read tools accept response_format ("markdown" or "json", default: "markdown").

Full reference: docs/reference/API.md

</details>

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