MCP server for interacting with YNAB.
Configuration
View docs{
"mcpServers": {
"ntdef-ynab-mcp": {
"url": "https://mcp.example.com/mcp",
"headers": {
"YNAB_API_TOKEN": "YOUR_YNAB_API_TOKEN"
}
}
}
}This MCP server lets you interact with YNAB (You Need A Budget) programmatically. You can fetch budgets, accounts, and categories, and you can get, create, and update transactions and categories as well as view budget summaries. It’s designed for use with an MCP client to streamline budget data workflows and automation.
You connect to the YNAB MCP Server from your MCP client and issue the available actions to manage your budgets. The server exposes functions for budgets, accounts, categories, transactions, and budget summaries. Use the appropriate function to retrieve data (for example, budgets and accounts) or to modify data (such as creating a category or a transaction). Each action requires you to specify the budget you’re working with and, when relevant, the target month or category.
Prerequisites you need before installation are Python 3.13 or higher and the UV package manager. You also need a YNAB account with an API token to authorize requests.
Concrete steps to install and run the MCP server:
# Step 1: Clone the MCP server repository
git clone https://github.com/ntdef/ynab-mcp.git
cd ynab-mcp
# Step 2: Create and activate a virtual environment (UV handles venv for you)
uv venv
# Step 3: Activate the virtual environment
# Windows
venv\Scripts\activate
# Unix/MacOS
source venv/bin/activate
# Step 4: Install dependencies and sync MCP (UV is the package manager)
# If UV is not installed yet, install it first via Python's package manager
python -m pip install uv
uv sync
# Step 5: Configure environment with your YNAB API token
# Copy the example environment file and edit it with your token
cp .env.example .env
# Edit .env to set YOUR_YNAB_API_TOKEN
# Step 6: Start the MCP server
uv run ynab-mcp
```} ,{Retrieve all budgets for the authenticated user.
Get a summary of a budget, optionally for a specific month.
Retrieve all accounts for a specific budget.
Retrieve all categories for a specific budget.
Create a new category within the specified budget grouping.
Update the budgeted amount for a category in a specific month.
Retrieve transactions for a specific budget, with optional filters by date, account, or category.
Create a new transaction in the specified budget.
Update one or more fields of a specific transaction.