npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@jean.gnc/ynab-mcp-server

v1.1.3

Published

MCP server for YNAB API

Readme

YNAB MCP Server

Talk to your finances.

What is this?

YNAB (You Need A Budget) is a popular budgeting app that helps you gain control of your money. This MCP server connects AI assistants to your YNAB data, giving you conversational access to:

  • Your budgets and accounts
  • Transaction history and patterns
  • Category balances and spending insights
  • Scheduled and recurring transactions
  • Creating and managing transactions
  • Updating category budgets
  • Creating accounts

Installation

Via npx (recommended)

No installation required. Configure your Claude client to use npx directly (see below).

Via npm (global)

npm install -g ynab-mcp-server

From source

git clone https://github.com/jeangnc/ynab-mcp-server.git
cd ynab-mcp-server
make install
make build

Configuration

First, set your YNAB API token in your shell profile (~/.zshrc or ~/.bashrc):

export YNAB_API_TOKEN="your-token-here"

Claude Code

claude mcp add ynab --scope user --env YNAB_API_TOKEN='${YNAB_API_TOKEN}' -- npx -y ynab-mcp-server

Claude Desktop

Add to ~/.config/claude/claude_desktop_config.json (Linux) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "ynab": {
      "command": "npx",
      "args": ["-y", "ynab-mcp-server"],
      "env": {
        "YNAB_API_TOKEN": "${YNAB_API_TOKEN}"
      }
    }
  }
}

Manual usage

YNAB_API_TOKEN=$YNAB_API_TOKEN npx ynab-mcp-server

Available Tools

Read Tools

| Tool | Description | |------|-------------| | list_budgets | Get all budgets for the authenticated user. Returns budget names, IDs, and last modified dates. | | get_budget | Get detailed information about a specific budget including accounts, categories, and settings. | | list_accounts | Get all accounts for a budget. Returns account names, types, balances, and status. | | get_account | Get detailed information about a specific account. | | list_categories | Get all categories for a budget, grouped by category group. Includes budgeted amounts and activity. | | get_category | Get detailed information about a specific category including current month data. | | list_transactions | Get transactions for a budget. Supports filtering by date, type, category, payee, and account. | | get_transaction | Get detailed information about a specific transaction. | | list_payees | Get all payees for a budget. | | list_scheduled_transactions | Get all scheduled/recurring transactions for a budget. | | list_months | Get all budget months. Returns month summaries with income, budgeted, and activity totals. | | get_month | Get detailed budget information for a specific month including all category balances. |

Write Tools

| Tool | Description | |------|-------------| | create_transaction | Create a new transaction. Amount should be negative for expenses and positive for income. | | update_transaction | Update an existing transaction. Only provide the fields you want to change. | | delete_transaction | Delete an existing transaction. | | update_category_budget | Update the budgeted amount for a category in a specific month. | | create_account | Create a new account in the budget. | | get_scheduled_transaction | Get detailed information about a specific scheduled transaction. | | create_scheduled_transaction | Create a new scheduled/recurring transaction. Date must be in the future (max 5 years). | | update_scheduled_transaction | Update an existing scheduled transaction. Only provide fields you want to change. | | delete_scheduled_transaction | Delete an existing scheduled transaction. | | update_payee | Update a payee's name. The name must be a maximum of 500 characters. |

History Tools

| Tool | Description | |------|-------------| | list_history | List recent write operations with their IDs for undo. Operations are listed in reverse chronological order (newest first). | | get_history_entry | Get detailed information about a specific history entry including before/after state. | | undo_operation | Revert a previous write operation by its history entry ID. |

History & Undo

The server tracks all write operations (transactions, scheduled transactions, category budgets, payees, and accounts) and allows you to undo them.

How it works

  • All write operations are automatically recorded to ~/.ynab-mcp-history.json
  • History persists across server restarts
  • Up to 100 operations are retained (oldest are automatically removed)
  • Use list_history to see recent operations and their IDs
  • Use undo_operation with an entry ID to revert a change

Supported undo operations

| Operation | Undo Action | |-----------|-------------| | Create transaction | Deletes the created transaction | | Update transaction | Restores to previous state | | Delete transaction | Recreates the transaction (new ID) | | Create scheduled transaction | Deletes the created scheduled transaction | | Update scheduled transaction | Restores to previous state | | Delete scheduled transaction | Recreates the scheduled transaction (new ID) | | Update category budget | Restores previous budgeted amount | | Update payee | Restores previous name | | Create account | Cannot be undone (YNAB API limitation) |

Limitations

  • Account creation cannot be undone: The YNAB API does not support deleting accounts
  • Recreated transactions get new IDs: When undoing a delete, the transaction is recreated with a new ID
  • External changes: If data is modified outside the MCP server, undo may fail or produce unexpected results
  • Old history entries: Very old entries may reference entities that no longer exist

Makefile Commands

make install  # Install dependencies
make build    # Compile TypeScript
make run      # Run compiled server
make dev      # Run TypeScript directly
make clean    # Remove build artifacts