YNAB
About
Provides a bridge to the YNAB personal finance API for listing budgets, retrieving detailed budget information, and creating transactions without switching contexts
Details
- Author
- calebl
- Repository
- calebl/ynab-mcp-server
- GitHub stars
- 1
- Downloads
- 213
- License
- MIT License
- Categories
- Productivity, Finance, Other, Design, Developer Tools, AI, API, Frontend, Knowledge Base
- Tags
- #integration
Jump to
- Lists all available budgets on your YNAB account
- Provides a summary of underfunded categories and low accounts
- Retrieves all unapproved transactions
- Creates a transaction for a specified budget and account
- Approves an existing transaction in your YNAB budget
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
YNABCommand (node, npx, python, etc.)npxArguments-
Argument 1
ynab-mcp-server
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Specify env variables:
YNAB_API_TOKEN (required)
YNAB_BUDGET_ID (optional)
be prompted to select your budget from your available budgets. If you try to use another
tool first, this prompt should happen asking you to set your default budget.
Tools needed: ListBudgets
ListBudgets
Lists available budgets on your account.
BudgetSummary
Provides a summary of categories that are underfunded and accounts that are low.
GetUnapprovedTransactions
Retrieve all unapproved transactions.
CreateTransaction
Creates a transaction for a specified budget and account. Requires GetBudget to be called first to know the account ID.
ApproveTransaction
Approves an existing transaction in your YNAB budget. Requires a transaction ID to approve and can be used with GetUnapprovedTransactions to approve pending transactions.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"ynab": {
"env": {},
"args": [
"ynab-mcp-server"
],
"command": "npx"
}
}
}
Linux
{
"env": [],
"args": [
"ynab-mcp-server"
],
"command": "npx"
}
Macos
{
"env": [],
"args": [
"ynab-mcp-server"
],
"command": "npx"
}
Windows
{
"env": [],
"args": [
"/c",
"npx",
"ynab-mcp-server"
],
"command": "cmd"
}
A Model Context Protocol (MCP) server built with mcp-framework. This MCP provides tools for interacting with your YNAB budgets setup athttps://ynab.com
In order to have an AI interact with this tool, you will need to get your Personal Access Token from YNAB:https://api.ynab.com/#personal-access-tokens. When adding this MCP server to any client, you will need to provide your personal access token as YNAB_API_TOKEN.This token is never directly sent to the LLM.It is stored privately in an environment variable for use with the YNAB api.
- YNAB_API_TOKEN (required)
- YNAB_BUDGET_ID (optional)
The goal of the project is to be able to interact with my YNAB budget via an AI conversation. There are a few primary workflows I want to enable:
- be prompted to select your budget from your available budgets. If you try to use another tool first, this prompt should happen asking you to set your default budget.
- Tools needed: ListBudgets
Check total monthly spending vs total income
Auto-distribute ready to assign funds based on category targets
- ListBudgets - lists available budgets on your account
- BudgetSummary - provides a summary of categories that are underfunded and accounts that are low
- GetUnapprovedTransactions - retrieve all unapproved transactions
- CreateTransaction - creates a transaction for a specified budget and account.
- example prompt:Add a transaction to my Ally account for $3.98 I spent at REI today
- requires GetBudget to be called first so we know the account id
- requires a transaction ID to approve
- can be used in conjunction with GetUnapprovedTransactions to approve pending transactions
- After calling get unapproved transactions, prompt:approve the transaction for $6.95 on the Apple Card
- be able to approve multiple transactions with 1 call
- updateCategory tool - or updateTransaction more general tool if I can get optional parameters to work correctly with zod & mcp framework
- move off of mcp framework to use the model context protocol sdk directly?
# Install dependencies npm install # Build the project npm run build
ynab-mcp-server/ ├── src/ │ ├── tools/ # MCP Tools │ └── index.ts # Server entry point ├── .cursor/ │ └── rules/ # Cursor AI rules for code generation ├── package.json └── tsconfig.json
The YNAB sdk describes the available api endpoints:https://github.com/ynab/ynab-sdk-js.
YNAB open api specification is here:https://api.ynab.com/papi/open_api_spec.yaml. This can be used to prompt an AI to generate a new tool. Example prompt for Cursor Agent:
create a new tool based on the readme and this openapi doc: https://api.ynab.com/papi/open_api_spec.yaml The new tool should get the details for a single budget
# Add a new tool mcp add tool my-tool # Example tools you might create: mcp add tool data-processor mcp add tool api-client mcp add tool file-handler
import { MCPTool } from "mcp-framework"; import { z } from "zod"; interface MyToolInput { message: string; } class MyTool extends MCPTool<MyToolInput> { name = "my_tool"; description = "Describes what your tool does"; schema = { message: { type: z.string(), description: "Description of this input parameter", }, }; async execute(input: MyToolInput) { // Your tool logic here return Processed: ${input.message}; } } export default MyTool;
- Ensurenameis unique and follows npm naming conventions
- Set appropriateversion
- Adddescription,author,license, etc.
- Checkbinpoints to the correct entry file
npm run build npm link ynab-mcp-server # Test your CLI locally
Login to npm (create account if necessary):
After publishing, users can add it to their claude desktop client (read below) or run it with npx
To install YNAB Budget Assistant for Claude Desktop automatically viaSmithery:
npx -y @smithery/cli install @calebl/ynab-mcp-server --client claude
Add this configuration to your Claude Desktop config file:
MacOS:~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%/Claude/claude_desktop_config.json
{ "mcpServers": { "ynab-mcp-server": { "command": "node", "args":["/absolute/path/to/ynab-mcp-server/dist/index.js"] } } }
Add this configuration to your Claude Desktop config file:
MacOS:~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%/Claude/claude_desktop_config.json
{ "mcpServers": { "ynab-mcp-server": { "command": "npx", "args": ["ynab-mcp-server"] } } }
Easily query & find Belgian company finances
US/HK markets — 110 tools: real-time quotes, options, orders, fundamentals, alerts, DCA & portfolio
Interact with Ramp's Developer API to run analysis on your spend and gain insights leveraging LLMs
AI2Fin | Intelligent Financial Management
Tools for expense tracking, tax deductions, bill management, and financial analysis.
Manage personal finances, track transactions, and create budgets with Budgetsco.
Company lookup, LEI search, SEC filings, and financials for AI agents. 6 tools, free, no API key.
Get indicative term life insurance rates for a variety of ages, updated recently.
Free MCP server that gives AI real-time candlestick charts for forex, crypto, commodities and indices. 34 symbols, 6 timeframes, updated every minute.
Access real-time Indian options market data and volatility analytics. Analyze IV, RV, VRP, and skew with automated token management and percentile-based filtering tools.
MCP server that provides programmatic access to the Israeli Central Bureau of Statistics (CBS) price indices and economic data
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




