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., "@YNAB MCP ServerHow much is left in my Groceries budget for this month?"
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.
YNAB MCP Server
MCP server for YNAB (You Need A Budget) — manage budgets, accounts, categories, and transactions through Claude.
Tools
Core (daily budget management)
Tool | Description |
| List all budgets |
| List accounts with balances |
| Category groups with budgeted/activity/balance |
| List payees (for resolving names to IDs) |
| Monthly overview with per-category breakdown |
| Search transactions by date/account/category/payee |
| Add a new transaction |
| Change budgeted amount for a category |
Extended (weekly/occasional)
Tool | Description |
| Edit existing transaction fields |
| Delete a transaction |
| Create multiple transactions from JSON |
| View recurring/upcoming bills |
| Add a new account |
| Historical month list for trends |
| Change category name, note, or goal |
Setup
1. Get a YNAB Personal Access Token
Go to YNAB Settings > Developer Settings and create a Personal Access Token.
2. Configure environment
cp .env.example .env
# Edit .env and set YNAB_ACCESS_TOKEN3. Run locally
# stdio transport (Claude Desktop / Claude Code)
uv run server.py
# HTTP transport (Claude.ai connector / remote access)
uv run server.py --transport streamable-http4. Claude Desktop configuration
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"ynab": {
"command": "uv",
"args": ["run", "/path/to/ynab-mcp/server.py"],
"env": {
"YNAB_ACCESS_TOKEN": "your-token-here"
}
}
}
}Deployment (Railway)
Push this repo to GitHub
Create a new Railway project and connect the repo
Set environment variables in Railway:
YNAB_ACCESS_TOKEN— your YNAB Personal Access TokenYNAB_DEFAULT_BUDGET_ID— (optional) default budget UUID or "last-used"MCP_BEARER_TOKEN— (optional) secure the MCP endpoint
Railway auto-deploys on push to
main
The server reads the PORT environment variable (set automatically by Railway).
Multi-User Support
Set per-user tokens to give each person their own connector URL:
YNAB_TOKEN_ADAM=adams-token
YNAB_TOKEN_SARAH=sarahs-tokenURL routing:
/adam/mcp— usesYNAB_TOKEN_ADAM/sarah/mcp— usesYNAB_TOKEN_SARAH/mcp— usesYNAB_ACCESS_TOKEN(default)
Currency Format
YNAB uses milliunits (1/1000 of a currency unit):
$10.00=10000milliunits-$5.50=-5500milliunits
All tool responses include both raw milliunit values and formatted display strings (e.g., balance and balance_display).
Rate Limits
YNAB allows 200 requests per hour per access token. The server returns friendly error messages when rate limited (HTTP 429).
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.