convert_transaction
ChatGPTConvert a payment into a transfer, or a transfer into a payment.
create_account
ChatGPTAdd a manual account, such as cash or a savings account the user tracks by hand. Connecting banks is not available.
create_asset
ChatGPTTrack a new asset or debt the user holds outside their accounts: a home, a car, an investment, a loan. Bank accounts are accounts, not assets. prices is the asset’s recorded values; for a unit-based asset the amount is the price of one unit and transactions are its buys and sales.
create_budget
ChatGPTCreate a monthly budget tracking one or more categories or tags.
create_category
ChatGPTCreate a custom category, optionally under a main category.
create_payment
ChatGPTAdd a manual expense or income to a manual account. Bank transactions come from the bank and cannot be created. Transfers are a separate kind of transaction.
create_recurring
ChatGPTCreate a recurring payment (subscription) from past payments, linked by their transaction ids. Its amount comes from the linked payments.
create_tag
ChatGPTCreate a tag.
create_transfer
ChatGPTAdd a manual transfer between the user’s manual accounts, or with one side open when money enters or leaves from outside. Bank accounts cannot be used: bank transfers come from the bank. Transfers do not count as spending.
delete_asset
ChatGPTDelete an asset for good, with its whole value history; this cannot be undone.
delete_budget
ChatGPTDelete a budget for good, with its limit history; this cannot be undone.
delete_category
ChatGPTDelete a custom category and its subcategories; this cannot be undone. The user’s transactions in them move to replacementCategoryId. Categories a budget tracks cannot be deleted.
delete_recurring
ChatGPTDelete a recurring payment for good; its transactions stay. This cannot be undone.
delete_tag
ChatGPTDelete a tag for good; its transactions stay, untagged. This cannot be undone.
delete_transactions
ChatGPTDelete transactions for good; this cannot be undone. Only the user's own manual transactions, and bank transactions the bank may have cancelled, can be deleted.
get_asset_history
ChatGPTOne manually tracked asset’s recorded values over time and, when the asset is unit-based, the buys and sales behind the units held.
get_budgets
ChatGPTBudget limits, spending and filled percentage for a financial month, calculated by the same code as app AI chat. Includes tag exclusions and historical limits.
get_edit_outcome
ChatGPTLook up the durable outcome of a mutation by its operationId after a timeout or lost response.
get_finance_context
ChatGPTReturns the connected Bilance account (its sign-in email and whether partner data is included), the user’s accounts and balances, data freshness, current budgets, tags, remaining usage limits, and the data dictionary (sign conventions, transfer/exclusion semantics, category hierarchy).
get_finance_report
ChatGPTThe app AI chat report: category, merchant, tag and savings-rate sections. months (YYYY-MM financial month labels, up to 24) gives monthly reports with budget progress; dateFrom and dateTo give one inclusive period. At most 30 merchants per period.
get_net_worth
ChatGPTNet worth: the user’s manually tracked assets plus their account balances, grouped by asset category. Debts are negative, so the total is assets minus liabilities. Mirrors the app’s net worth screen.
get_recurring_payments
ChatGPTDetected subscriptions and recurring payments with cadence, last/next expected dates, and monthly cost estimates. Optional date range scopes paymentsInRange (default: last 90 days to next 35 days).
get_similar_transaction_titles
ChatGPTFuzzy title lookup using the same ranking as app AI chat. Returns likely spellings of a merchant or title as they appear in the user’s transactions.
get_year_in_review
ChatGPTThe same annual financial data as app AI chat: yearly trends, budget performance, recurring payments and merchant patterns. guiltyPleasuresCategoryIds and charityCategoryIds optionally mark indulgence and charity categories.
query_transactions
ChatGPTSearch transactions by date, text, category, account, tag, direction and amount size, with cursor pagination and stable IDs. Each JSON row includes status (pending or booked), tags when present, localDate, nullable localTimeMinutes, and hasCanonicalLocalDateTime. When that flag is true, the local fields are the displayed wall clock, with a null time meaning date-only. When false, the local fields are not meaningful and dateTime is the original UTC instant. localTimeMinutes is minutes after midnight when present. format:"csv" returns a bulk export. Results are paged: pagination.nextCursor, while present, is the cursor for the next page with the same filters.
set_top_filter
ChatGPTPersist the household/top filter used by the Bilance app and MCP. Changes the visible scope immediately, not sharing permissions. Unlike a read tool topFilter override, this setting persists across calls and conversations.
submit_feedback
ChatGPTSend product feedback the user asks to share with the Bilance team: feature requests, UX improvements and roadmap ideas. Do not use it for bugs, crashes, bank sync problems or problems with transactions or accounts; send the user to Bilance support for those (the support chat in the Bilance app, or help@bilanceapp.com). Do not include personal details in the message; summarize only the product need and generalized context.
summarize_finances
ChatGPTAggregated income/expense for a date range, grouped by category, merchant, or tag, at monthly or total granularity. One call answers "top merchants this year", "spend per category per month", etc.
sync_bank_data
ChatGPTEnsure bank data is fresh. Idempotent: returns already_fresh when data is recent (uses no refresh), otherwise starts a sync. Up to 3 refreshes per UTC day, shared by all AI apps; each bank also limits how often it can sync. Results include lastSyncCompletedAt and, when refused, nextAllowedAt.
update_account
ChatGPTChange an account’s name, note, asset category, balance (manual accounts only), account type (bank accounts only), whether its transactions are hidden, whether it counts toward the total balance, or whether a bank account syncs.
update_asset
ChatGPTChange an asset’s name, note, asset category, how it is valued, or its recorded values and unit buys and sales. prices and transactions each replace the asset’s whole list, so entries that stay must be sent back. Currency can only be changed in the app.
update_budget
ChatGPTChange a budget’s title, monthly limit, tracked categories or tags, or note, or archive/reactivate it from the current month on.
update_category
ChatGPTRename, re-color, re-icon or re-parent a custom category, or hide or show a preset category (a preset category accepts hidden alone).
update_recurring
ChatGPTChange a recurring payment’s title, frequency or note, stop or resume it, or link and unlink payments.
update_tag
ChatGPTChange a tag’s title, color or note. Does not change which transactions carry the tag.
update_transactions
ChatGPTEdit transactions: category (single or split), title, note, date, tags, star, exclude from statistics, mark as seen. One entry per distinct change, each with only the fields it changes; an entry edits one transaction via transactionId or many identically via transactionIds. Applies immediately. On a partner transaction (shared:<owner>:<id>) only categoryId, categorySplits, excluded, starred and viewed are accepted, while the partner still shares it; an entry with any other field is skipped.