Browse docs

MCP tools

Once a client is connected, Somara exposes the full accounting engine as MCP tools. Most tools map to a REST operation documented in the API reference — same behavior, same data, same auth. A few (the payee-rule tools and most of the bank feed) are MCP-only, noted below.

Accounts

ToolDescription
list_accountsList accounts (filterable).
get_accountFetch a single account.
create_accountCreate an account.
update_accountUpdate an account.
get_account_treeThe chart of accounts as a hierarchy.
get_account_balanceAn account's current balance.
get_account_ledgerAn account's individual postings.
seed_accountsSeed the standard chart of accounts.

Contacts

ToolDescription
list_contactsList customers and vendors.
get_contactFetch a single contact.
create_contactCreate a contact.
update_contactUpdate a contact.

Journal entries

ToolDescription
list_journal_entriesList journal entries; filter by status/date/reference/source, page with cursor, trim columns with fields. Lean columns by default (no source_data).
count_journal_entriesCount entries matching a filter without fetching rows — cheap backlog sizing.
get_journal_entryFetch a single entry.
create_journal_entryCreate an entry (draft or auto-posted); each line takes account_id or account (code/name).
batch_create_journal_entriesCreate many entries in one call. Compact response by default; include_entries echoes them.
post_journal_entryPost a draft entry. Accepts idempotency_key (retry returns the posted entry, not an error).
batch_post_journal_entriesPost up to 100 draft entries by id. Compact response by default; include_entries echoes them.
post_journal_entriesPost all draft entries matching a filter (date/reference/source) — no id list, no 100 cap; safe to re-run.
reverse_journal_entryReverse a posted entry.
discard_journal_entryDelete a draft entry.

Import & categorization

ToolDescription
import_csvBulk-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_rulesMemorize payee → account rules so future bank imports auto-categorize matching rows.
list_payee_rulesList the memorized payee → account rules.
delete_payee_ruleForget 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 on both surfaces — over REST you get a 202 with a job id; over MCP, import_csv returns { status: 'pending', job_id, row_count }. Poll for the result (REST GET /import/jobs/{jobId}, MCP get_import_job). Only files beyond the async cap (50,000 rows) must be split (see CSV import).

Bank feed (Plaid)

Connect a bank in the dashboard — Plaid Link is a human-only browser flow — and transactions stream in, get categorized, and book to the ledger. Agents work the feed (review, categorize, sync) but cannot initiate a connection. See Bank connections and the review-bank-feed skill.

ToolDescription
list_bank_connectionsConnected banks (Plaid items) with each account, its GL mapping, connection status, and last sync.
list_bank_transactionsStaged bank-feed transactions; filter by review_status (needs_review / draft_review / auto_posted / ignored) and date.
get_bank_transactionFetch one staged transaction by our id or the Plaid transaction_id.
categorize_bank_transactionSet a transaction's contra account and book it; memorize the payee to auto-book future matches. Rebooks safely (draft discarded+recreated, posted reversed+recreated).
sync_bank_accountQueue a transaction sync for a connection.

These tools are MCP-only except sync_bank_account, which mirrors POST /api/v1/plaid/items/{itemId}/sync; there is no REST endpoint for listing or categorizing the feed.

Periods

ToolDescription
close_periodClose an accounting period.
reopen_periodReopen a closed period.
list_closed_periodsList closed periods.

Reports

ToolDescription
get_trial_balanceTrial balance as of a date.
get_income_statementIncome statement (P&L) over a range.
get_balance_sheetBalance sheet as of a date.
get_cash_flow_statementCash flow statement over a range.
get_general_ledgerGeneral 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

ToolDescription
list_webhooksList webhook endpoints.
get_webhookFetch a single endpoint.
create_webhookRegister an endpoint.
update_webhookUpdate an endpoint.
delete_webhookRemove an endpoint.

Skills & capability requests

ToolDescription
list_skillsList the skill catalog.
get_skillFetch a skill's instructions.
suggest_capabilityRecord 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.