gradeNot graded
page: Statements
check_transactionsAnswer
Validate and check a batch of proposed Koshara transactions without creating them. Use this for statement imports instead of validating transactions one by one. Checks account/category validity, required fields, review metadata, and possible duplicates. Categorize the batch yourself using one list_categories call; this tool does not infer categories.
View tool JSON
{
"name": "check_transactions",
"kind": "answer",
"impl": "imperative",
"description": "Validate and check a batch of proposed Koshara transactions without creating them. Use this for statement imports instead of validating transactions one by one. Checks account/category validity, required fields, review metadata, and possible duplicates. Categorize the batch yourself using one list_categories call; this tool does not infer categories.",
"inputSchema": {
"type": "object",
"properties": {
"transactions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "YYYY-MM-DD date."
},
"description": {
"type": "string"
},
"amount": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Positive amount in INR."
},
"kind": {
"type": "string",
"enum": [
"expense",
"income"
],
"default": "expense"
},
"accountId": {
"type": "string"
},
"categoryId": {
"type": "string"
},
"notes": {
"type": "string"
},
"reviewStatus": {
"type": "string",
"enum": [
"confirmed",
"needs_review"
],
"default": "confirmed"
},
"source": {
"type": "string",
"enum": [
"manual",
"agent"
],
"default": "agent"
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"date",
"description",
"amount",
"accountId",
"categoryId"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 200
}
},
"required": [
"transactions"
],
"additionalProperties": false
},
"page": "/statements"
}get_import_contextAnswer
Return the accounts, categories, recent transaction reference data, and active staged import in one call. Use this once before preparing a statement so you can reuse existing finance structures and identify possible duplicates.
View tool JSON
{
"name": "get_import_context",
"kind": "answer",
"impl": "imperative",
"description": "Return the accounts, categories, recent transaction reference data, and active staged import in one call. Use this once before preparing a statement so you can reuse existing finance structures and identify possible duplicates.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/statements"
}create_import_sessionAction
Create a temporary statement import workspace. This does not add anything to Transactions. Reuse the returned session ID when staging rows or proposing groups.
View tool JSON
{
"name": "create_import_session",
"kind": "act",
"impl": "imperative",
"description": "Create a temporary statement import workspace. This does not add anything to Transactions. Reuse the returned session ID when staging rows or proposing groups.",
"inputSchema": {
"type": "object",
"properties": {
"sourceName": {
"type": "string"
},
"accountId": {
"type": "string"
}
},
"required": [
"sourceName"
],
"additionalProperties": false
},
"page": "/statements"
}stage_transactionsAction
Add a prepared transaction batch to a temporary import session for human review. This never creates live Koshara Transactions; uncertain and duplicate rows are excluded by default.
View tool JSON
{
"name": "stage_transactions",
"kind": "act",
"impl": "imperative",
"description": "Add a prepared transaction batch to a temporary import session for human review. This never creates live Koshara Transactions; uncertain and duplicate rows are excluded by default.",
"inputSchema": {
"type": "object",
"properties": {
"sessionId": {
"type": "string"
},
"transactions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "YYYY-MM-DD date."
},
"description": {
"type": "string"
},
"amount": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Positive amount in INR."
},
"kind": {
"type": "string",
"enum": [
"expense",
"income"
],
"default": "expense"
},
"accountId": {
"type": "string"
},
"categoryId": {
"type": "string"
},
"notes": {
"type": "string"
},
"reviewStatus": {
"type": "string",
"enum": [
"confirmed",
"needs_review"
],
"default": "confirmed"
},
"source": {
"type": "string",
"enum": [
"manual",
"agent"
],
"default": "agent"
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"date",
"description",
"amount",
"accountId",
"categoryId"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 200
}
},
"required": [
"sessionId",
"transactions"
],
"additionalProperties": false
},
"page": "/statements"
}update_import_itemAction
Adjust one staged row without creating a live transaction. Use it to improve the proposed description, account, category, note, or skip decision. Suspected duplicate overrides remain a human-only action in the Statements review UI.
View tool JSON
{
"name": "update_import_item",
"kind": "act",
"impl": "imperative",
"description": "Adjust one staged row without creating a live transaction. Use it to improve the proposed description, account, category, note, or skip decision. Suspected duplicate overrides remain a human-only action in the Statements review UI.",
"inputSchema": {
"type": "object",
"properties": {
"sessionId": {
"type": "string"
},
"itemId": {
"type": "string"
},
"description": {
"type": "string"
},
"accountId": {
"type": "string"
},
"categoryId": {
"type": "string"
},
"note": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"skipped"
]
}
},
"required": [
"sessionId",
"itemId"
],
"additionalProperties": false
},
"page": "/statements"
}group_import_itemsAction
Propose that two or more statement rows represent one logical expense, such as EMI principal, interest, and tax. The group remains a suggestion until the human chooses Merge or Keep separate in Koshara.
View tool JSON
{
"name": "group_import_items",
"kind": "act",
"impl": "imperative",
"description": "Propose that two or more statement rows represent one logical expense, such as EMI principal, interest, and tax. The group remains a suggestion until the human chooses Merge or Keep separate in Koshara.",
"inputSchema": {
"type": "object",
"properties": {
"sessionId": {
"type": "string"
},
"itemIds": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"label": {
"type": "string"
},
"description": {
"type": "string"
},
"categoryId": {
"type": "string"
}
},
"required": [
"sessionId",
"itemIds",
"label"
],
"additionalProperties": false
},
"page": "/statements"
}get_import_sessionAnswer
Return the current staged rows, review statuses, duplicate references, and proposed groups for one import session. This is read-only.
View tool JSON
{
"name": "get_import_session",
"kind": "answer",
"impl": "imperative",
"description": "Return the current staged rows, review statuses, duplicate references, and proposed groups for one import session. This is read-only.",
"inputSchema": {
"type": "object",
"properties": {
"sessionId": {
"type": "string"
}
},
"required": [
"sessionId"
],
"additionalProperties": false
},
"page": "/statements"
}page: Dashboard
get_accountsAnswer
Returns available Koshara accounts. When importing a statement, call this once and map all transactions to the appropriate existing account. Do not invent or silently create an account when the correct account is uncertain.
View tool JSON
{
"name": "get_accounts",
"kind": "answer",
"impl": "imperative",
"description": "Returns available Koshara accounts. When importing a statement, call this once and map all transactions to the appropriate existing account. Do not invent or silently create an account when the correct account is uncertain.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/dashboard"
}list_categoriesAnswer
Returns all existing Koshara categories, including optional monthlyBudget values in INR. When processing multiple transactions, call this once and use the returned category list to categorize the entire batch. Prefer existing categories and avoid creating new ones unnecessarily; use Uncategorized with needs_review when genuinely uncertain.
View tool JSON
{
"name": "list_categories",
"kind": "answer",
"impl": "imperative",
"description": "Returns all existing Koshara categories, including optional monthlyBudget values in INR. When processing multiple transactions, call this once and use the returned category list to categorize the entire batch. Prefer existing categories and avoid creating new ones unnecessarily; use Uncategorized with needs_review when genuinely uncertain.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/dashboard"
}search_transactionsAnswer
Search Koshara transactions using the same live data shown in the Transactions UI. Use this to inspect existing activity before importing or answering finance questions.
View tool JSON
{
"name": "search_transactions",
"kind": "answer",
"impl": "imperative",
"description": "Search Koshara transactions using the same live data shown in the Transactions UI. Use this to inspect existing activity before importing or answering finance questions.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Matched against description and notes."
},
"accountId": {
"type": "string"
},
"categoryId": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"expense",
"income"
]
},
"reviewStatus": {
"type": "string",
"enum": [
"confirmed",
"needs_review"
]
},
"from": {
"type": "string",
"description": "Inclusive YYYY-MM-DD date."
},
"to": {
"type": "string",
"description": "Inclusive YYYY-MM-DD date."
},
"amount": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Exact amount in INR."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200,
"default": 50
}
},
"additionalProperties": false
},
"page": "/dashboard"
}get_spending_summaryAnswer
Return structured expense and category facts from Koshara for a date range, optionally filtered by account or category. Includes budgets and variance, transaction counts, review and uncategorized totals, six-month category trends, top merchants, recurring payments, and exact possible-duplicate groups. Use these facts for external reasoning; Koshara does not generate AI insights.
View tool JSON
{
"name": "get_spending_summary",
"kind": "answer",
"impl": "imperative",
"description": "Return structured expense and category facts from Koshara for a date range, optionally filtered by account or category. Includes budgets and variance, transaction counts, review and uncategorized totals, six-month category trends, top merchants, recurring payments, and exact possible-duplicate groups. Use these facts for external reasoning; Koshara does not generate AI insights.",
"inputSchema": {
"type": "object",
"properties": {
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive YYYY-MM-DD date. Defaults to the start of the current month."
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive YYYY-MM-DD date. Defaults to today."
},
"accountId": {
"type": "string"
},
"categoryId": {
"type": "string"
}
},
"additionalProperties": false
},
"page": "/dashboard"
}configure_cashflow_chartAction
Update the currently visible Dashboard cash-flow chart after analyzing Koshara data with read-only finance tools. This changes temporary presentation state only and never changes transactions, accounts, categories, or budgets. Use an insightTitle to summarize the finding, comparison to show change over time, and highlights to identify responsible dates or categories.
View tool JSON
{
"name": "configure_cashflow_chart",
"kind": "act",
"impl": "imperative",
"description": "Update the currently visible Dashboard cash-flow chart after analyzing Koshara data with read-only finance tools. This changes temporary presentation state only and never changes transactions, accounts, categories, or budgets. Use an insightTitle to summarize the finding, comparison to show change over time, and highlights to identify responsible dates or categories.",
"inputSchema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"combined",
"spending",
"income"
],
"description": "Visible cash-flow series."
},
"grouping": {
"type": "string",
"enum": [
"daily",
"weekly",
"monthly"
],
"description": "Time bucket size."
},
"dateRange": {
"type": "object",
"properties": {
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive start date."
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive end date."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
},
"accountIds": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true,
"description": "Existing account IDs to include. Empty or omitted includes every account."
},
"categoryIds": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true,
"description": "Existing category IDs to include. Empty or omitted includes every category."
},
"comparePreviousPeriod": {
"type": "boolean",
"description": "Overlay the immediately preceding period of equal duration."
},
"highlightedDates": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"uniqueItems": true,
"description": "Dates to emphasize on the chart."
},
"highlightedCategoryIds": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true,
"description": "Existing category IDs to emphasize as drivers."
},
"insightTitle": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Short agent-generated title explaining the chart insight."
}
},
"additionalProperties": false
},
"page": "/dashboard"
}configure_category_spending_chartAction
Update the currently visible Dashboard spending-by-category pie chart after analyzing Koshara data with read-only finance tools. This changes temporary presentation state only and never changes transactions, categories, or budgets.
View tool JSON
{
"name": "configure_category_spending_chart",
"kind": "act",
"impl": "imperative",
"description": "Update the currently visible Dashboard spending-by-category pie chart after analyzing Koshara data with read-only finance tools. This changes temporary presentation state only and never changes transactions, categories, or budgets.",
"inputSchema": {
"type": "object",
"properties": {
"dateRange": {
"type": "object",
"properties": {
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive start date."
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive end date."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false
},
"accountIds": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true,
"description": "Existing account IDs to include. Empty or omitted includes every account."
},
"categoryIds": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true,
"description": "Existing category IDs to include. Empty or omitted includes every spending category."
},
"highlightedCategoryIds": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true,
"description": "Existing category IDs to emphasize in the pie chart."
},
"insightTitle": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Short agent-generated title explaining the category insight."
}
},
"additionalProperties": false
},
"page": "/dashboard"
}page: Workspace
create_accountSensitive Action
Create a Koshara account only when the user explicitly requested or confirmed that new account. Do not create accounts automatically while interpreting a statement.
View tool JSON
{
"name": "create_account",
"kind": "transact",
"impl": "imperative",
"description": "Create a Koshara account only when the user explicitly requested or confirmed that new account. Do not create accounts automatically while interpreting a statement.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"bank",
"credit-card",
"cash",
"wallet",
"other"
]
},
"last4": {
"type": "string",
"pattern": "^\\d{4}$"
},
"institution": {
"type": "string"
}
},
"required": [
"name",
"type"
],
"additionalProperties": false
},
"page": "/workspace"
}update_accountAction
Update selected fields on an existing Koshara account. Omitted fields remain unchanged.
View tool JSON
{
"name": "update_account",
"kind": "act",
"impl": "imperative",
"description": "Update selected fields on an existing Koshara account. Omitted fields remain unchanged.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"bank",
"credit-card",
"cash",
"wallet",
"other"
]
},
"last4": {
"type": "string"
},
"institution": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"page": "/workspace"
}delete_accountSensitive Action
Permanently delete an account and all transactions assigned to it. Only call this after the user explicitly requests deletion and understands the returned transaction count will also be removed.
View tool JSON
{
"name": "delete_account",
"kind": "transact",
"impl": "imperative",
"description": "Permanently delete an account and all transactions assigned to it. Only call this after the user explicitly requests deletion and understands the returned transaction count will also be removed.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"page": "/workspace"
}page: Transactions
get_transactionAnswer
Get one Koshara transaction by its exact ID, including review metadata and resolved account/category names.
View tool JSON
{
"name": "get_transaction",
"kind": "answer",
"impl": "imperative",
"description": "Get one Koshara transaction by its exact ID, including review metadata and resolved account/category names.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"page": "/transactions"
}create_transactionAction
Create one transaction in the live Koshara store. Use create_transactions instead for statement imports. Do not silently guess an uncertain account or category: ask the user, or follow their instruction by using a suitable fallback such as Uncategorized and reviewStatus needs_review.
View tool JSON
{
"name": "create_transaction",
"kind": "act",
"impl": "imperative",
"description": "Create one transaction in the live Koshara store. Use create_transactions instead for statement imports. Do not silently guess an uncertain account or category: ask the user, or follow their instruction by using a suitable fallback such as Uncategorized and reviewStatus needs_review.",
"inputSchema": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"description": {
"type": "string"
},
"amount": {
"type": "number",
"exclusiveMinimum": 0
},
"kind": {
"type": "string",
"enum": [
"expense",
"income"
],
"default": "expense"
},
"accountId": {
"type": "string"
},
"categoryId": {
"type": "string"
},
"notes": {
"type": "string"
},
"reviewStatus": {
"type": "string",
"enum": [
"confirmed",
"needs_review"
],
"default": "confirmed"
},
"source": {
"type": "string",
"enum": [
"manual",
"agent"
],
"default": "agent"
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"date",
"description",
"amount",
"accountId",
"categoryId"
],
"additionalProperties": false
},
"page": "/transactions"
}update_transactionAction
Update selected fields on an existing transaction. Use reviewStatus confirmed after uncertainty has been resolved; omitted fields remain unchanged.
View tool JSON
{
"name": "update_transaction",
"kind": "act",
"impl": "imperative",
"description": "Update selected fields on an existing transaction. Use reviewStatus confirmed after uncertainty has been resolved; omitted fields remain unchanged.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"date": {
"type": "string"
},
"description": {
"type": "string"
},
"amount": {
"type": "number",
"exclusiveMinimum": 0
},
"kind": {
"type": "string",
"enum": [
"expense",
"income"
]
},
"accountId": {
"type": "string"
},
"categoryId": {
"type": "string"
},
"notes": {
"type": "string"
},
"reviewStatus": {
"type": "string",
"enum": [
"confirmed",
"needs_review"
]
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"page": "/transactions"
}delete_transactionSensitive Action
Permanently delete one transaction. Only call this after the user explicitly asks to delete that exact transaction.
View tool JSON
{
"name": "delete_transaction",
"kind": "transact",
"impl": "imperative",
"description": "Permanently delete one transaction. Only call this after the user explicitly asks to delete that exact transaction.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"page": "/transactions"
}