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.0.3.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.0.3-py3-none-any.whl (49.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for mcp_ynab-1.0.3.tar.gz
Algorithm Hash digest
SHA256 dcfb5c60cd646115dc2db2cff4cf1ab89baf6340d4dbd414df04c8d5db2829c6
MD5 21f10e1a22210ea70d2f8fc40ef0874a
BLAKE2b-256 22e762d38b009b63c2924448cf24363928967a5bbb2fcc6f64a8af9f84eb29bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_ynab-1.0.3.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.0.3-py3-none-any.whl.

File metadata

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

File hashes

Hashes for mcp_ynab-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2674fd80e8b35c5abdc8a600d8d7abb8b4131f0ffc9455edca05c1bd23c40764
MD5 06bb4c6b13808ded4f9c027241b732da
BLAKE2b-256 8312aea40625cbc90eb2356b701f053d38d95ac0992f8967947cfad7dcf1c9b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_ynab-1.0.3-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