Allows loading environment variables from a .env file to securely store and access the YNAB API token
Provides access to the ynab-mcp repository for installation and contribution
Enables running tests for the YNAB MCP server functionality
Serves as the runtime environment for the MCP server, requiring version 3.13 or higher
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
Related MCP server: MCP YNAB Server
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-mcpCreate a virtual environment
uv venvActivate the virtual environment
Windows:
venv\Scripts\activateUnix/MacOS:
source venv/bin/activate
Install dependencies using UV
# python -m pip install uv uv syncCopy
.env.exampleto.envand add your YNAB API tokencp .env.example .env # Edit .env with your favorite editor
Usage
Running the server
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
Code style
This project uses Black and isort for code formatting. To format your code:
License
MIT License