Skip to main content
Glama
justmytwospence

ynab-mcp

Merge Category

merge_category
Destructive

Merge two categories in YNAB by transferring all transactions and historical budgeted amounts from a source category to a target category. Preview changes with dry run before executing the merge.

Instructions

[Variable API calls] [Workflow] Merges a source category into a target category: re-categorizes all transactions and moves all historical budgeted amounts. Dry run costs 4 + N calls (N = number of budget months). Execution costs additional 1 + 2*M calls (M = months with non-zero budgets). Defaults to dry_run=true to preview changes before executing. After merging, the source category will have zero transactions and zero budgeted amounts across all months - you can then manually hide/delete it in the YNAB app.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
budget_idNoBudget ID or 'last-used'last-used
source_category_idYesCategory ID to merge FROM (will be emptied)
target_category_idYesCategory ID to merge INTO (will receive transactions and budgeted amounts)
dry_runNoPreview changes without executing (default: true)
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true and readOnlyHint=false, which the description aligns with by describing the merge's effects. It adds valuable context beyond annotations: API call costs ('Dry run costs 4 + N calls...'), the outcome ('source category will have zero transactions and zero budgeted amounts'), and the need for manual cleanup. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and efficiently covers key points in three sentences. It avoids redundancy, though the initial bracketed terms '[Variable API calls] [Workflow]' are slightly cryptic and could be more integrated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the destructive nature (annotations cover this) and no output schema, the description provides good context: it explains the merge process, costs, default behavior, and post-merge state. It could briefly mention error cases or permissions, but overall it's sufficiently complete for a complex operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing clear parameter details. The description adds minimal semantics beyond the schema, such as noting 'source_category_id' will be emptied and 'dry_run' defaults to true for previewing. This meets the baseline for high schema coverage without significant extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('merges a source category into a target category') and details what this entails ('re-categorizes all transactions and moves all historical budgeted amounts'). It distinguishes from siblings like 'update_category' by focusing on merging rather than modifying individual categories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: 'Defaults to dry_run=true to preview changes before executing' and 'After merging... you can then manually hide/delete it in the YNAB app.' It implicitly contrasts with 'delete_category' by noting manual cleanup is needed post-merge, though it doesn't name alternatives directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/justmytwospence/ynab-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server