Skip to main content

MCP server that connects AI assistants to your YNAB budget

Project description

YNAB MCP Server

An MCP server that connects AI assistants to your YNAB budget. Ask your budget questions YNAB can't answer.

mcp-ynab.com — Full setup guide, troubleshooting, and more.

Features

  • 30+ tools — budgets, accounts, transactions, categories, payees, months, scheduled transactions, and analytics
  • Delta sync — only fetches what changed since the last call (uses YNAB's server knowledge)
  • 4-tier caching — TTL cache, delta sync, retry with backoff, SQLite persistence
  • Search & analytics — text search across transactions, per-category spending breakdowns, Sankey flow data
  • Bulk operations — create or update multiple transactions in a single call
  • Dollar amounts — accepts dollars in parameters, converts to YNAB milliunits internally

Quick Start

uv tool run mcp-ynab

Requires a YNAB personal access token set as YNAB_API_KEY.

Configuration

Claude Desktop / ChatGPT

Add to your config file:

{
  "mcpServers": {
    "ynab": {
      "command": "uv",
      "args": ["tool", "run", "mcp-ynab"],
      "env": {
        "YNAB_API_KEY": "your-api-key-here"
      }
    }
  }
}

Claude Code

claude mcp add-json ynab --scope user '{"type":"stdio","command":"uv","args":["tool","run","mcp-ynab"],"env":{"YNAB_API_KEY":"your-api-key-here"}}'

See mcp-ynab.com for config file locations and troubleshooting.

Available Tools

Group Tools
User get_user
Plans list_plans, get_plan, get_plan_settings
Accounts list_accounts, get_account, create_account
Categories list_categories, get_category, create_category, update_category, create_category_group, update_category_group, get_category_for_month, update_category_for_month
Payees list_payees, get_payee, update_payee
Payee Locations list_payee_locations, get_payee_location, get_payee_locations_by_payee
Months list_months, get_month
Money Movements list_money_movements, get_money_movements_for_month, list_money_movement_groups, get_money_movement_groups_for_month
Transactions list_transactions, get_transaction, get_transactions_by_account, get_transactions_by_category, get_transactions_by_month, get_transactions_by_payee, search_transactions, create_transaction, create_transactions, update_transaction, update_transactions, delete_transaction, import_transactions
Scheduled list_scheduled_transactions, get_scheduled_transaction, create_scheduled_transaction, update_scheduled_transaction, delete_scheduled_transaction
Analytics get_money_flow, get_spending_by_category

Field selection

Every tool that returns a model accepts an optional exclude_fields list. By default each tool returns a sensible subset of fields to keep token usage low. See FIELDS.md for per-model defaults and override examples.

Development

# Install dependencies
uv sync

# Run tests
uv run pytest

# Run server standalone
uv run python -m src.server

Requires YNAB_API_KEY in .env.local for running the server.

License

AGPL-3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_ynab-1.1.0.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_ynab-1.1.0-py3-none-any.whl (49.1 kB view details)

Uploaded Python 3

File details

Details for the file mcp_ynab-1.1.0.tar.gz.

File metadata

  • Download URL: mcp_ynab-1.1.0.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mcp_ynab-1.1.0.tar.gz
Algorithm Hash digest
SHA256 292de1fa9579f0d0e6fd0cc6c5360f47abd2d1a7ba399e4494013215095d2066
MD5 3e8bceedb082a9ec1eb5b1173eea79e6
BLAKE2b-256 e7aff1fd258ab503ae4f61140e9fd92e0da9190237b47221e92fb53212bba7c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_ynab-1.1.0.tar.gz:

Publisher: publish.yml on pragprogrammer/mcp-ynab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_ynab-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_ynab-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 49.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mcp_ynab-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 769f7a72824da32ab45234fcd8604e3a1fca99a634422da03a017ec0c3fd1449
MD5 3ac8ed47a0cbb96c6e3ab6c7aa409dc5
BLAKE2b-256 2255c9a7f4bf8de5850b48eb05fe8115f102a748a1a878b01d11a61ad1809a9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_ynab-1.1.0-py3-none-any.whl:

Publisher: publish.yml on pragprogrammer/mcp-ynab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page