manage_accountsWritesAdd, archive, or browse the accounts in your chart
Your chart of accounts needs a new line item, or an old one is cluttering the list, and you want to fix that without breaking anything that already posted to it.
The chart you got from create_book is a starting point, not a ceiling. As your books grow, you'll need a new category — a second bank account, a new expense line, a vendor big enough to warrant its own code — and manage_accounts is where that happens. It also lists the full chart with codes, names, and types, which is how your assistant finds the accountId that categorize_transactions and post_journal_entry both need to do anything.
Adding an account is a two-step conversation by design: ask for it, and the assistant previews the code and name it would create — including a warning if that code is already taken — before anything is written. Only when you confirm does the account actually get created. The same pattern applies to archiving: nothing changes on the first pass, only on confirmation.
Archiving is deliberately not deleting. An archived account stops accepting new postings, but everything that was ever posted to it stays exactly where it was — on every report, in the general ledger, in history. You can unarchive it later if you decide you need it again. There is no way to delete an account outright, on purpose: an account with history behind it should never disappear and take that history with it.
What this does not do
- Archiving hides an account from active use but never deletes it or its history — there is no true delete.
- Creating an account is blocked by a code clash but not validated against your numbering conventions beyond that — a 6000-series code for an asset account will still be created if you ask for it.
Arguments
| Name | Type | Required | What it is |
|---|---|---|---|
bookId | uuid | Required | — |
action | "list" | "create" | "archive" | "unarchive" | Required | What to do. "list" is read-only; the others change the chart of accounts. |
code | string | Optional | For "create": the account number. Convention: 1000s assets, 2000s liabilities, 3000s equity, 4000s income, 5000s cost of sales, 6000s expenses. |
name | string | Optional | For "create": what to call the account. |
type | "asset" | "liability" | "equity" | "income" | "expense" | Optional | For "create": which side of the books this account belongs to. |
accountId | uuid | Optional | For "archive" and "unarchive". |
confirm | boolean | Required | Leave false to preview. Set true to actually make the change. |
Generated from the tool definition, so it cannot describe arguments the tool does not accept. Unrecognised arguments are rejected rather than ignored.
Common questions
- What account code should I use for something new?
- The convention is 1000s for assets, 2000s for liabilities, 3000s for equity, 4000s for income, 5000s for cost of sales, and 6000s for expenses. It's a convention, not an enforced rule — your assistant should suggest a code inside the right block based on what already exists.
- What happens to transactions already posted to an account I archive?
- Nothing. They stay exactly as posted and still show up on every historical report. Archiving only stops new postings going forward.
- Can I undo an archive?
- Yes — unarchive is its own action here, and it works the same way: preview, then confirm.