ynab
YNAB MCP server with custom skills
claude mcp add --transport stdio rgarcia-ynab-mcp-server /absolute/path/to/this/project/.venv/bin/ynab-mcp-server \ --env YNAB_API_TOKEN="your-token-here"
How to use
This MCP server exposes YNAB's API endpoints as MCP tools, allowing an AI like Claude to interact with your YNAB data such as budgets, accounts, transactions, categories, and more. The server automatically generates tools from YNAB's OpenAPI specification, so once connected you can query or modify data using natural-language prompts that map to YNAB API calls (e.g., retrieving budgets, listing transactions, creating accounts, or updating categories). The generated tools handle authentication with your YNAB API token, so you can focus on the task without managing each endpoint manually. To use it, run the server locally through your preferred MCP client configuration (Claude Desktop, Cursor, or OpenCode) and supply your YNAB API token via the environment variable YNAB_API_TOKEN. Then issue requests through your AI assistant like “Show me my budgets” or “Create a transaction for $50 at the grocery store.”
How to install
Prerequisites:
- Python 3.11 or higher
- uv package manager installed
- A YNAB API token with access rights
Setup steps:
-
Clone the repository: git clone https://github.com/rgarcia/ynab-mcp-server.git cd ynab-mcp-server
-
Create and activate a Python virtual environment (recommended): python3 -m venv .venv source .venv/bin/activate # on macOS/Linux ..venv\Scripts\activate # on Windows
-
Install dependencies via uv (as per project guidance): uv sync
-
Place your YNAB API token in your environment when running the server, e.g.: export YNAB_API_TOKEN=your-token-here
-
Run the server locally using the virtual environment's entry point (example): python -m ynab_mcp_server.server
or use the project-specific startup script if provided (ynab-mcp-server in .venv/bin)
-
Connect your MCP client (Claude Desktop, Cursor, or OpenCode) with the configured local command and environment as shown in the usage section of the repository.
Notes:
- Ensure the YNAB API token is kept secret and not committed to any repository.
- The server uses OpenAPI resolution to generate tools automatically; an active network connection is required to fetch the OpenAPI spec from YNAB.
Additional notes
Tips and considerations:
- Environment variable: YNAB_API_TOKEN must be set in the environment of the MCP client configuration (Claude Desktop, Cursor, OpenCode).
- If you regenerate tokens, update the environment variable accordingly.
- The server exposes all endpoints defined in YNAB's OpenAPI spec; if you encounter missing tooling, ensure you are using the latest server code and that the OpenAPI spec endpoint is reachable.
- When testing, start with read-only operations (e.g., getBudgets, getAccounts) before attempting mutating actions like createTransaction or updateCategory.
- For debugging, check the server logs for OpenAPI parsing or authentication errors and verify network access to https://api.ynab.com.
- If deploying, consider securing the environment and token handling in your MCP client configuration.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP