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, and more
  • Create, update, and delete transactions
  • Update category budgets and move money
  • Manage scheduled transactions
  • Delta sync support to minimize API calls

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. Here's why we built another one:

Project Language Notes
calebl/ynab-mcp-server TypeScript Full CRUD, but inconsistent code quality
mattweg/ynab-mcp JavaScript Has known bugs (amount parsing), dormant since mid-2025
chrisguidry/you-need-an-mcp Python Excellent code quality, but no OSS license
py-ynab-mcp Python MIT licensed, full API coverage, actively maintained

We wanted a Python MCP server for YNAB that is properly licensed, well-tested, and covers the full YNAB API — including write operations for transaction management. The best existing implementation had no license, making it unsuitable for use or contribution. So here we are.

YNAB API Coverage

Read

  • Budgets, accounts, categories, payees, months
  • Transactions (with filtering by account, category, payee, date)
  • Scheduled transactions
  • Delta sync on supported endpoints

Write

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

Not supported by YNAB API

  • Creating budgets, categories, or payees (must be done in the YNAB app)

Development

# Clone and install
git clone https://github.com/duges/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.1.0.tar.gz (69.8 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.1.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: py_ynab_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 69.8 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.1.0.tar.gz
Algorithm Hash digest
SHA256 7bace6273b0a400bcbf0f00c9facbe60d85e1b66c25fbe8fdbefa6cec05a42cc
MD5 e2236ca2408e033e3e6fa310e782faa3
BLAKE2b-256 cb4033e11cee91347eea264ffac95fe4f8edb54ccf5d392bbc836e0d062659e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_ynab_mcp-0.1.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.1.0-py3-none-any.whl.

File metadata

  • Download URL: py_ynab_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.3 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c58e059dbc67676dd6f5e0fcb49e34dd233e8cd43d8824480a1ab2eca9e7395a
MD5 ae8b508e80c8f8f7b891cec3897febff
BLAKE2b-256 1b82ed9ceb108516b28d7704ddecea61aada07a87d81cecb9279a7889b0cce85

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_ynab_mcp-0.1.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