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

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_ynab-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 7a21c6b06fe8f26747cade8d169171366e8d5f01046eec4a1993b32b19e816e4
MD5 98ee9ad48b874e9b3aaf3c37ff34c9cf
BLAKE2b-256 158949695187e605c21a0c8997bb5d47f48486e1442d4bdb259f040665f64bac

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mcp_ynab-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 48.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3c6b28e1375cc8a739913a7b3951f7dd96249d931f7dff2bf3d3728fa12d40ab
MD5 4b83a8ce18af92b07037c78a73b81063
BLAKE2b-256 ea0169bfe6fe86aea399955ad33ce71515a4e02805658f4f037d95e11ccf0797

See more details on using hashes here.

Provenance

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