ynab-mcp
Click on "Deploy 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-mcpwhat's my remaining dining out budget 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
Your YNAB budget as MCP tools, reachable from every Claude client (Claude Code, Desktop, claude.ai and mobile), behind a password + TOTP login.
The tools are mcp-ynab by
Michael Green, installed unchanged from PyPI at the version uv.lock pins.
Upstream serves them over stdio only, which no phone or browser can reach. This
project adds the two things a hosted server needs:
Streamable HTTP at
/mcp, served by uvicorn.OAuth 2.1 with a password + TOTP login, which claude.ai and the mobile apps need to add it as a connector. The token behind it can edit the budget, so the server refuses to start without both factors. The OAuth code is shared with anki-mcp and obsidian-mcp.
How it reuses upstream
Upstream builds an MCPServer and registers its tools on it at import time.
src/ynab_mcp/server.py imports that, takes its tool list and passes it to a new
MCPServer that has auth configured. No tool code is copied or changed. Reading
the tool list touches one private SDK attribute; tests/test_server.py checks
that every tool upstream exports is still served, so a breaking bump fails CI.
Related MCP server: mcp-ynab
Run it
docker run -d --name ynab-mcp \
--env-file secrets.env \
-e YNAB_MCP_PUBLIC_URL=https://ynab.example.ts.net \
-v "$PWD/data:/data" \
-p 127.0.0.1:8790:8790 \
ghcr.io/jasonsooter/ynab-mcp:mainvariable | default | meaning |
| required | YNAB personal access token |
| required | login password, ≥ 12 characters |
| required | base32 TOTP setup key |
|
| the public HTTPS URL; feeds OAuth discovery |
|
| holds |
|
| listen port |
/data must persist. Without it, every device has to add the connector again
after a restart. Put the endpoint behind HTTPS (e.g. Tailscale Funnel) before
adding it to Claude, and add it as https://<host>/mcp.
Develop
uv sync
uv run pytestCI runs the tests, then builds the image for amd64 and arm64, and pushes it to
ghcr.io/jasonsooter/ynab-mcp on main (tags main and sha-<commit>).
License
AGPL-3.0-only, the same as upstream mcp-ynab, whose code the image contains.
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Query your real net worth, spending, transactions, budgets and portfolio from any MCP client.
- ManiloOAuthapp.manilo
Log, query, and edit expenses, budgets, and accounts in Manilo from any MCP-compatible AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for interacting with YNAB (You Need A Budget). Provides tools for accessing budget data through MCP-enabled clients like Claude Desktop.4MIT
- AlicenseCqualityDmaintenanceFastMCP server that exposes the YNAB API for budget management, enabling interaction with YNAB data through MCP tools.441MIT
- FlicenseBqualityDmaintenanceA personal MCP server that gives Claude native access to YNAB budget data.46-
- AlicenseBqualityCmaintenanceA read-only MCP server for YNAB budgeting data, enabling daily/weekly/monthly expense reviews and planning support via Claude Desktop or Claude Code.4Apache 2.0