ynab-mcp
The YNAB MCP server integrates Claude Code with You Need A Budget, providing tools for budget management and financial insights through an API. It offers advanced category management, includes features like OAuth-based authentication, and supports multiple budgets with performance optimizations.
YNAB MCP
YNAB Model Context Protocol (MCP) server for Claude Code integration with You Need A Budget (YNAB).
Overview
This repository contains a Docker-based MCP server that enables Claude Code to interact with YNAB (You Need A Budget) accounts. It implements the OAuth flow and provides a comprehensive API for budget management, transaction tracking, and financial insights.
Known Issues
MCP Tool Availability
The following issues have been identified:
- Transactions API - The
list_transactions
endpoint fails with "invalid date" errors when using thesinceDate
parameter - Missing API Tools - Several endpoints that are defined in the source code are not available in the MCP integration
- Inconsistent Behavior - Some tools work in testing with test-mcp.js but fail in the actual MCP integration
Issue Tracking
We're actively working on the following fixes:
fix-transactions-api
branch: Addressing the date format handling in the transactions APIfix-mcp-registration
branch: Ensuring all API tools are properly registered and available
Features
- OAuth-based authentication with YNAB API
- Complete budget and account management
- Transaction creation and categorization
- Advanced category management with bulk allocation and recommendations
- Support for multiple budgets (personal and family)
- Rate limit handling (YNAB API limit: 200 requests/hour)
- Caching for improved performance
New Category Management Features
This MCP includes advanced category management capabilities:
- Assign to Categories: Allocate funds from Ready to Assign to multiple categories in one operation
- Recommended Allocations: Get AI-powered suggestions for budget distribution based on goals and spending patterns
See for details.
Getting Started
Prerequisites
- Docker
- Node.js v18+ (for development)
- Claude Code CLI
- YNAB account
Installation
- Clone this repository
- Copy
config/config.example.js
toconfig/config.js
and add your YNAB API credentials - Build the Docker image:
docker build -t ynab-mcp:latest .
- Create a JSON configuration for Claude:
{ "command": "docker", "args": [ "run", "--rm", "-i", "-v", "/path/to/data:/app/data", "-v", "/path/to/config:/app/config", "-e", "NODE_ENV=production", "ynab-mcp:latest" ] }
- Register the MCP with Claude Code CLI:
You can also save the JSON to a file and use:claude mcp add-json ynab '{"command": "docker", "args": ["run", "--rm", "-i", "-v", "/path/to/data:/app/data", "-v", "/path/to/config:/app/config", "-e", "NODE_ENV=production", "ynab-mcp:latest"]}'
claude mcp add-json ynab "$(cat config.json)"
- Authenticate with your YNAB account when prompted by Claude
Integration with Claude
This MCP integrates seamlessly with Claude, allowing:
- Viewing budgets and transactions
- Getting financial insights
- Managing your budget through natural conversation
Security
- Tokens are stored securely in a mounted Docker volume
- No sensitive data is logged
- Authentication uses OAuth 2.0 standards
- Support for read-only mode
Implementation Details
The implementation follows the Model Context Protocol standard using:
- Node.js and the official MCP SDK
- Docker for containerization and deployment
- YNAB JavaScript SDK for API operations
- OAuth 2.0 for authentication
License
MIT