Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.kualia.com/llms.txt

Use this file to discover all available pages before exploring further.

These are the tools your MCP client can call once you’ve connected to https://api.kualia.com/mcp. Names and parameters match exactly what the server registers. The same catalog powers the in-app AI Assistant. See MCP overview for how to connect, and the per-client guides (ChatGPT, Claude, Claude Code, Cursor, Perplexity) for client-specific setup.

Workspaces & accounts

ToolWhat it doesKey params
kualia_list_workspacesLists the workspaces the authenticated user can access. Call this only when switching workspaces explicitly.none
kualia_list_bank_accountsLists every bank account with name, type, on-budget flag, currency, current balance, and closed flag.workspaceId?, includeClosed?

Transactions

ToolWhat it doesKey params
kualia_list_transactionsLists transactions for a single month, with splits expanded to one row per movement. Each row carries a url linking to the transaction in the web app.yearMonth (required), workspaceId?, accountId?, categoryId?, type?, limit? (default 500, max 1000)
kualia_create_transactionsBatch-creates regular or transfer rows (mix freely). Regular rows are deduped against existing transactions on the same account and land as Needs Review. Up to 200 per call.transactions[] (required), bankAccountId?, forceInsert?, workspaceId?
kualia_update_transactionsBatch-updates existing transactions: date, amount, category, movements, merchant, notes, account, status, review status, even type conversion. Up to 200 per call.updates[] (required), workspaceId?
kualia_delete_transactionsSoft-deletes by id, reversing balance and budget side effects. Transfer pairs are deleted together. Up to 200 per call.transactionIds[] (required), workspaceId?
kualia_restore_transactionsUndeletes soft-deleted transactions, re-applying balance and budget side effects. Transfer pairs are restored together. Up to 200 per call.transactionIds[] (required), workspaceId?
kualia_list_recurring_transactionsLists subscription, bill, and recurring-income templates with merchant, expected amount, and calculated next due date.status? (active | inactive, default active), workspaceId?

Categories & groups

ToolWhat it doesKey params
kualia_list_category_groupsLists category groups with their nested categories.workspaceId?
kualia_create_categoriesBatch-creates categories inside an existing group. Up to 50 per call. Per-row failures (duplicate names, unknown group) don’t abort the batch.categories[] (required, with name + categoryGroupId), workspaceId?
kualia_update_categoriesBatch-updates category name, categoryGroupId, or iconName. Up to 50 per call.updates[] (required, with categoryId), workspaceId?
kualia_archive_categoriesArchive (isArchived: true) or unarchive (false) categories in bulk. System and credit-card categories are rejected. All-or-nothing per call. Up to 50.categoryIds[] (required), isArchived (required), workspaceId?
kualia_reorder_categoriesCustom rearrangement. Places categories at exact top-to-bottom positions, including cross-group moves. Use only for arbitrary orderings.groups[] (required, with categoryGroupId + orderedCategoryIds), workspaceId?
kualia_sort_categoriesServer-side sort by name_asc/name_desc, target_due_date_asc/_desc, or created_asc/_desc. Sorts one group or every group.sortBy (required), categoryGroupId?, workspaceId?
kualia_create_category_groupsBatch-creates groups (type: 'expense'). Up to 10 per call.groups[] (required, with name + type), workspaceId?
kualia_update_category_groupsBatch-updates group name (and type back to expense if needed). Credit-card groups cannot be converted. Up to 10 per call.updates[] (required, with categoryGroupId), workspaceId?
kualia_archive_category_groupsArchive (soft-delete) or restore groups in bulk. Group must be empty to archive. Credit-card groups can’t be archived. Up to 10 per call.categoryGroupIds[] (required), isArchived (required), workspaceId?
kualia_reorder_category_groupsCustom rearrangement. Sets the top-to-bottom order of groups in the workspace.orderedCategoryGroupIds[] (required), workspaceId?
kualia_sort_category_groupsServer-side sort by name_asc/name_desc or created_asc/created_desc.sortBy (required), workspaceId?

Budgets & targets

ToolWhat it doesKey params
kualia_set_category_assigned_amountSets the absolute assigned amount for one category-month (single mode) or many (bulk mode). Overwrites the existing assignment; it’s not a delta. Positive funds the category, negative pulls money back to Ready to Assign.Single: categoryId + yearMonth + assignedAmount. Bulk: updates[]. Plus workspaceId?.
kualia_get_envelope_month_statusReturns one month of envelope status (assigned, activity, available) with assignment guidance (remainingToAssign, underfundedAmount, assignmentNeeded). Filter to a single category or group by id or name.yearMonth (required), currentDate (required, YYYY-MM-DD), categoryId? | categoryName? | groupId? | groupName?, workspaceId?
kualia_list_category_targetsLists every category’s target definition (type, amount, frequency, due date, etc.) for categories that have targets enabled.workspaceId?
kualia_create_category_targetCreates a target on a category that doesn’t have one. Types: recurring, recurring_rollover, maintain_balance, one_time. Credit-card categories are rejected.categoryId, targetType, amount (all required); plus frequency?, frequencyInterval?, dayOfWeek?, dueDay?, firstDueDate?, targetDate?, monthlyContribution?, targetBalance?, workspaceId?
kualia_update_category_targetUpdates an existing target. Nullable fields accept null to clear (monthlyContribution, targetBalance, targetDate, dayOfWeek, dueDay).categoryId (required); same target fields as create_category_target, all optional; plus workspaceId?
kualia_delete_category_targetDisables the target on a category. Preserves the underlying settings so it can be re-enabled later. Idempotent.categoryId (required), workspaceId?

Reports

ToolWhat it doesKey params
kualia_get_monthly_summaryThe canonical “how much did I spend, save, or earn” report. Per-month income, spending, savings, savingsRate, plus byCategory and byGroup spending breakdowns. Already excludes credit-card and loan transfer mechanics; use this instead of summing other reports.yearMonth? xor monthsBack? (default 6, max 24); currentYearMonth?, workspaceId?
kualia_get_spending_reportSpending breakdown by category for a single month or a range. Exposes net-of-internal-flow numbers; prefer get_monthly_summary for totals.yearMonth? xor monthsBack?; currentYearMonth?, workspaceId?
kualia_get_income_summaryIncome and inflow summary for a month or range, sourced from pre-aggregated workspace data.yearMonth? xor monthsBack? (default 1); currentYearMonth?, workspaceId?
kualia_get_category_rollupMulti-month per-category totals: total assigned, total inflow, total outflow.monthsBack? (default 6, max 24), currentYearMonth?, workspaceId?
kualia_get_account_balances_reportMonthly account balance history across every account, with multi-currency support.monthsBack?, currentYearMonth?, workspaceId?

Common parameters

  • workspaceId is optional on every tool and defaults to the user’s active workspace. Pass it explicitly only when the user has multiple workspaces and you need a non-default one. Get ids from kualia_list_workspaces.
  • yearMonth is YYYYMM (e.g. 202604 for April 2026). currentDate is YYYY-MM-DD.
  • Batch limits: transactions up to 200 per call; categories up to 50; category groups up to 10.
  • Money is encoded as a signed decimal string in the workspace currency, with at most minorUnit fractional digits (USD = 2 → "51.08"; JPY = 0 → "5108"; KWD = 3 → "5.108"). Each money-bearing response carries currencyCode, minorUnit, and amountEncoding: 'decimal_string'. Don’t scale by 100.
All tools respect per-workspace permissions. The server only returns and modifies data your account can access. Agent-driven updates also preserve a transaction’s reviewStatus: rows created or edited through MCP stay as Needs Review until you mark them reviewed in the app yourself.