YNAB MCP Server
An MCP server that connects AI assistants to your YNAB budget. Ask your budget questions YNAB can't answer.
mcp-ynab.com — Full setup guide, troubleshooting, and more.
Features
- 30+ tools — budgets, accounts, transactions, categories, payees, months, scheduled transactions, and analytics
- Delta sync — only fetches what changed since the last call (uses YNAB's server knowledge)
- 4-tier caching — TTL cache, delta sync, retry with backoff, SQLite persistence
- Search & analytics — text search across transactions, per-category spending breakdowns, Sankey flow data
- Bulk operations — create or update multiple transactions in a single call
- Dollar amounts — accepts dollars in parameters, converts to YNAB milliunits internally
Quick Start
uv tool run mcp-ynab
Requires a YNAB personal access token set as YNAB_API_KEY.
Configuration
Claude Desktop / ChatGPT
Add to your config file:
{
"mcpServers": {
"ynab": {
"command": "uv",
"args": ["tool", "run", "mcp-ynab"],
"env": {
"YNAB_API_KEY": "your-api-key-here"
}
}
}
}
Claude Code
claude mcp add-json ynab --scope user '{"type":"stdio","command":"uv","args":["tool","run","mcp-ynab"],"env":{"YNAB_API_KEY":"your-api-key-here"}}'
See mcp-ynab.com for config file locations and troubleshooting.
Available Tools
| Group | Tools |
|---|---|
| User | get_user |
| Plans | list_plans, get_plan, get_plan_settings |
| Accounts | list_accounts, get_account, create_account |
| Categories | list_categories, get_category, create_category, update_category, create_category_group, update_category_group, get_category_for_month, update_category_for_month |
| Payees | list_payees, get_payee, update_payee |
| Payee Locations | list_payee_locations, get_payee_location, get_payee_locations_by_payee |
| Months | list_months, get_month |
| Money Movements | list_money_movements, get_money_movements_for_month, list_money_movement_groups, get_money_movement_groups_for_month |
| Transactions | list_transactions, get_transaction, get_transactions_by_account, get_transactions_by_category, get_transactions_by_month, get_transactions_by_payee, search_transactions, create_transaction, create_transactions, update_transaction, update_transactions, delete_transaction, import_transactions |
| Scheduled | list_scheduled_transactions, get_scheduled_transaction, create_scheduled_transaction, update_scheduled_transaction, delete_scheduled_transaction |
| Analytics | get_money_flow, get_spending_by_category |
Field selection
Every tool that returns a model accepts an optional exclude_fields list. By
default each tool returns a sensible subset of fields to keep token usage low.
See FIELDS.md for per-model defaults and override examples.
Development
# Install dependencies
uv sync
# Run tests
uv run pytest
# Run server standalone
uv run python -m src.server
Requires YNAB_API_KEY in .env.local for running the server.
License
Release files for mcp-ynab 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_ynab-1.1.0.tar.gz | 1.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_ynab-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.5 MB
Release files / mcp_ynab-1.1.0.tar.gz
| Download URL | mcp_ynab-1.1.0.tar.gz |
|---|---|
| Size | 1.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
292de1fa9579f0d0e6fd0cc6c5360f47abd2d1a7ba399e4494013215095d2066
|
|
BLAKE2b-256 checksum How to use checksums |
e7aff1fd258ab503ae4f61140e9fd92e0da9190237b47221e92fb53212bba7c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / mcp_ynab-1.1.0-py3-none-any.whl
| Download URL | mcp_ynab-1.1.0-py3-none-any.whl |
|---|---|
| Size | 49.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
769f7a72824da32ab45234fcd8604e3a1fca99a634422da03a017ec0c3fd1449
|
|
BLAKE2b-256 checksum How to use checksums |
2255c9a7f4bf8de5850b48eb05fe8115f102a748a1a878b01d11a61ad1809a9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency log