Category Tools¶
Categories are the heart of YNAB budgeting -- they're where you give every dollar a job. Category tools let you browse your budget structure, check balances and goal progress, create new categories, and set monthly budget amounts. If budgeting in YNAB is about answering "what does this money need to do?", categories are where you write those answers down.
Categories are organized into category groups (like "Monthly Bills", "Fun Money", "Savings Goals") that help you see the big picture. Each group contains individual categories (like "Rent", "Electric", "Internet" under "Monthly Bills").
Usage Examples¶
You: Show me my budget categories.
Claude calls
manage_categorieswith actionlistand responds:Monthly Bills: - Rent -- Budgeted: $1,500.00 | Activity: -$1,500.00 | Balance: $0.00 - Electric -- Budgeted: $120.00 | Activity: -$95.40 | Balance: $24.60 - Internet -- Budgeted: $75.00 | Activity: $0.00 | Balance: $75.00
Fun Money: - Dining Out -- Budgeted: $200.00 | Activity: -$142.30 | Balance: $57.70 - Entertainment -- Budgeted: $100.00 | Activity: -$35.99 | Balance: $64.01
You: How's my Groceries category doing?
Claude calls
manage_categorieswith actiongetand responds:Category: Groceries Budgeted: $600.00 Activity: -$423.17 Balance: $176.83 Goal: Monthly Funding -- Target: $600.00 (71% complete)
You: Set my Dining Out budget to $250 for this month.
Claude calls
manage_categorieswith actionset_month_budget, converting dollars to milliunits:Updated Dining Out for March 2026: Budgeted: $250.00
You: Create a new category called "Concert Fund" in my Savings Goals group.
Claude calls
manage_categorieswith actioncreate:Category created: Concert Fund Group: Savings Goals
Available Actions¶
| Action | Description |
|---|---|
list |
List all categories grouped by category group |
get |
Get details for a specific category (with goal info) |
create |
Create a new category in a group |
update |
Update a category's name or note |
create_group |
Create a new category group |
update_group |
Rename a category group |
set_month_budget |
Set the budgeted amount for a category in a month |
API Reference¶
manage_categories
async
¶
manage_categories(
ctx: Context,
action: Literal[
"list",
"get",
"create",
"update",
"create_group",
"update_group",
"set_month_budget",
],
budget_id_or_name: str | None = None,
include_hidden: bool = False,
category_id: str | None = None,
category_group_id: str | None = None,
name: str | None = None,
note: str | None = None,
goal_target: float | None = None,
goal_target_date: str | None = None,
month: str | None = None,
budgeted: float | None = None,
) -> str
Manage YNAB categories: list, get, create, update, and budget by month.
Actions
list: List all categories. Uses budget_id_or_name, include_hidden. get: Get category details. Uses category_id (required). create: Create category. Uses name (required), category_group_id, note, goal_target, goal_target_date. update: Update category. Uses category_id (required), name, note, goal_target, goal_target_date. create_group: Create category group. Uses name (required). update_group: Update category group. Uses category_group_id (required), name (required). set_month_budget: Get or set month budget. Uses category_id (required), month, budgeted (omit to get current value).
Parameters:
-
ctx(Context) –The MCP context providing access to lifespan dependencies.
-
action(Literal['list', 'get', 'create', 'update', 'create_group', 'update_group', 'set_month_budget']) –The operation to perform.
-
budget_id_or_name(str | None, default:None) –Budget UUID or name. Auto-resolves if only one budget exists.
-
include_hidden(bool, default:False) –If True, include hidden categories (list only).
-
category_id(str | None, default:None) –The category UUID (get, update, set_month_budget).
-
category_group_id(str | None, default:None) –Category group UUID (create, update_group).
-
name(str | None, default:None) –Name for category or group.
-
note(str | None, default:None) –Category note (create, update).
-
goal_target(float | None, default:None) –Goal target in dollars (create, update).
-
goal_target_date(str | None, default:None) –Goal target date (create, update).
-
month(str | None, default:None) –Month as YYYY-MM or YYYY-MM-DD (set_month_budget).
-
budgeted(float | None, default:None) –Budgeted amount in dollars (set_month_budget).
Returns:
-
str–Structured text with category information or confirmation.
Raises:
-
ToolError–If required parameters for the action are missing.
Source code in src/ynaa_mcp/tools/categories.py
303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 | |