Official · MODEL CONTEXT PROTOCOL
mattweg ynab mcp
YNAB Model Context Protocol (MCP) server for Claude Code integration
WHAT IT CONNECTS
What mattweg ynab mcp gives an AI Agent
- 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
- **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
SECURITY
An MCP listing is not a security review
An MCP server may receive model context, credentials, local files, or permission to call external systems. Review its code, requested environment variables, network behavior, package provenance, and maintenance status before connecting it to an agent.
README
Repository documentation
YNAB Model Context Protocol (MCP) server for Claude Code integration with You Need A Budget (YNAB).
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.
The following issues have been identified:
- Transactions API - The
list_transactionsendpoint fails with "invalid date" errors when using thesinceDateparameter - 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
We're actively working on the following fixes:
fix-transactions-apibranch: Addressing the date format handling in the transactions APIfix-mcp-registrationbranch: Ensuring all API tools are properly registered and available
- 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
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 Category Management Documentation for details.
- Docker
- Node.js v18+ (for development)
- Claude Code CLI
- YNAB account
- Clone this repository
- Copy
config/config.example.jstoconfig/config.jsand 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
This MCP integrates seamlessly with Claude, allowing:
- Viewing budgets and transactions
- Getting financial insights
- Managing your budget through natural conversation
- 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
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
MIT
COMMUNITY