# Balances > Accounting software for small owner-operated businesses, built so the AI agent you already use can work in your books. Balances runs a remote MCP server at https://app-api.balances.ai/mcp/ (streamable HTTP), one URL for every workspace. You need a Balances account (the free 14-day trial works); connecting is included with the Pro and Global plans at no extra charge. Sign in with OAuth (dynamic client registration: you sign in to Balances and choose the workspaces the connection may reach, or all of them, including ones joined later). Call list_workspaces and switch_workspace to move between them; each tool result starts with a Workspace: line. Balances no longer issues access tokens; tokens created earlier keep working until they expire or are revoked in Settings → AI connections. - Claude (browser or desktop app): Customize → Connectors → + → Add custom connector, name it Balances, paste the server URL, then click Connect and sign in. Turn Balances on per chat from + → Connectors. On Team or Enterprise, an owner adds it first under Organization settings → Connectors. - ChatGPT (start at chatgpt.com in a browser): turn on Developer mode in Settings → Security and login, add Balances at chatgpt.com/plugins with the server URL as "MCP server URL", sign in, then pick Balances from the tools menu in a new chat. - Claude Code: `claude mcp add --transport http balances https://app-api.balances.ai/mcp/`, then sign in when prompted. - Any other app that supports remote MCP servers: the server URL with HTTP transport and OAuth sign-in. Balances is built so an agent does what the person asks and no more, without friction, and how much checking a step gets depends on what is at stake. Most changes that move money or alter the books, such as posting documents, payments or journal entries, or undoing a reconciliation, are prepared first and applied with a second call (apply_proposal). Each prepared change returns summary_for_person, a plain summary Balances writes from the stored change; show it to the person you work for and apply only after they agree. Balances does not enforce that step. Small steps the person asked for, such as changing a setting or turning a saved receipt into a bill (promote_capture), apply when called. Customer emails go only to addresses already saved on that customer, and the same document reaches any one address at most once a day. Every change to the books appears in the workspace Activity feed with who made it, when, and which AI connection it came through (for example "via Claude (AI connection)"), and Balances records every tool call a connection makes. Tools carry MCP annotations (read-only, destructive, idempotent, open-world). OAuth connections get the access the app requests, View only when it requests none, capped at the person's role. ## Docs - [Bring your own agent](https://www.balances.ai/bring-your-own-agent/): what the MCP connector does, how to connect, permissions and the audit log - [Features](https://www.balances.ai/features/): everything Balances does, one page per area - [The agent and Review](https://www.balances.ai/features/ai-agent/): the built-in agent, what it does when asked, and the Review queue for its suggestions - [Bank feeds and reconciliation](https://www.balances.ai/features/bank-feeds-and-reconciliation/): Plaid feeds, statement imports, categorization, transfers, statement reconciliation - [Receipts and bills](https://www.balances.ai/features/receipts-and-bills/): the Inbox address, receipt matching, filling bills from a supplier's PDF - [Invoicing and payments](https://www.balances.ai/features/invoicing-and-payments/): invoices with Stripe pay links (card and ACH), estimates, recurring invoices, reminders - [Reports and Profit Insights](https://www.balances.ai/features/reports/): financial statements, aging, sales tax, 1099-NEC, job profitability, Profit Insights - [For accountants and bookkeepers](https://www.balances.ai/accountants/): firm workspace, client list, firm-owned client workspaces, firm-wide agent instructions - [Tool list (JSON)](https://app-api.balances.ai/.well-known/mcp/tools.json): every tool with its full description and input schema, generated from the running server - [OAuth protected resource metadata](https://app-api.balances.ai/.well-known/oauth-protected-resource): authorization discovery for MCP clients - [Pricing](https://www.balances.ai/#pricing): plans and what is included - [Privacy Policy](https://www.balances.ai/privacy/) - [Terms of Service](https://www.balances.ai/terms/) ## Tools - apply_proposal: Apply the exact change the customer was shown, after they approve it. - ask_for_help: Ask the Balances team for help. - attach_file: Attach a file, or a receipt waiting in the Inbox, to the record it belongs with; a retry reuses the attachment. - audit_statement_history: Compare books against multiple statement ending balances. - check_balance_reconciliation: Check where every account stands against its bank, lender or broker: which bank and card accounts are due a statement reconciliation, each loan or investment against the balance its institution states, and Money in Transit against zero. - check_reconciliation_lock: Check whether a reconciled statement locks a bank transaction against changes. - create_firm_task: Create a task shared between the accounting firm and this workspace. - delete_vendor_rule: Remove a merchant rule; the sentence it is kept as in the Playbook is dismissed with it. - diagnose_reconciliation_difference: Break down a statement difference into opening balance and contributing transactions. - discard_proposal: Decline a proposal so it can no longer be applied. - download_report: Create a report download link for the signed-in user in this workspace. - explain_books_vs_register: Compare ledger books with the imported register and attribute the difference to posting gaps, opening balance and an unattributed residual. - explain_feed_connection: Diagnose feed connection and delivery state. - explain_import_coverage: Inspect import date coverage and same-date/amount/direction duplicate candidates. - explain_opening_balance_equity: Break live Opening Balance Equity into opening components and other postings, including entries after books-start. - explain_register_vs_bank: Compare the imported register with the latest institution-reported balance. - explain_suggestion: Explain why Balances suggested what it did for one bank transaction. - fetch_tool_result: Read back a large tool result that an earlier call returned as a stored result with a handle. - finalize_upload: Verify an uploaded file against its declared size, SHA-256 and content type, then register it in the workspace. - find_capture_bank_matches: Find the bank charges that could match a receipt in the Inbox. - find_ledger_duplicates: Scan existing bank transactions and save a candidate set for stage_bulk_exclude. - force_sync_bank_account: Request fresh transactions for a connected bank account. - forecast_cash_flow: Forecast weekly cash in and out from the due dates of open invoices and bills. - generate_1099_nec_report: Report 1099-NEC vendor payments in books currency for a tax year. - generate_report: Run a financial report, such as Profit and Loss, Balance Sheet, Cash Flow or aging. - get_account_balances: Read complete chart hierarchy, classifications, balances and all-time transaction counts, including voided history. - get_balances: Read balances by customer or vendor, by account, or by month. - get_categorization_progress: Count bank transactions waiting for review, and say why the excluded ones are excluded. - get_entities: Read one or more records of one type by identifier. - get_financial_metrics: Return revenue, expenses and profit for a period, optionally compared with the previous period. - get_inbound_email_address: Get the workspace receipt/bill forwarding address and allowed senders. - get_notification_settings: Read how Balances notifies the person: the global digest schedule, this workspace's notification level and its email categories. - get_payment_collection_status: Read Stripe collection readiness, settings and payment counts. - get_pending_suggestion_inventory: Read Balances' pending categorization suggestions as a grouped overview, or the rows in chosen groups. - get_schema: Get the full field list for creating a record or for a change action, or list every change action. - get_transaction_detail_posting: Read the ledger lines and source records behind one row of the Transaction Detail report. - get_transaction_precedent: Show how earlier bank lines like these were booked: categories, matched bills or invoices, and transfers, with a count per category. - get_wave_import_status: Read the workspace's Wave import: whether it finished, failed, is running, or was refused before it started, and why. - get_workspace_info: Read the workspace's settings: name, books start and lock dates, currency, timezone and fiscal year. - invite_user: Email an invitation to join this workspace with the supplied role. - list_bank_accounts_overview: List every bank account, active and archived, with its balances, bank connection health and reconciliation status. - list_bank_imports: List bank-statement imports, newest first, so you can name one import. - list_categorization_rules: List the workspace's categorization instructions in the customer's own words, including inactive ones, with ids and text. - list_duplicate_bank_account_suspects: Find suspected duplicate bank accounts using shared transaction signatures (date, amount, direction, currency). - list_firm_tasks: List firm collaboration tasks: questions, file requests, document reviews and to-dos shared between the accounting firm and this workspace. - list_invoice_milestones: List the payment requests for parts of an invoice, with totals requested and paid. - list_learned_patterns: List the merchant categories Balances has learned from past choices, strongest first. - list_online_payments: List Stripe receipts in this workspace, optionally filtered by payment_id. - list_opening_credit_notes: List customer or vendor opening-balance credit notes, including migrated credits. - list_options: List the choices available in this workspace for one option_type: contacts, accounts, currencies, exchange rates, document types, account detail types or tags. - list_pending_captures: List unfiled, undismissed mobile receipt/check captures, newest first. - list_playbook: List what is saved in the customer's Playbook with labels, kinds and status, and each item's id for changing it. - list_recent_inbound_emails: List the newest emails the workspace Inbox address received or refused, newest first. - list_reconcile_candidates: List transactions assignable to a statement, with statement-convention balance effects. - list_recurring: List everything that repeats or is already booked ahead of today. - list_service_items: List the workspace service catalog with item ids and codes. - list_statement_reconciliations: Without bank_account, report every bank account, deactivated ones last and marked archived: the statement date it is reconciled through (null if never), whether that reconciliation still matches the books, and its register coverage. - list_tax_rates: List configured tax rates with ids, names, percentages, compound status and posting accounts. - list_trade_names: List workspace DBAs: alternate invoice issuer names under the same legal entity. - list_vendor_rules: List the merchant rules that set the suggested category for a merchant's transactions. - list_workspaces: List the workspaces this connection may reach, and which one it is in now. - lookup_knowledge: Look up how Balances works: product guides, workflows, accounting terms, and what can be done where. - manage_invoice_delivery: Change customer invoice email settings: owner copies of invoices and reminders, and customer receipts after online payments clear. - post_firm_task_message: Post a message visible to both the firm and workspace user on a firm task. - preview_bank_account_merge: Preview merging a duplicate bank account into the one you keep. - preview_statement_reconciliation: Preview a statement reconciliation against assigned_transaction_ids, or the date window when omitted. - process_file: Import a bank statement, or read invoices, bills and receipts from a spreadsheet, PDF or image. - promote_capture: Create a document, reimbursement or expected payment from a capture. - query_transaction_detail: Read the Transaction Detail report for a date range, on a cash or accrual basis. - read_bank_register: Read a bank register in date order. - read_document: Read a workspace PDF, image, spreadsheet, CSV or text file without booking it. - resolve_firm_task: Mark a firm task as resolved, recording the requesting user as resolver; the task leaves the default open list. - review_financial_statements: Review the books: the financial statements and every Review > Books check. - search_billable_expenses: Find a client's unbilled expenses before invoicing them. - search_entities: Find contacts, invoices, bills, accounts, bank transactions or journal entries by name or filter. - search_files: Find workspace files from chat, phone, email or records. - search_postable_accounts: Search postable GL accounts; excludes non-postable headers. - send_estimate_preview_to_me: Email a preview of an estimate and its PDF to the signed-in user only. - send_invoice_copy_to_me: Email a clean invoice PDF to the signed-in user for printing, mailing, forwarding, or checking branding. - send_to_customer: Email a customer an invoice, an estimate, their statement or a payment request, once your user approves the recipients. - set_vendor_rule: Save a merchant rule that always suggests one category for a merchant. - stage_apply_proposal: Prepare changes to contacts, invoices, bills, accounts and other records for the customer to approve. - stage_bulk_exclude: Prepare excluding duplicate bank transactions found by find_ledger_duplicates, for approval. - stage_categorize_proposal: Prepare bank categorizations, document matches, transfers or exclusions without posting. - stage_exclude_import: Prepare excluding every transaction in one import that has no bookkeeping, for approval. - stage_prior_system_coding: Categorize bank transactions to the accounts the customer's Xero books used, read from Xero's Account Transactions export (CSV or Excel). - start_upload: Start a PDF, CSV, Excel or image upload. - suggest_feature: Send the user's product suggestion or feature request to the Balances team. - switch_workspace: Move this connection to another of its workspaces. - tell_playbook: Save something the customer told you to their Playbook, so Balances always acts on it. - update_notification_settings: Change how Balances notifies the person: the digest schedule, this workspace's notification level, its email categories, or any of them. - update_workspace_branding: Update how invoices look and what they say: branding, business details, payment terms, locale, logo, whether the business name prints under the logo, or the prefix and next number of new invoices.