Ynab MCP logo

Ynab MCP

Connects AI assistants to YNAB for budget queries, spending analytics, and optional account changes.

Install Ynab MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "ynab-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ynab-mcp"
      ],
      "env": {
        "YNAB_ACCESS_TOKEN": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

ynab-mcp MCP server connects AI assistants to YNAB through the YNAB API, exposing 69 MCP tools for budget data, transactions, accounts, and financial analysis. It runs locally over stdio or remotely over Streamable HTTP, with optional YNAB OAuth for multi-user deployments. Read-only mode is enabled by default, while write operations require explicit opt-in. Reach for it when you want conversational access to budget status, spending trends, recurring payments, net worth, or savings opportunities.

Use cases

  • Analyze spending by category or payee
  • Detect recurring payments and subscriptions
  • Check budget health and spending pace
  • Forecast cash flow from scheduled transactions
  • Review net worth and goal progress

Key features

  • 69 MCP tools across YNAB API coverage and analytics
  • Read-only operation by default
  • Spending trends, forecasts, and budget-health analysis
  • stdio and Streamable HTTP transports
  • YNAB OAuth support for multi-user hosting
  • TTL caching and delta synchronization

Tools25

What Ynab MCP lets your agent do. Expand a tool for its parameters.

Self-reported~405 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 8h ago via OSV.dev · ynab-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars5Stargazers on the source repository.
npm downloads1.3kPackage downloads in the last 30 days.
Last commit1d agoMost recent push to the default branch.
Tools exposed25Callable tools this server registers over MCP.

How Ynab MCP works

What ynab-mcp does

ynab-mcp connects an MCP-compatible client to a YNAB account and makes budget information available through natural-language requests. Its 69 tools combine broad YNAB API coverage with custom analytics, allowing an assistant to inspect budgets, transactions, categories, accounts, and scheduled activity, then calculate higher-level financial insights.

The analytics set includes recurring-payment detection, spending analysis, budget-health scoring, savings opportunities, budget-versus-actual comparisons, net-worth calculations, goal-progress tracking, cash-flow forecasting, reconciliation assistance, spending pace, and month-over-month comparisons. The server is useful for questions such as how much was spent in a category, whether spending is on track, or where expenses could be reduced.

How it works

Local deployments use stdio by default. The server can also expose MCP Streamable HTTP at POST /mcp, with GET /health available for load-balancer checks. HTTP sessions have per-user isolation for the cache, rate limiter, and audit log. A single-user HTTP setup can pass a YNAB token through the X-YNAB-Token header, with YNAB_ACCESS_TOKEN available as a fallback.

For multi-user hosting, configure a YNAB OAuth application, ENCRYPTION_KEY, and PUBLIC_URL. In that mode, the server acts as an OAuth 2.1 authorization server federated to YNAB, allowing users to connect their own accounts and choose read-only or read-write access during consent.

Caching includes TTL handling for slower-changing data and delta synchronization using YNAB's last_knowledge_of_server value. Requests are governed by a token-bucket limiter set around a 180-request-per-hour budget with a safety margin.

Setup and configuration

A YNAB account with API access and a Personal Access Token is required for the basic setup. Run the package directly with npx -y ynab-mcp, use the published Docker image, or build it from source with npm. Node.js 22.14 or newer is indicated for source-based use.

Set YNAB_ACCESS_TOKEN to the Personal Access Token. YNAB_BUDGET_ID can select a default budget; otherwise the server uses YNAB's last-used budget. YNAB_READ_ONLY defaults to true; set it to false to enable write operations.

Set MCP_TRANSPORT=http for remote mode. PORT controls the HTTP port and defaults to 3000. Remote deployments can also configure host and origin allowlists, session limits, idle timeouts, the MCP resource URL, and DNS-rebinding protection. DNS-rebinding checks are enabled by default. HTTP deployments should be served behind TLS.

Claude Desktop can launch the server with an MCP configuration that invokes npx, Docker, or a locally built Node.js entry point.

Tools and capabilities

The server groups its tools into:

  • 43 tools covering YNAB API functionality.
  • 23 analytics tools for trends, recurring payments, forecasts, budget status, and related insights.
  • 3 system tools.

Named analytics tools include ynab_net_worth, ynab_detect_recurring, ynab_budget_health, ynab_spending_pace, ynab_monthly_comparison, ynab_savings_opportunities, ynab_spending_analysis, and ynab_list_category_transactions. Write-capable API operations are protected by the read-only default and become available only when explicitly enabled.

Limitations and notes

YNAB API access and a valid token are needed to retrieve account data. The default read-only behavior is intended to prevent accidental changes, but enabling writes changes that safety posture. Rate limiting applies to API requests, and cached or delta-synchronized reads may not fetch the entire dataset on every request.

Remote multi-user installations use a SQLite or PostgreSQL database whose schema is migrated in place at startup. Deployers should back up that database before upgrading. HTTP mode also requires careful host, origin, TLS, and session configuration, particularly when placed behind a proxy.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Ynab MCP

ynab-mcp is an MCP server that connects AI assistants to YNAB through its API. It provides 69 tools for reading budgets, transactions, accounts, and categories, plus analytics for spending trends, recurring payments, budget health, net worth, cash flow, goals, and savings opportunities. Read-only mode is enabled by default.

Install it by running `npx -y ynab-mcp`, launching the published Docker image, or cloning the repository and building it with npm. Set `YNAB_ACCESS_TOKEN` to a YNAB Personal Access Token, then configure your MCP client to start the package, Docker container, or built Node.js entry point.

Yes. Claude Desktop can run ynab-mcp over stdio using an `npx` command, Docker, or a local Node.js build. Add the server under `mcpServers` in Claude Desktop's configuration and provide `YNAB_ACCESS_TOKEN` in the environment.

Yes. Set `MCP_TRANSPORT=http` to expose Streamable HTTP at `POST /mcp`; the default port is 3000 and `GET /health` is available for load balancers. HTTP mode supports single-user header authentication and multi-user YNAB OAuth deployments.

Set `YNAB_READ_ONLY=false` to enable write operations. The default is `true`, so the server starts in read-only mode and requires explicit configuration before tools that modify YNAB data can be used.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewYnab MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/ynab-mcp?style=directory)](https://allmcps.com/mcp/ynab-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/ynab-mcp"><img src="https://allmcps.com/api/badge/ynab-mcp?style=directory" alt="Ynab MCP on AllMCPs" /></a>