Tools in this category
| Tool | Mutating | Description |
|---|---|---|
list_transactions |
no | Return one-off transactions (income and expenses) with optional type, date-range, amount, tag, and client filters. Default page size 20, max 50. |
get_transaction |
no | Fetch a single transaction by ID, including its amount, currency, tags, and any linked client/project/task. |
create_transaction |
yes | Record a one-off income or expense transaction. Use bulk_create_transactions for imports. Logged in the MCP audit trail. |
update_transaction |
yes | Update a transaction. Only supplied fields change. Use bulk_update_transactions for mass recategorize/retag operations. |
delete_transaction |
yes | Delete a transaction by ID. Logged in the MCP audit trail; the original input is preserved in the audit row. |
bulk_create_transactions |
yes | Create many transactions in one call (e.g. when importing a statement). Prefer this over looping create_transaction. |
bulk_update_transactions |
yes | Apply per-id partial updates to many transactions in one call (e.g. recategorize, retag). |
bulk_delete_transactions |
yes | Delete many transactions in one call. Prefer this over looping delete_transaction; each id is logged separately in the audit trail. |
list_transactions
Mutating: no
Return one-off transactions (income and expenses) with optional type, date-range, amount, tag, and client filters. Default page size 20, max 50.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
page |
number | no | Page number (default: 1) |
limit |
number | no | Items per page (default: 20, max: 50) |
type |
string (income | expense) |
no | Filter by transaction type |
clientSearch |
string | no | Partial client name match |
amountMin |
number | no | Inclusive lower bound on amount. |
amountMax |
number | no | Inclusive upper bound on amount. |
startDate |
string | no | ISO 8601 lower bound on date |
endDate |
string | no | ISO 8601 upper bound on date |
search |
string | no | Search in desc, client name, tag names |
tags |
string | no | Comma-separated tag names (matches any) |
sortBy |
string (date | amount | type | createdAt | updatedAt) |
no | Field to sort by. |
sortOrder |
string (asc | desc) |
no | Sort direction; defaults to asc. |
get_transaction
Mutating: no
Fetch a single transaction by ID, including its amount, currency, tags, and any linked client/project/task.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Transaction ID |
create_transaction
Mutating: yes
Record a one-off income or expense transaction. Use bulk_create_transactions for imports. Logged in the MCP audit trail.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
date |
string | yes | ISO 8601 transaction date |
desc |
string | yes | Description (max 1000 chars) |
amount |
number | yes | Positive amount |
type |
string (income | expense) |
yes | Transaction direction (income or expense). |
currency |
string | no | ISO 4217 currency code (default USD) |
tags |
array | no | Tag names to attach; new tags are created on the fly. |
clientDisplayId |
string | no | Optional client to attribute the transaction to. |
projectDisplayId |
string | no | Optional project display ID (e.g. "P-7"). |
taskDisplayId |
string | no | Optional task display ID (e.g. "T-7"). |
update_transaction
Mutating: yes
Update a transaction. Only supplied fields change. Use bulk_update_transactions for mass recategorize/retag operations.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Transaction ID |
date |
string | no | ISO 8601 transaction date. |
desc |
string | no | Description (max 1000 chars). |
amount |
number | no | Positive amount. |
type |
string (income | expense) |
no | Transaction direction. |
currency |
string | no | ISO 4217 currency code. |
tags |
array | no | Full tag set; replaces existing tags. |
clientDisplayId |
string | no | Client display ID to attribute the transaction to. |
projectDisplayId |
string | no | Project display ID; empty string to unlink. |
taskDisplayId |
string | no | Task display ID; empty string to unlink. |
delete_transaction
Mutating: yes
Delete a transaction by ID. Logged in the MCP audit trail; the original input is preserved in the audit row.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Transaction ID |
bulk_create_transactions
Mutating: yes
Create many transactions in one call (e.g. when importing a statement). Prefer this over looping create_transaction.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
items |
array | yes | Transactions to create |
Items of items:
date(string)desc(string)amount(number)type(string (income|expense))currency(string)tags(array)clientDisplayId(string)projectDisplayId(string)taskDisplayId(string)
bulk_update_transactions
Mutating: yes
Apply per-id partial updates to many transactions in one call (e.g. recategorize, retag).
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
updates |
array | yes | Per-id patches. |
Items of updates:
id(string)data(object) — Partial fields — same shape as update_transaction input (minus id)
bulk_delete_transactions
Mutating: yes
Delete many transactions in one call. Prefer this over looping delete_transaction; each id is logged separately in the audit trail.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
ids |
array | yes | Transaction IDs to delete |