balance_sheet
ChatGPTGenerate balance sheet for a specified period and cadence. Dates must be YYYY-MM-DD. Can be filtered to specific departments, accounts and tags.
cash_flow_statement
ChatGPTGenerate cash flow statement for a specified period and cadence. Dates must be YYYY-MM-DD.
comparative_balance_sheet
ChatGPTComparative balance sheet: ending balances as of two dates, with difference and percentage columns. Use for prior-period or prior-year comparisons (e.g. period1=2024-12-31, period2=2025-12-31) or budget vs actual by passing budget_id. Each row carries <date>_Total columns, comparison_1_Difference and comparison_1_Percentage; 'headers' lists the column names.
comparative_income_statement
ChatGPTComparative income statement: two periods side by side, or budget vs actual, with variance columns. For budget vs actual pass budget_id and only the period2 dates; the budget is evaluated over the same range and the cadence defaults to the budget's cadence (a different cadence is rejected). Each row carries per-period totals plus comparison_1_Difference and comparison_1_Percentage.
get_accounts
ChatGPTRetrieve chart of accounts with optional filtering by type, subtype, or search query. Returns {count, results}.
get_aging
ChatGPTRetrieve AP/AR aging reports grouped by age buckets. Use aging_type='payable' for AP (bills); omit or use 'receivable' for AR (invoices). vendor_id is only applied when aging_type is 'payable' (AP). Dates in YYYY-MM-DD. tag_ids, tag_group_ids and department_ids narrow both report types, so an aging report can be scoped to one project tag or department.
get_amortizations
ChatGPTRetrieve amortizations with optional filtering. Returns {count, results}.
get_approvals
ChatGPTRetrieve draft queue / approval records (pending, approved and rejected changes). Use it to list what is awaiting approval or to audit who approved or rejected a change. Payloads are the serialized before/after state of the drafted object. Returns {count, results}.
get_bills
ChatGPTRetrieve bills with optional filtering. Returns {count, results}. tag_ids and department_ids match against the bill's lines, so bills can be scoped to one project tag or department.
get_budget_accounts
ChatGPTRetrieve the amount rows of a budget. Returns {count, results}. One row per (account, period, department) with id, account, account_name, period, department, department_name and amount. Budgets can have thousands of rows, so filter by account_id or period and paginate. Change amounts with set_budget_amounts.
get_budgets
ChatGPTRetrieve budget headers with optional filtering by name or entity. Returns {count, results}. Each row carries id, name, cadence, periods, start_date, end_date, entity, department, breakdown_type and tags. Use get_budget_accounts for the per-account amounts and comparative_income_statement(budget_id=...) for budget vs actual.
get_cash_by_customer
ChatGPTCash collected per customer: credit-side activity offset against bank accounts. Dates are optional and bound the posted transactions; omit both for all activity.
get_cash_by_vendor
ChatGPTCash paid per vendor: debit-side activity offset against bank accounts. Dates are optional and bound the posted transactions; omit both for all activity.
get_chart_account_settings
ChatGPTRetrieve the company's default accounts: AP, AR, unapplied credits/debits, deferred, accrued and unbilled revenue, discount, tax, clearing, processing fees, refund, fixed asset disposal and bad debt. Each setting has an account id plus a *_name_and_number display value. Call this before creating bills, invoices or memos to pick the right default accounts.
get_close_checklist
ChatGPTRetrieve one month's close checklist as task rows with prepare/review status, assignees, linked journal numbers and note/attachment presence. Returns {count, results}. Use list_record_attachments with record_type close_task to inspect a task's files.
get_contract_line_items
ChatGPTRetrieve one contract's line items of a given type. Returns {count, results}.
get_contracts
ChatGPTRetrieve revenue recognition contracts with optional filtering. Returns {count, results}. Use line item filters to find matching contracts before inspecting one contract with get_contract_line_items. For usage without a tier, set line_item_type="usage" and has_usage_tier=false.
get_credit_memos
ChatGPTRetrieve credit memos with optional filtering. Returns {count, results}.
get_current_user
ChatGPTDescribe who this connection acts as: the person, their workspace ("tenant"), their role, their permission grid per object type (none/read/draft/write) and approval rights, plus the MCP scopes granted to this connection. Call it first to learn which workspace you are in and what the write tools will be allowed to do.
get_custom_fields
ChatGPTRetrieve custom field definitions. Returns {count, results}. Custom fields are extra typed attributes (text, single_select, date, number, boolean) defined per object type; values are written on an object as custom_field_<name> keys when creating or updating it. They are NOT tags: tags and tag groups (get_tags / get_tag_groups) are reporting dimensions attached to transactions and lines. Each row carries id, model, name, label, field_type, options, is_required, display_order and is_active.
get_debit_memos
ChatGPTRetrieve debit memos with optional filtering. Returns {count, results}.
get_deferred_revenue_by_customer
ChatGPTDeferred revenue (DEFERRED_REVENUE accounts, net credit) grouped by customer. Dates are optional and bound the posted transactions; omit both for all activity.
get_departments
ChatGPTRetrieve department hierarchy with optional search filtering. Returns {count, results}.
get_entities
ChatGPTRetrieve chart entities (companies, subsidiaries, locations). Returns {count, results}.
get_expenses_by_department
ChatGPTOperating expenses (OPERATING_EXPENSES accounts, net debit) grouped by department. Dates are optional and bound the posted transactions; omit both for all activity.
get_expenses_by_vendor
ChatGPTOperating expenses (OPERATING_EXPENSES accounts, net debit) grouped by vendor, largest first. Dates are optional and bound the posted transactions; omit both for all activity.
get_fixed_asset_classes
ChatGPTRetrieve fixed asset classes: useful life plus the asset, accumulated depreciation and depreciation expense accounts used for PP&E. Use it to find asset class ids for get_fixed_assets and create_fixed_asset. Returns {count, results}.
get_fixed_assets
ChatGPTRetrieve fixed assets with optional filtering. Returns {count, results}.
get_invoices
ChatGPTRetrieve invoices with optional filtering. Returns {count, results}. tag_ids and department_ids match against the invoice's lines, so invoices can be scoped to one project tag or department.
get_journal_entries
ChatGPTRetrieve journal entry headers, optionally with their transaction lines. Lines are the same ChartTransaction rows get_transactions returns, nested per entry. Omitting both dates returns only recent entries; pass explicit dates to reach older ones. Returns {count, results}; count is the full total so truncation is visible.
get_journal_entry_summary
ChatGPTCheap aggregate of journal entries: total count, count by source, earliest and latest date, line count and booked debit/credit totals. Use it as a pre-flight check for whether Campfire holds data for an entity or period before pulling entries or transactions.
get_leases
ChatGPTRetrieve leases with optional filtering. Returns {count, results}.
get_payment_terms
ChatGPTRetrieve payment terms (Net 30, Net 60, Due on Receipt, ...) ordered by due days. Use it to find payment term ids for create_invoice and create_bill. Returns {count, results}.
get_prepaid_expenses_by_vendor
ChatGPTPrepaid expense balances (PREPAID accounts, net debit) grouped by vendor. Dates are optional and bound the posted transactions; omit both for all activity.
get_products
ChatGPTRetrieve the product and service catalog. Use it to find product ids for invoices and contract line items. Returns {count, results}.
get_revenue_by_customer
ChatGPTRevenue (REVENUE accounts, net credit) grouped by customer, largest first. Dates are optional and bound the posted transactions; omit both for all activity.
get_revenue_transactions
ChatGPTRetrieve revenue transactions with optional filtering. Returns {count, results}.
get_tag_groups
ChatGPTRetrieve tag groups (custom dimensions such as 'Location' or 'Product Line'). A tag group is a reporting dimension whose values are tags; it is NOT a custom field (see get_custom_fields for typed per-object attributes). Returns {count, results}; each row carries id, name, slug and timestamps. Pass a group's id as group_id to get_tags to list its values, or its name as tag_group_name to the financial report tools when group_by='tag'.
get_tags
ChatGPTRetrieve transaction tags (custom dimension values). Returns {count, results}. Tags are reporting dimensions attached to transactions and document lines; they are NOT custom fields (typed per-object attributes, see get_custom_fields). Each tag row carries id, name, group, group_name, parent, parent_name and is_active. Filter by `q (matches tag or group name) and group_id. With groups_only=True returns the customer's tag groups as {id, name}` rows instead; prefer get_tag_groups for the full group representation.
get_transactions
ChatGPTRetrieve general ledger transactions with filtering and pagination. All dates YYYY-MM-DD. Returns {count, results}.
get_trial_balance
ChatGPTMonthly trial balance, one row per account with a debit-positive balance column per YYYY-MM period. With cumulative=true it is an authoritative ending-balance source for reconciliations. Use get_trial_balance_summary for a cheap account-type rollup instead. Returns {count, results}.
get_trial_balance_summary
ChatGPTTrial balance collapsed to totals by account type per period, plus account counts and per-period absolute totals. A cheap "is there data for this period?" check; drill into accounts with get_trial_balance.
get_unearned_revenue_by_customer
ChatGPTAccrued / unearned revenue (ACCRUED_REVENUE accounts, net credit) grouped by customer. Dates are optional and bound the posted transactions; omit both for all activity.
get_vendors
ChatGPTRetrieve vendors with optional filtering by search query and vendor type. Returns {count, results}.
income_statement
ChatGPTGenerate income statement for a specified period and cadence. Dates must be YYYY-MM-DD. Can be filtered to specific departments, accounts and tags.
list_record_attachments
ChatGPTList file attachments on one record as safe metadata (file id, name, content type, size, timestamps). Storage paths and uploader details are never returned. A missing or inaccessible record reports status not_found.
read_help_article
ChatGPTRead one complete Campfire help article by the Article ID surfaced by search_docs. Returns {content} as markdown.
read_record_attachment
ChatGPTRead a bounded portion of one attachment's text. PDFs return page labels and continuation hints; other documents use character offsets. Content passes a safety scan before it is returned, which counts toward the company's Ember AI spend. Call list_record_attachments first to get the file id.
search_docs
ChatGPTSearch Campfire help documentation and return the most relevant sections in full, each with its public link and an 'Article ID:' line. Use read_help_article with that id when a section is not enough context. Returns {content} as markdown.
balance_sheet
Claudecash_flow_statement
Claudeget_accounts
Claudeget_aging
Claudeget_budgets
Claudeget_contracts
Claudeget_departments
Claudeget_entities
Claudeget_tags
Claudeget_transactions
Claudeget_vendors
Claudeincome_statement
Claude