Open-source MCP server

Talk to your budget.

ynab-mcp is an open-source Model Context Protocol server that lets Claude read, analyze and, when you allow it, update your YNAB budget.

Run it with Node.js 22.14 or later:

npx -y ynab-mcp

At a glance

69 tools across the YNAB API

23 analytics tools for trends and insights

7 guided review prompts

0 writes until you turn them on

What you can ask

Once it is connected, you talk to Claude the way you'd talk to a friend who knows your budget. Claude picks the tools; you see the answer.

Read full example conversations

Quick start

You need a YNAB personal access token. Create one under Account Settings, Developer Settings in YNAB, then pick how you run Claude. The install guide covers each option in detail.

Claude Desktop

Add this to claude_desktop_config.json (Claude menu, Settings, Developer, Edit Config), replace the token, and restart Claude Desktop.

{
  "mcpServers": {
    "ynab": {
      "command": "npx",
      "args": ["-y", "ynab-mcp"],
      "env": {
        "YNAB_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}

Docker

No Node.js needed. The image is published for amd64 and arm64. In Claude Desktop:

{
  "mcpServers": {
    "ynab": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "YNAB_ACCESS_TOKEN",
        "ghcr.io/auzroz/ynab-mcp:latest"
      ],
      "env": {
        "YNAB_ACCESS_TOKEN": "your_token_here"
      }
    }
  }
}

Claude Code

Run these in Bash or Zsh (on Windows, in WSL or Git Bash). Type this first command rather than copying it, so your token stays on the clipboard, then paste the token at its prompt; it isn't echoed or kept in shell history:

read -rs YNAB_ACCESS_TOKEN

Then one command registers the server. Add --scope user to make it available in every project.

claude mcp add ynab -e YNAB_ACCESS_TOKEN="$YNAB_ACCESS_TOKEN" -- npx -y ynab-mcp
unset YNAB_ACCESS_TOKEN

claude.ai (self-hosted)

To use ynab-mcp from claude.ai or the Claude mobile apps, host it yourself in HTTP mode with YNAB OAuth, then add a custom connector pointing at your server:

https://YOUR_PUBLIC_URL/mcp

Each person signs in with their own YNAB account and chooses read-only or read-write. See Self-hosting.

How it works

ynab-mcp is a small program that runs next to Claude: on your computer, or on a server you control. Claude asks it for data in a standard way (the Model Context Protocol), and it calls the official YNAB API with your token. There is no ynab-mcp cloud service in between.

  1. ClaudeDesktop, Code, claude.ai, or any MCP client
  2. ynab-mcpRuns on your machine or your server. Validates input, caches, limits requests, logs writes.
  3. YNAB APIapi.ynab.com, with your personal access token or OAuth

What's inside

69 tools

Budgets, accounts, categories, payees, months, transactions, scheduled transactions and money movements, plus system tools. Browse them all.

Analytics built in

Recurring-charge detection, spending trends and pace, budget health, cash-flow forecasts, goal progress, net worth and reconciliation help.

Read-only by default

Write tools are hidden and refused until you set YNAB_READ_ONLY=false. A typo in that setting stops the server instead of enabling writes.

Audit log

Every write is recorded: what changed, when, and whether it worked. Names and memos are reduced to whether they were present, so the log never holds them.

Delta sync and rate limiting

Repeat reads fetch only what changed since last time, and requests stay under YNAB's limit of 200 an hour, with a 10% margin.

Multi-user OAuth

Host one instance for your household or team. Everyone connects their own YNAB account over OAuth and their data stays separate.

Where next