Tools in this category
| Tool | Mutating | Description |
|---|---|---|
list_clients |
no | List CRM clients with optional chip filters (names, companies, emails, displayIds, statuses, tags), free-text search, and pagination. Default page size 20, max 50. |
get_client |
no | Fetch a single client by UUID or display ID (e.g. "C-7"), including contact details, status, tags, and CRM fields. |
create_client |
yes | Create a CRM client. Call list_client_statuses first for a valid status slug; tags are created on demand. Logged in the MCP audit trail. |
update_client |
yes | Update a client by UUID or display ID. Only supplied fields change; pass a new status slug to move the client. Logged in the MCP audit trail. |
delete_client |
yes | Delete a client by UUID or display ID. Cascades to dependent records (e.g. its projects become unassigned). Logged in the MCP audit trail. |
bulk_create_clients |
yes | Create many clients in one transaction (e.g. a CSV-style import). Each item needs a name and a status slug; all-or-nothing. Logged in the MCP audit trail. |
bulk_update_clients |
yes | Apply per-id partial updates to many clients in one call — move a set of leads to a new status, retag them, or set a follow-up date. Each id is logged separately in the audit trail. |
bulk_delete_clients |
yes | Delete many clients in one call. Linked projects and documents are unlinked rather than deleted, and invoices and transactions keep their rows with the client cleared. Prefer this over looping delete_client. |
list_clients
Mutating: no
List CRM clients with optional chip filters (names, companies, emails, displayIds, statuses, tags), free-text search, and pagination. 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). |
search |
string | no | Search across displayId, name, every email address (primary and additional), and company. |
names |
string | no | Comma-separated name substrings (matches any). |
companies |
string | no | Comma-separated company substrings (matches any). |
emails |
string | no | Comma-separated email substrings; matches any of the client's addresses, primary or additional. |
displayIds |
string | no | Comma-separated display IDs, e.g. "C-1,C-2" (matches any). |
statuses |
string | no | Comma-separated status slugs from list_client_statuses (matches any); resolved to config IDs. |
tags |
string | no | Comma-separated tag names (matches any). |
sortBy |
string (displaySeq | name | email | company | statusConfigId | createdAt | updatedAt | nextFollowUpDate | lastContactDate | estimatedValue | probability | source) |
no | Field to sort by; defaults to displaySeq. |
sortOrder |
string (asc | desc) |
no | Sort direction; defaults to asc. |
get_client
Mutating: no
Fetch a single client by UUID or display ID (e.g. "C-7"), including contact details, status, tags, and CRM fields.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Client ID — accepts UUID or display ID (e.g. "C-7"). |
create_client
Mutating: yes
Create a CRM client. Call list_client_statuses first for a valid status slug; tags are created on demand. Logged in the MCP audit trail.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
name |
string | yes | Client display name (must be unique per user). |
status |
string | yes | Status slug from list_client_statuses. |
email |
string | no | Primary contact email address. |
additionalEmails |
array | no | The client's other email addresses, in order. email stays the primary one used for sending; an entry repeating it is dropped. |
website |
string | no | Website URL. |
address |
string | no | Postal or street address. |
phone |
string | no | Contact phone number. |
company |
string | no | Company or organisation name. |
notes |
string | no | Free-form notes; markdown supported. |
source |
string | no | How the client was acquired (e.g. referral, inbound). |
tags |
array | no | Tag names to attach; tags are created on demand if they do not exist. |
nextFollowUpDate |
string | no | ISO 8601 date of the next planned follow-up. |
lastContactDate |
string | no | ISO 8601 date the client was last contacted. |
estimatedValue |
number | no | Estimated deal value as a non-negative number in the workspace currency. |
probability |
string (low | medium | high) |
no | Win-likelihood band: one of low, medium, or high. |
hourlyRate |
number | no | Optional per-client hourly rate overriding the brand default. Omit to inherit the brand rate; 0 is a real value meaning the client is not billed hourly. |
currency |
string | no | Optional ISO 4217 code (e.g. EUR) overriding the brand invoicing currency for this client. Omit to inherit. New invoices for this client default to it. |
update_client
Mutating: yes
Update a client by UUID or display ID. Only supplied fields change; pass a new status slug to move the client. Logged in the MCP audit trail.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Client ID — accepts UUID or display ID (e.g. "C-7"). |
name |
string | no | Client display name (must be unique per user). |
status |
string | no | Status slug from list_client_statuses. |
email |
string | no | Primary contact email address. |
additionalEmails |
array | no | The client's other email addresses, in order. email stays the primary one used for sending; an entry repeating it is dropped. |
website |
string | no | Website URL. |
address |
string | no | Postal or street address. |
phone |
string | no | Contact phone number. |
company |
string | no | Company or organisation name. |
notes |
string | no | Free-form notes; markdown supported. |
source |
string | no | How the client was acquired (e.g. referral, inbound). |
tags |
array | no | Tag names to attach; tags are created on demand if they do not exist. |
nextFollowUpDate |
string | no | ISO 8601 date of the next planned follow-up. |
lastContactDate |
string | no | ISO 8601 date the client was last contacted. |
estimatedValue |
number | no | Estimated deal value as a non-negative number in the workspace currency. |
probability |
string (low | medium | high) |
no | Win-likelihood band: one of low, medium, or high. |
hourlyRate |
number | no | Optional per-client hourly rate overriding the brand default. Omit to inherit the brand rate; 0 is a real value meaning the client is not billed hourly. |
currency |
string | no | Optional ISO 4217 code (e.g. EUR) overriding the brand invoicing currency for this client. Omit to inherit. New invoices for this client default to it. |
delete_client
Mutating: yes
Delete a client by UUID or display ID. Cascades to dependent records (e.g. its projects become unassigned). Logged in the MCP audit trail.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Client ID — accepts UUID or display ID (e.g. "C-7"). |
bulk_create_clients
Mutating: yes
Create many clients in one transaction (e.g. a CSV-style import). Each item needs a name and a status slug; all-or-nothing. Logged in the MCP audit trail.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
items |
array | yes | Clients to create; 1–1000 items, processed atomically. |
Items of items:
name(string) — Client display name (unique per user).status(string) — Status slug from list_client_statuses.email(string) — Primary contact email address.additionalEmails(array) — The client's other email addresses, in order.emailstays the primary one used for sending; an entry repeating it is dropped.website(string) — Website URL.address(string) — Postal or street address.phone(string) — Contact phone number.company(string) — Company or organisation name.notes(string) — Free-form notes; markdown supported.source(string) — How the client was acquired (e.g. referral, inbound).tags(array) — Tag names to attach; tags are created on demand if they do not exist.nextFollowUpDate(string) — ISO 8601 date of the next planned follow-up.lastContactDate(string) — ISO 8601 date the client was last contacted.estimatedValue(number) — Estimated deal value as a non-negative number in the workspace currency.probability(string (low|medium|high)) — Win-likelihood band: one of low, medium, or high.hourlyRate(number) — Optional per-client hourly rate overriding the brand default. Omit to inherit the brand rate; 0 is a real value meaning the client is not billed hourly.currency(string) — Optional ISO 4217 code (e.g. EUR) overriding the brand invoicing currency for this client. Omit to inherit. New invoices for this client default to it.
bulk_update_clients
Mutating: yes
Apply per-id partial updates to many clients in one call — move a set of leads to a new status, retag them, or set a follow-up date. Each id is logged separately in the audit trail.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
updates |
array | yes | Per-id patches to apply. |
status |
string | no | Optional status slug from list_client_statuses, applied to every client in the call. Resolved once rather than once per row. |
Items of updates:
id(string) — Client ID — accepts UUID or display ID (e.g. "C-7").data(object) — Partial client fields — same shape as update_client input, minus id and status.
bulk_delete_clients
Mutating: yes
Delete many clients in one call. Linked projects and documents are unlinked rather than deleted, and invoices and transactions keep their rows with the client cleared. Prefer this over looping delete_client.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
ids |
array | yes | Client IDs to delete — each accepts a UUID or a display ID (e.g. "C-7"). |