The MCP YNAB Server provides access to YNAB (You Need A Budget) functionality through the Model Context Protocol, allowing you to:
View financial data: Check account balances and list transactions
Manage transactions: Create new transactions and find ones needing attention (uncategorized/unapproved)
Work with budgets: List all budgets, set a preferred budget, and access categories
Access detailed information: Retrieve specific transactions by ID and view transaction details including subtransactions
Use MCP integration: Access YNAB data via standardized resources like
ynab://accountsandynab://transactions/{account_id}
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP YNAB Servershow me my checking account balance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP YNAB Server
An MCP server implementation that provides access to YNAB (You Need A Budget) functionality through the Model Context Protocol.
Features
View account balances and transactions
Create new transactions
Access YNAB data through standardized MCP resources
Related MCP server: ABAP-ADT-API MCP-Server
Installation
uv pip install -e .Configuration
The server requires a YNAB API key to function. You can obtain one from your YNAB Developer Settings.
The API key can be provided through:
Environment variable:
YNAB_API_KEY=your_api_keyMCP secret management system
.envfile in project root
Usage
Running the Server
# Development mode with hot reload and browser launch
task dev
# Production install for Claude Desktop, Goose, or any other MCP-supported environment
task installAvailable Resources
ynab://accounts- List all YNAB accountsynab://transactions/{account_id}- Get recent transactions for a specific account
Available Tools
create_transaction- Create a new transactionget_account_balance- Get the current balance of an account
Example Usage
# Create a new transaction
result = await create_transaction(
account_id="your_account_id",
amount=42.50, # in dollars
payee_name="Coffee Shop",
category_name="Dining Out",
memo="Morning coffee"
)
# Get account balance
balance = await get_account_balance("your_account_id")
# List accounts
accounts = await ctx.read_resource("ynab://accounts")
# Get recent transactions
transactions = await ctx.read_resource(f"ynab://transactions/{account_id}")Development
# Install dependencies (uses uv)
task deps
# Run all tests including integration tests (you will need a YNAB API key for this)
task test:all
# Generate coverage report
task coverage
# Format and lint code
task fmt # Should add this to TaskfileProject Tasks
This project uses a Taskfile for common operations. Key commands:
task dev # Start dev server with auto-reload
task test # Run unit tests
task coverage # Generate test coverage report
task install # Install production build
task deps # Synchronize dependenciesSee Taskfile.yml for all available tasks.
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.