home / mcp / ynab mcp server

YNAB MCP Server

Model Context Protocol for YNAB (you need a budget)

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "calebl-ynab-mcp-server": {
      "command": "node",
      "args": [
        "/absolute/path/to/ynab-mcp-server/dist/index.js"
      ],
      "env": {
        "YNAB_API_TOKEN": "YOUR_YNAB_API_TOKEN",
        "YNAB_BUDGET_ID": "b udget_id_example"
      }
    }
  }
}

You are running a YNAB-focused MCP server that lets an AI interact with your YNAB budgets through a set of tools. It enables conversational workflows such as listing budgets, reviewing category funding, creating and approving transactions, and auto-distributing funds based on targets, all while keeping your YNAB token secure in an environment variable.

How to use

You will run the MCP server locally and connect it to an MCP client such as Claude Desktop. The server exposes tools that let you list available budgets, get a budget summary, fetch unapproved transactions, create transactions, and approve transactions. Your Personal Access Token for YNAB is stored in the environment and is not exposed to the AI.

In practice, you start the server with a standard IO configuration that runs a local Node process and points to the built server file. When you configure a client, you provide your YNAB_API_TOKEN and optional YNAB_BUDGET_ID. The client then prompts the server for data and executes actions such as adding transactions or approving pending items.

How to install

Prerequisites you need before starting:

  • Node.js installed (recommended v14+ or as required by your project)
  • A code editor to edit configuration files (optional)
  • Access to your YNAB Personal Access Token (used as YNAB_API_TOKEN)

Install dependencies and build the server, then run or link for local development.

# Install dependencies
npm install

# Build the project
npm run build

Claude Desktop and local development setup

To use the MCP server with Claude Desktop, you can run it locally or install via Smithery.

Local development configuration example (Claude Desktop): you run the server locally with Node and point Claude to the built entry file.

{
  "mcpServers": {
    "ynab-mcp-server": {
      "command": "node",
      "args":["/absolute/path/to/ynab-mcp-server/dist/index.js"]
    }
  }
}

Publishing and runtime notes

If you publish or share the server, you can also run it via npx for quick testing. The ready-to-use CLI invocation shown here assumes you install and publish the package, then run the server as a standard MCP entry point.

# Quick test after publishing
npx ynab-mcp-server

Available tools

ListBudgets

Lists available budgets on your YNAB account, returning budget names and IDs so you can select a default budget and target actions.

BudgetSummary

Provides a summary of categories that are underfunded and accounts that are low, helping you manage funds and priorities.

GetUnapprovedTransactions

Retrieves all unapproved transactions so you can review and batch-manage them.

CreateTransaction

Creates a new transaction for a specified budget and account, enabling quick entry of expenses or transfers.

ApproveTransaction

Approves an existing transaction by its ID, allowing you to approve items surfaced from GetUnapprovedTransactions.