MCP tools
Once a client is connected, AI Accounting exposes the full accounting engine as MCP tools. Each tool maps to a REST operation documented in the API reference — same behavior, same data, same auth.
Accounts
| Tool | Description |
|---|---|
list_accounts | List accounts (filterable). |
get_account | Fetch a single account. |
create_account | Create an account. |
update_account | Update an account. |
get_account_tree | The chart of accounts as a hierarchy. |
get_account_balance | An account's current balance. |
get_account_ledger | An account's individual postings. |
seed_accounts | Seed the standard chart of accounts. |
Contacts
| Tool | Description |
|---|---|
list_contacts | List customers and vendors. |
get_contact | Fetch a single contact. |
create_contact | Create a contact. |
update_contact | Update a contact. |
Journal entries
| Tool | Description |
|---|---|
list_journal_entries | List journal entries; filter by status/date/reference/source, page with cursor, trim columns with fields. Lean columns by default (no source_data). |
count_journal_entries | Count entries matching a filter without fetching rows — cheap backlog sizing. |
get_journal_entry | Fetch a single entry. |
create_journal_entry | Create an entry (draft or auto-posted); each line takes account_id or account (code/name). |
batch_create_journal_entries | Create many entries in one call. Compact response by default; include_entries echoes them. |
post_journal_entry | Post a draft entry. Accepts idempotency_key (retry returns the posted entry, not an error). |
batch_post_journal_entries | Post up to 100 draft entries by id. Compact response by default; include_entries echoes them. |
post_journal_entries | Post all draft entries matching a filter (date/reference/source) — no id list, no 100 cap; safe to re-run. |
reverse_journal_entry | Reverse a posted entry. |
discard_journal_entry | Delete a draft entry. |
Import & categorization
| Tool | Description |
|---|---|
import_csv | Bulk-import contacts, pre-balanced journal entries, or a bank statement from a CSV — three targets, all with content de-duplication of re-uploads. See CSV import. |
set_payee_rules | Memorize payee → account rules so future bank imports auto-categorize matching rows. |
list_payee_rules | List the memorized payee → account rules. |
delete_payee_rule | Forget a memorized payee rule. |
The payee-rule tools are MCP-only (there's no REST equivalent) — over REST you
supply categorization inline via a category_account column or a category_map.
Large CSVs are queued over REST (202 + a job id); over MCP, split the file (see
CSV import).
Periods
| Tool | Description |
|---|---|
close_period | Close an accounting period. |
reopen_period | Reopen a closed period. |
list_closed_periods | List closed periods. |
Reports
| Tool | Description |
|---|---|
get_trial_balance | Trial balance as of a date. |
get_income_statement | Income statement (P&L) over a range. |
get_balance_sheet | Balance sheet as of a date. |
get_cash_flow_statement | Cash flow statement over a range. |
get_general_ledger | General ledger over a range. |
Every report tool (and get_account_balance / get_account_ledger) is
posted-only by default; pass include_drafts: true to fold in unposted drafts —
e.g. to validate an import in aggregate before committing it.
Webhooks
| Tool | Description |
|---|---|
list_webhooks | List webhook endpoints. |
get_webhook | Fetch a single endpoint. |
create_webhook | Register an endpoint. |
update_webhook | Update an endpoint. |
delete_webhook | Remove an endpoint. |
Skills & capability requests
| Tool | Description |
|---|---|
list_skills | List the skill catalog. |
get_skill | Fetch a skill's instructions. |
suggest_capability | Record a capability request or feedback. |
Resources
Beyond tools, the server exposes read-only MCP resources for quick context —
chart_of_accounts, recent_transactions, and accounting_skills.
Note
Tool names and behavior are derived from the live server. If a connected client shows a tool not listed here, it reflects a newer server version — the API reference is always the authoritative contract.