Transaction Tools
The AI2Fin MCP server exposes a set of transaction tools so your AI assistant can query expenses and income, surface tax-deductible spending, analyse where your money goes, and tidy up categorisation in bulk — all using natural language.Every request is scoped to your own account. Tools only ever return your own transactions, and only when called with your valid credentials.
get_transactions
Retrieves transactions with AI analysis (cached - no re-analysis).Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | No | Start date (ISO 8601, e.g., “2025-01-01”) |
endDate | string | No | End date (ISO 8601) |
isTaxDeductible | boolean | No | Filter tax deductible only |
categoryId | string | No | Filter by category ID |
minAmount | number | No | Minimum amount |
maxAmount | number | No | Maximum amount |
limit | number | No | Max results (default: 100) |
Response fields
Each transaction in the response includes the fields you’d expect to work with:| Field | Description |
|---|---|
id | Transaction identifier |
description | What the transaction was for |
amount | Amount (negative = expense, positive = income) |
date | Transaction date (ISO 8601) |
primaryType | expense, income, or transfer |
secondaryType | bill, one-time expense, or capital expense |
isTaxDeductible | Whether the transaction is flagged as deductible |
taxDeductionReason | Plain-language reason it qualifies |
businessUsePercentage | Business-use portion (0–100) |
category | Assigned category (id, name, color) |
merchant | Merchant or payee name |
notes | Your notes on the transaction |
Example Request
Example Response
get_tax_deductible_summary
Summarizes tax deductible transactions grouped by category.Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | No | Start date |
endDate | string | No | End date |
Example Request
Example Response
create_transaction
Creates a new transaction.Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
description | string | Yes | Transaction description |
amount | number | Yes | Amount (negative for expenses, positive for income) |
date | string | Yes | Date (ISO 8601) |
primaryType | string | Yes | ”expense”, “income”, or “transfer” |
secondaryType | string | No | ”bill”, “one-time expense”, “capital expense” |
isTaxDeductible | boolean | No | Is tax deductible (default: false) |
categoryId | string | No | Category ID |
merchant | string | No | Merchant name |
notes | string | No | Additional notes |
Example Request
Example Response
trigger_smart_categorization
Categorises uncategorised or specified transactions for you, automatically assigning the most likely category to each.Transactions that have already been categorised are reused as-is for speed. Set
force: true only when you want everything re-evaluated from scratch.Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
transactionIds | string[] | No | Specific transaction IDs (if empty, processes uncategorized) |
force | boolean | No | Force re-categorization (default: false) |
Example Request
Example Response
get_category_spending_summary
NEW - Analytics Tool
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | Yes | Start date (ISO 8601) |
endDate | string | Yes | End date (ISO 8601) |
minAmount | number | No | Minimum transaction amount to include |
limit | number | No | Max categories to return (default: 100) |
Example Response
get_top_merchants
NEW - Analytics Tool
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | Yes | Start date (ISO 8601) |
endDate | string | Yes | End date (ISO 8601) |
limit | number | No | Max merchants to return (default: 10) |
Example Response
compare_spending_periods
NEW - Analytics Tool
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
period1Start | string | Yes | Period 1 start date |
period1End | string | Yes | Period 1 end date |
period2Start | string | Yes | Period 2 start date |
period2End | string | Yes | Period 2 end date |
groupBy | string | No | ”total”, “category”, or “merchant” (default: “category”) |
Example Response (Total Comparison)
bulk_categorize_transactions
NEW - Bulk Operation
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
transactionIds | string[] | No* | Specific transaction IDs |
categoryId | string | Yes | Category to assign |
filterByMerchant | string | No* | Merchant name filter (alternative to IDs) |
filterStartDate | string | No | Start date for filter |
filterEndDate | string | No | End date for filter |
transactionIds OR filterByMerchant required
Example Response
bulk_update_transactions
NEW - Bulk Operation
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
transactionIds | string[] | Yes | Transaction IDs to update |
updates | object | Yes | Fields to update (see below) |
categoryId(string): New categoryisTaxDeductible(boolean): Tax statusbusinessUsePercentage(number): Business use 0-100notes(string): Add notes
Example Response
find_duplicate_transactions
NEW - Bulk Operation
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | Yes | Start date to search |
endDate | string | Yes | End date to search |
toleranceHours | number | No | How close in time two charges must be to count as duplicates |
amountTolerance | number | No | How close in amount two charges must be to count as duplicates |
Example Response
analyze_transaction_categorization
AI Analysis Tool
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
transactionId | string | Yes | Transaction to analyze |
merchant | string | No | Merchant override (defaults to stored merchant) |
description | string | No | Description override |
amount | number | No | Amount override |
Example Response
analyze_transaction_tax_deductibility
AI Analysis Tool
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
transactionId | string | Yes | Transaction to analyse |
Example Response
apply_analysis_to_transaction
Applies the approved recommendations to the transaction in one step: category, tax-deductible status, business-use portion, and GST handling.Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
transactionId | string | Yes | Transaction to update |
categoryId | string | No | Category ID |
categoryName | string | No | Category name (looked up if ID is missing) |
isTaxDeductible | boolean | No | Mark as deductible |
businessUsePercentage | number | No | Business use (0-100) |
gstIncluded | boolean | No | Whether GST/VAT is included in the amount |
gstAmount | number | No | GST/VAT amount; calculated and recorded for you if omitted |
gstAmount, it’s calculated and recorded for you based on the transaction.
Example Response
get_spending_outlook
Hybrid Analytics Tool
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
startDate | string | No | Defaults to today |
endDate | string | No | Defaults to +60 days |
includeActual | boolean | No | Include processed transactions (default: true) |
includeProjected | boolean | No | Include bill projections (default: true) |
includeOverdue | boolean | No | Include overdue occurrences (default: true) |
includePaidProjected | boolean | No | Include already-paid occurrences (default: false) |
limit | number | No | Max records per section (default: 250, max 500) |
Example Response (trimmed)
Real-World Examples
Get Recent Expenses
User: “Show my expenses from last month” AI calls:Tax Deductible Summary
User: “How much can I deduct this quarter?” AI calls:Add Transaction
User: “Create a transaction for lunch $45 today” AI calls:Categorize Uncategorized
User: “Categorize my uncategorized transactions” AI calls:Analytics - Category Breakdown
User: “What’s my biggest expense category this month?” AI calls:Analytics - Top Merchants
User: “Where do I spend the most?” AI calls:Analytics - Period Comparison
User: “Did I spend more this month vs last month?” AI calls:Bulk Operations - Categorize by Merchant
User: “Categorize all Uber transactions as Transport” AI calls:Bulk Operations - Find Duplicates
User: “Did I pay this bill twice?” AI calls:Explain a Categorization
AI calls:Apply the Suggestion
AI calls:Forecast the Next 60 Days
AI calls:Important Notes
Transaction Amounts
- Negative = Expenses (e.g., -100 means you spent $100)
- Positive = Income (e.g., +100 means you received $100)
Primary Types
expense- Money going outincome- Money coming intransfer- Moving money between accounts
Secondary Types (for expenses)
bill- Recurring billsone-time expense- One-off purchasescapital expense- Large asset purchases
Fast, ready-to-use results
- Tax and categorisation results come back already calculated — there’s no waiting for re-analysis when you read your data.
- Use
trigger_smart_categorizationwhen you want AI2Fin to (re)categorise transactions.
Privacy and speed
- Queries are fast and scoped to your account, so your assistant gets answers quickly.
- You only ever see your own data — every request is tied to your credentials.
Next Steps
Bill Tools
Manage recurring bills
Subscription Tools
Check feature access
