The server exposes twelve tools, grouped by what they let the assistant do. Read tools only ever see posted transactions in reports; drafts appear once posted.
Looking things up
#
| Tool | What it does |
|---|
find_accounts | Search the chart of accounts by partial name and/or account type — the way the assistant finds the account_id values every other tool needs |
get_transaction | Inspect one transaction: header (including is_posted), line items, and its assignments/clearances |
Reporting
#
| Tool | What it does |
|---|
get_financial_report | Income statement, balance sheet, cashflow statement (by date range) or trial balance (by year) as JSON |
get_account_statement | One account’s activity over a period; outstanding_only=true returns just the uncleared items — the natural input for reconciliation |
get_aging | Aging schedule of receivables (clients owing you) or payables (suppliers you owe), bucketed by how overdue |
Recording — always drafts
#
Each recording tool creates a pending draft and accepts dry_run=true for a no-commit preview.
| Tool | What it does |
|---|
record_sale | Cash sale, client invoice, or credit note |
record_purchase | Cash purchase, supplier bill, or debit note |
record_client_receipt | Money received from a client; auto-allocated against their outstanding invoices |
record_supplier_payment | Money paid to a supplier; auto-allocated against their outstanding bills |
record_journal_entry | Simple or compound double-entry adjustments |
Committing & reconciling
#
| Tool | What it does |
|---|
post_transaction | Commit a draft to the ledger. Irreversible — posted transactions are immutable; the tool reads the transaction back afterwards and reports whether the post actually landed |
reconcile_payment | Allocate a posted receipt/payment against specific outstanding invoices/bills, or clear oldest-first with all_outstanding=true |
Period close
#
Closing a reporting period is modelled as a supervised, multi-turn flow rather than a single tool call: prepare the closing transactions, review the list, then post them explicitly.