Skip to main content
Glama
You Need A Budget (YNAB) MCP

You Need A Budget (YNAB) MCP

by Jtewen

YNAB MCP Server

PyPI version License: MIT

A Model Context Protocol (MCP) server for seamless integration with You Need A Budget (YNAB). This server enables AI assistants to interact with your YNAB budgets, providing powerful automation and analysis capabilities.

Quick Installation (Claude Desktop)

{
  "mcpServers": {
    "ynab-mcp": {
      "command": "uvx",
      "args": ["ynab-mcp-server"],
      "env": {
        "YNAB_PAT": "your_token_here",
      }
    }
  }
}

Optional environment variables:

"env": {
  "YNAB_DEFAULT_BUDGET_ID": "your_budget_id",
  "YNAB_READ_ONLY": "true"
}

Related MCP server: Personal Finance AI MCP

Features

  • Complete Budget Management

    • View and manage multiple budgets

    • Track account balances and transactions

    • Monitor category spending and goals

  • Transaction Control

    • List and search transactions

    • Update transaction details

    • Manage payees and categories

  • Financial Analysis

    • Get comprehensive financial overviews

    • Track spending patterns

    • Monitor budget progress

Table of Contents

Installation & Usage

No installation needed when using uvx:

# Run directly (recommended)
uvx ynab-mcp-server

# Or with specific version
uvx ynab-mcp-server@0.1.1

For development:

# Clone and run from source
git clone https://github.com/yourusername/ynab-mcp-server.git
cd ynab-mcp-server
uv run ynab-mcp-server

Platform-Specific Setup

Claude Desktop

  1. Locate your configuration file:

    • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%/Claude/claude_desktop_config.json

    • Linux: ~/.config/Claude/claude_desktop_config.json

  2. Add the YNAB MCP server configuration:

{
  "mcpServers": {
    "ynab-mcp": {
      "command": "uvx",
      "args": ["ynab-mcp-server"],
      "env": {
        "YNAB_PAT": "your_token_here"
      }
    }
  }
}

Optional environment variables:

env: {
  "YNAB_DEFAULT_BUDGET_ID": "your_budget_id",
  "YNAB_READ_ONLY": "true"
}

Goose

  1. Open Goose settings

  2. Navigate to the MCP Servers section

  3. Add a new server with:

    • Name: ynab-mcp

    • Command: uvx ynab-mcp-server

    • Environment Variables:

      • YNAB_PAT: your_token_here

Other Platforms

For other MCP-compatible platforms, configure using these parameters:

  • Server Name: ynab-mcp

  • Command: uvx

  • Arguments: ynab-mcp-server

  • Required Environment Variable: YNAB_PAT

Configuration

Your server can be configured using environment variables. You can place these in a .env file in the project root or set them in your shell.

Variable

Required

Description

YNAB_PAT

Yes

Your YNAB Personal Access Token.

YNAB_DEFAULT_BUDGET_ID

No

If set, the server operates in single-budget mode, always using this budget ID. The list-budgets tool will be hidden.

YNAB_READ_ONLY

No

Set to true to disable all tools that make changes to your YNAB data.

Getting Your YNAB Token

  1. Get Your YNAB Token

  2. Set Up Environment

    Create a .env file in your working directory:

    YNAB_PAT="your_token_here"
    YNAB_DEFAULT_BUDGET_ID="your_budget_id"
    YNAB_READ_ONLY="true"

    Or set the environment variable directly:

    export YNAB_PAT="your_token_here"

Available Tools

The server provides a suite of tools for interacting with your YNAB data. The descriptions explain the purpose and recommended usage for each tool.

Tool

Description

manage-financial-overview

Get, update, or refresh a high-level financial overview. This is the best starting point for any analysis, providing account balances, goals, and important context notes.

list-accounts

List all accounts for a given budget. Useful for getting account IDs for other tools.

get-month-info

Get detailed budget information for a single month, including age of money and total amounts budgeted, spent, and available. Call this to check the monthly budget's status before making changes.

list-categories

List all categories, groups, and their budgeting details. Call this before managing budgeted amounts to see what's available and what's already been allocated.

list-transactions

List transactions for a specific account or an entire month. Use this to investigate spending patterns identified in the financial overview.

list-scheduled-transactions

List all upcoming scheduled transactions. Useful for forecasting upcoming bills.

manage-budgeted-amount

Assign a budgeted amount to a category or move money between categories. This is the primary tool for allocating funds. (Write operations disabled in read-only mode)

bulk-manage-transactions

Create, update, or delete multiple transactions at once. More efficient than making single changes. (Write operations disabled in read-only mode)

manage-scheduled-transaction

Create, update, or delete a single scheduled (recurring) transaction. Use this to manage recurring bills or savings transfers. (Write operations disabled in read-only mode)

list-payees

List all payees for a given budget. Good for finding payee IDs or identifying messy payee data that needs to be merged.

manage-payees

Merge multiple payee names into a single name. Use this to clean up payee data. (Write operations disabled in read-only mode)

lookup-entity-by-id

Look up the name and details of a specific account, category, or payee by its ID. A utility for when you have an ID but need the full context.

lookup-payee-locations

Look up geographic locations associated with a payee.

list-budgets

List all available YNAB budgets (Not available in single-budget mode).

Development

Local Setup

  1. Clone the repository:

    git clone https://github.com/yourusername/ynab-mcp-server.git
    cd ynab-mcp-server
  2. Install dependencies:

    uv sync
  3. Run the server:

    uv run ynab-mcp-server

Debugging

Use the MCP Inspector for debugging:

npx @modelcontextprotocol/inspector uvx ynab-mcp-server

For local development debugging:

cd path/to/ynab-mcp-server
npx @modelcontextprotocol/inspector uv run ynab-mcp-server

You can also view logs with:

tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Building and Publishing

# Build package
uv build

# Publish to PyPI
uv publish

Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

Please ensure your PR:

  • Follows the existing code style

  • Includes appropriate tests

  • Updates documentation as needed

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Available Tools

14 tools
bulk-manage-transactionsC

Create, update, or delete multiple transactions at once. More efficient than making single changes.

Inputs: action (required), budget_id, create_transactions, delete_transaction_ids, +1 more.

get-month-infoA

Get detailed budget information for a single month, including age of money and total amounts budgeted, spent, and available. Call this to check the monthly budget's status before making changes.

Inputs: budget_id, month.

list-accountsB

List all accounts for a given budget. Useful for getting account IDs for other tools.

Inputs: budget_id.

list-budgetsB

List all available YNAB budgets

Inputs: no named parameters.

list-categoriesA

List all categories, groups, and their budgeting details for a given budget. Call this before managing budgeted amounts to see what's available and what's already been allocated.

Inputs: budget_id.

list-payeesB

List all payees for a given budget. Good for finding payee IDs or identifying messy payee data that needs to be merged.

Inputs: budget_id.

list-scheduled-transactionsB

List all upcoming scheduled transactions for a given budget. Useful for forecasting upcoming bills.

Inputs: budget_id.

list-transactionsB

List transactions for a specific account or an entire month. Use this to investigate spending patterns identified in the financial overview.

Inputs: account_id, budget_id, limit, month, +1 more.

lookup-entity-by-idA

Look up the name and details of a specific account, category, or payee by its ID. A utility for when you have an ID but need the full context.

Inputs: entity_id (required), entity_type (required), budget_id.

lookup-payee-locationsC

Look up geographic locations associated with a payee.

Inputs: budget_id, location_id, payee_id.

manage-budgeted-amountC

Assign a budgeted amount to a category or move money between categories for a specific month. This is the primary tool for allocating funds.

Inputs: action (required), amount (required), month (required), budget_id, +2 more.

manage-financial-overviewB

Get, update, or refresh a high-level financial overview. This is the best starting point for any analysis, providing account balances, goals, and important context notes.

Inputs: action (required), budget_id, data, section.

manage-payeesA

Merge multiple payee names into a single name. Use this to clean up payee data, for example, by renaming 'STARBUCKS #123' and 'Starbucks Coffee' to just 'Starbucks'.

Inputs: action (required), payee_ids (required), budget_id, name.

manage-scheduled-transactionA

Create, update, or delete a single scheduled (recurring) transaction. Use this to manage recurring bills or savings transfers.

Inputs: action (required), budget_id, transaction_data, transaction_id.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 14 tools

    Disambiguation4/5

    Most tools have distinct purposes, such as list-accounts for accounts and list-categories for categories, but some overlap exists. For example, manage-financial-overview provides high-level context that might be partially covered by get-month-info for monthly details, which could cause minor confusion in tool selection. However, descriptions clarify their specific uses, reducing ambiguity.

    Naming Consistency5/5

    Tool names follow a highly consistent verb-noun pattern with hyphenation, such as list-accounts, get-month-info, and manage-budgeted-amount. All tools adhere to this convention, making them predictable and easy to understand. There are no deviations or mixed styles like camelCase or snake_case.

    Tool Count5/5

    With 14 tools, the set is well-scoped for budget management, covering key operations like listing resources, managing transactions, and handling budgets. Each tool serves a clear purpose, such as list-transactions for analysis and manage-scheduled-transaction for recurring bills, without being excessive or too sparse for the domain.

    Completeness5/5

    The tool surface provides comprehensive coverage for YNAB's budget management domain, including CRUD operations for transactions, budgets, and payees, along with utilities like lookup-entity-by-id. It supports core workflows from listing resources to managing financial data, with no obvious gaps that would hinder agent performance.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      A personal financial management tool that enables AI assistants to record transactions, check balances, and provide monthly financial summaries via the Model Context Protocol. It allows users to manage their expenses and income through natural language interactions using standardized MCP tools and resources.
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to manage personal finances through MCP tools for transaction management, spending analytics, and goal tracking.
      1
      -
    • A
      license
      A
      quality
      D
      maintenance
      MCP server for Actual Budget that enables AI agents to read accounts, transactions, categories, and budgets, as well as create and update transactions and transfers.
      11
      1
      MIT