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

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_ynab-1.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 63ccf80bef892075a73e727d2ba1be1e114c67566cdfa05ff0d6fb93c4bef153
MD5 a44eb9abbbbb52b182ebd6c8bfc13da7
BLAKE2b-256 82334791f5045444688893497bddff8f7c8b623c07914d3d88463e4a22d99090

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mcp_ynab-1.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7b62a5b0f5e79f1a1f53d80a9f39efaab3c7b9e4c789d3ea5a50d8f57fc0365b
MD5 99aa6a2faa9f086a1980ddcfb08d7fa7
BLAKE2b-256 df86dfe87d82f5f264e8689c545bdb201538fb55575a23ea447e93d890626a58

See more details on using hashes here.

Provenance

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