YNAB MCP Server
A Model Context Protocol (MCP) server for interacting with YNAB (You Need A Budget) via their API.
Features
- Get budgets, accounts, and categories
- Get, create and update transactions
- Create new categories
- Update budgeted amounts for categories
- Get budget summaries
Prerequisites
- Python 3.13 or higher
- A YNAB account with an API token (Get your token here)
- UV package manager (optional but recommended)
Installation
-
Clone this repository
git clone https://github.com/ntdef/ynab-mcp.git cd ynab-mcp
-
Create a virtual environment
uv venv -
Activate the virtual environment
- Windows:
venv\Scripts\activate - Unix/MacOS:
source venv/bin/activate
- Windows:
-
Install dependencies using UV
# python -m pip install uv uv sync
-
Copy
.env.exampleto.envand add your YNAB API tokencp .env.example .env # Edit .env with your favorite editor
Usage
Running the server
uv run ynab-mcp
The server will start in stdio mode, so you won't see any output.
Available tools
The YNAB MCP Server provides the following tools:
Budget management
get_budgets: Retrieve all budgets for the authenticated userget_budget_summary: Get a summary of the budget, optionally for a specific month
Account management
get_accounts: Retrieve all accounts for a specific budget
Category management
get_categories: Retrieve all categories for a specific budgetcreate_category: Create a new category in the specified budget groupupdate_category_budgeted: Update the budgeted amount for a category in a specific month
Transaction management
get_transactions: Retrieve transactions for a specific budget, optionally filtered by date, account, or categorycreate_transaction: Create a new transaction in the specified budgetupdate_transaction: Update one or more fields of a specific transaction
Development
Running tests
uv run pytest
Code style
This project uses Black and isort for code formatting. To format your code:
uv run isort src tests
uv run black src tests
License
MIT License
Acknowledgements
- Some of the code was written with the assistance of aider
- YNAB API Documentation
- fastmcp by Anthropic
Metadata
Release files for ynab-mcp 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ynab_mcp-0.1.4.tar.gz | 25.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ynab_mcp-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 33.3 kB
Release files / ynab_mcp-0.1.4.tar.gz
| Download URL | ynab_mcp-0.1.4.tar.gz |
|---|---|
| Size | 25.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5869d8696c9660827da5362a9e32f0909509a3d9643b668907d859d2b56f9503
|
|
BLAKE2b-256 checksum How to use checksums |
4a25fdf2e005c1dfb7b8c00079f4196fef2dde9debf6aae3e5a9b7dc5fb220e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.23
|
Release files / ynab_mcp-0.1.4-py3-none-any.whl
| Download URL | ynab_mcp-0.1.4-py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
48417448e696c2ff06918b4def7ba69bc06f9118366a84d8fb54710fc419ed96
|
|
BLAKE2b-256 checksum How to use checksums |
f07808d08050b5940de0ff45340dd001cca2c518fa437cbecd425f29da00201e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.23
|
Security for ynab-mcp 0.1.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.