Skip to main content

A Model Context Protocol server for YNAB (You Need A Budget)

Project description

py-ynab-mcp

A Model Context Protocol server for YNAB (You Need A Budget). Talk to your budget from Claude, Cursor, or any MCP client.

Features

  • Query budgets, accounts, categories, transactions, payees, and months
  • Get single-resource details (account, category, payee, transaction)
  • Create, update, and delete transactions (single and bulk)
  • Update category budgets and metadata
  • Rename payees
  • Manage scheduled transactions (full CRUD)
  • Budget settings and user info

Install

uvx py-ynab-mcp

Or with pip:

pip install py-ynab-mcp

Setup

  1. Get a YNAB Personal Access Token
  2. Add to your MCP client config:
{
  "mcpServers": {
    "ynab": {
      "command": "uvx",
      "args": ["py-ynab-mcp"],
      "env": {
        "YNAB_ACCESS_TOKEN": "your-token-here"
      }
    }
  }
}

Why this project?

There are several YNAB MCP servers out there:

Project Language License
calebl/ynab-mcp-server TypeScript MIT
mattweg/ynab-mcp JavaScript MIT
chrisguidry/you-need-an-mcp Python No license
py-ynab-mcp Python MIT

We wanted an MIT-licensed Python implementation with full API coverage and thorough test coverage. At the time of writing, the only Python option had no OSS license, so we built this one.

YNAB API Coverage

Read

  • User info, budget settings
  • Budgets, accounts, categories, payees, months (list and single)
  • Transactions with filtering by account, category, or payee
  • Scheduled transactions (list and single)

Write

  • Create, update, delete transactions (single and bulk)
  • Update category budgets and metadata
  • Rename payees
  • Create, update, delete scheduled transactions

Not available in YNAB API

  • Create/delete budgets, categories, or accounts
  • Create/delete payees (auto-created via transactions)
  • Transaction import

Development

# Clone and install
git clone https://github.com/duganth/py-ynab-mcp.git
cd py-ynab-mcp
uv sync

# Run tests
uv run pytest

# Lint and type check
uv run ruff check .
uv run mypy src/

License

MIT

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

py_ynab_mcp-0.2.0.tar.gz (110.4 kB view details)

Uploaded Source

Built Distribution

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

py_ynab_mcp-0.2.0-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file py_ynab_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: py_ynab_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 110.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for py_ynab_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ff4554ae52ba3a312db6f2bb4fab70575f9cdd99c038492470530d079f64a4ad
MD5 db88a6890c5187733b2550bb1d4d31f7
BLAKE2b-256 b4485cbc24ad8b73799bfc1618f973e4db9b0bed7d249496381f804b11855b90

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_ynab_mcp-0.2.0.tar.gz:

Publisher: publish.yml on duganth/py-ynab-mcp

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

File details

Details for the file py_ynab_mcp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: py_ynab_mcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 17.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for py_ynab_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c264efe51939c5f6acb6177d667cc1ae237ad2f1bcffb57ca62ac029fb4fee41
MD5 9388d90fb34af59bc52b1a92bb6036a2
BLAKE2b-256 637250212d53625457973d9dcd9ae95b246c2390dd184764301f76d5f1e7d6da

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_ynab_mcp-0.2.0-py3-none-any.whl:

Publisher: publish.yml on duganth/py-ynab-mcp

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