create_ruleWritesSave how you categorize a recurring charge
The same vendor charges you every month and you're tired of telling your assistant "yes, that's Software & Subscriptions again" every single time it shows up.
This tool exists for exactly the frustration above — but it is important to be straight about what it does today versus what it sounds like it should do. create_rule saves a matching pattern (a snippet of the description, optionally bounded by amount) paired with an account. What it does not do, in this release, is apply that rule to anything. No tool reads a saved rule back, suggests an account from one, or lists what would match going forward. Saving a rule records your intent; it does not yet automate your work.
Concretely: if you save a rule matching "NETFLIX" to Software & Subscriptions, the next Netflix charge that comes in through import_statement still shows up unposted, exactly like before, and categorize_transactions still needs to be told where it goes. The rule doesn't reach out and grab it. The preview itself only shows what would be saved and the rules already on file; it's the save — confirming with confirm: true — that returns how many currently unposted transactions match the rule right now, as a count. Either way, that count is informational, not something the rule then acts on.
So why save one at all? Because it's a record of a decision you've already made, for whenever a future release does start applying rules automatically — and because listing existing rules is part of what this tool shows you before you confirm a new one, so you can at least see the pattern of decisions you've recorded so far. Treat it as a note to your future self and future BalanceMCP, not a set-it-and-forget-it automation.
What this does not do
- Rules are write-only in this release — nothing applies a saved rule, suggests from it, or lists it anywhere except this tool's own preview.
- Saving a rule does not touch any existing transaction, categorized or not, even ones that already match it.
- A rule can currently be saved against an account from a different book than the one it's attached to; categorize_transactions will correctly reject that mismatch later, so a bad rule surfaces at use time, not save time.
Arguments
| Name | Type | Required | What it is |
|---|---|---|---|
bookId | uuid | Required | — |
matchText | string | Required | Case-insensitive substring of the description. |
accountId | uuid | Required | — |
minAmount | unknown | Optional | Only match at or above this amount (signed). |
maxAmount | unknown | Optional | Only match at or below this amount (signed). |
confirm | boolean | Required | — |
Generated from the tool definition, so it cannot describe arguments the tool does not accept. Unrecognised arguments are rejected rather than ignored.
Common questions
- If I save a rule, will my next matching charge categorize itself?
- No. Nothing in the current release applies a saved rule automatically. You (or your assistant) still categorize each transaction directly; the rule is stored but not acted on.
- What's the point of saving a rule if it doesn't do anything yet?
- It records a categorization decision you've made, in a form a future release can build on. Right now, think of it as a note rather than an automation.
- Does it at least tell me anything useful when I save one?
- Yes — the preview lists any rules you've already saved, and once you confirm, the response tells you how many currently unposted transactions match the new rule right now. That's a status check, not a promise those transactions will be categorized for you.