Tools in this category
| Tool | Mutating | Description |
|---|---|---|
list_invoices |
no | Return invoices with optional status, client, amount, issue/due date-range, and free-text filters. Default page size 20, max 50. |
get_invoice |
no | Fetch a single invoice by UUID or display ID (e.g. "I-7"), including line items, totals, status, and linked client. |
list_invoice_statuses |
no | List the current user’s invoice statuses. Call this before create_invoice / update_invoice to get a valid statusConfigId (use the returned id). |
create_invoice |
yes | Create an invoice. statusConfigId is required — call list_invoice_statuses first. Use bulk_create_invoices for imports. Logged in the MCP audit trail. |
update_invoice |
yes | Update an invoice by UUID or display ID. Only supplied fields change. Prefer flag_invoice for toggling the flag. |
delete_invoice |
yes | Delete an invoice by UUID or display ID. Its generated export PDFs are also removed. |
flag_invoice |
yes | Flag or unflag an invoice for attention, with an optional reason. Prefer this over update_invoice for toggling the flag. |
bulk_create_invoices |
yes | Create many invoices in one transaction (all-or-nothing). Each item mirrors create_invoice input. Logged in the MCP audit trail. |
list_invoices
Mutating: no
Return invoices with optional status, client, amount, issue/due date-range, and free-text 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) |
statusConfigIds |
array | no | Filter to these invoice status config IDs (matches any). |
clientId |
string | no | Filter to a single client UUID. |
clientNames |
array | no | Match invoices whose client name contains any of these. |
invoiceNumbers |
array | no | Match invoices whose invoiceNumber contains any of these. |
amountMin |
number | no | Inclusive lower bound on amount. |
amountMax |
number | no | Inclusive upper bound on amount. |
startDate |
string | no | ISO 8601 lower bound on issue date. |
endDate |
string | no | ISO 8601 upper bound on issue date. |
dueDateStart |
string | no | ISO 8601 lower bound on due date. |
dueDateEnd |
string | no | ISO 8601 upper bound on due date. |
search |
string | no | Search displayId, invoiceNumber, company, tags. |
sortBy |
string (displaySeq | invoiceNumber | amount | issueDate | dueDate | statusConfigId | createdAt | updatedAt) |
no | Field to sort by. |
sortOrder |
string (asc | desc) |
no | Sort direction; defaults to desc by issue date. |
get_invoice
Mutating: no
Fetch a single invoice by UUID or display ID (e.g. "I-7"), including line items, totals, status, and linked client.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Invoice UUID or display ID (e.g. "I-7"). |
list_invoice_statuses
Mutating: no
List the current user’s invoice statuses. Call this before create_invoice / update_invoice to get a valid statusConfigId (use the returned id).
Parameters
No parameters.
create_invoice
Mutating: yes
Create an invoice. statusConfigId is required — call list_invoice_statuses first. Use bulk_create_invoices for imports. Logged in the MCP audit trail.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
invoiceNumber |
string | yes | Accounting identifier (e.g. "2026-001"). |
statusConfigId |
string | yes | Invoice status config UUID from list_invoice_statuses. |
amount |
number | yes | Total invoice amount (positive). |
dueDate |
string | yes | ISO 8601 due date (required). |
issueDate |
string | no | ISO 8601 issue date (defaults to today). |
clientDisplayId |
string | no | Optional client display ID (e.g. "C-7"). |
projectDisplayId |
string | no | Optional project display ID (e.g. "P-3"). |
lineItems |
array | no | Line items. Each: { description, amount, tax?, taxRate?, taskId? }. |
tags |
array | no | Tag names to attach; new tags are created on the fly. |
currency |
string | no | ISO 4217 currency code (default USD). |
invoiceType |
string (full | proforma) |
no | Invoice kind; defaults to "full". |
notes |
string | no | Free-form notes. |
companyName |
string | no | Issuer company name snapshot. |
taxId |
string | no | Issuer tax ID snapshot. |
bankName |
string | no | Payment bank name snapshot. |
bankAccount |
string | no | Payment bank account snapshot. |
bankRouting |
string | no | Payment bank routing snapshot. |
clientAddress |
string | no | Client address snapshot. |
clientEmail |
string | no | Client email snapshot. |
qrCodeData |
string | no | Payment QR payload. |
flagged |
boolean | no | Flag the invoice for attention. |
flagDescription |
string | no | Reason for the flag (max 500 chars). |
Items of lineItems:
description(string)amount(number)tax(number)taxRate(number)taskId(string) — Optional task UUID this line bills.
update_invoice
Mutating: yes
Update an invoice by UUID or display ID. Only supplied fields change. Prefer flag_invoice for toggling the flag.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Invoice UUID or display ID (e.g. "I-7"). |
invoiceNumber |
string | no | Accounting identifier. |
statusConfigId |
string | no | Invoice status config UUID. |
amount |
number | no | Total invoice amount (positive). |
dueDate |
string | no | ISO 8601 due date. |
issueDate |
string | no | ISO 8601 issue date. |
clientDisplayId |
string | no | Client display ID (e.g. "C-7"). |
projectDisplayId |
string | no | Project display ID (e.g. "P-3"). |
lineItems |
array | no | Line items. Each: { description, amount, tax?, taxRate?, taskId? }. |
tags |
array | no | Replacement set of tag names (omit to leave tags unchanged). |
currency |
string | no | ISO 4217 currency code (default USD). |
invoiceType |
string (full | proforma) |
no | Invoice kind; defaults to "full". |
notes |
string | no | Free-form notes. |
companyName |
string | no | Issuer company name snapshot. |
taxId |
string | no | Issuer tax ID snapshot. |
bankName |
string | no | Payment bank name snapshot. |
bankAccount |
string | no | Payment bank account snapshot. |
bankRouting |
string | no | Payment bank routing snapshot. |
clientAddress |
string | no | Client address snapshot. |
clientEmail |
string | no | Client email snapshot. |
qrCodeData |
string | no | Payment QR payload. |
flagged |
boolean | no | Flag the invoice for attention. |
flagDescription |
string | no | Reason for the flag (max 500 chars). |
Items of lineItems:
description(string)amount(number)tax(number)taxRate(number)taskId(string) — Optional task UUID this line bills.
delete_invoice
Mutating: yes
Delete an invoice by UUID or display ID. Its generated export PDFs are also removed.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Invoice UUID or display ID (e.g. "I-7"). |
flag_invoice
Mutating: yes
Flag or unflag an invoice for attention, with an optional reason. Prefer this over update_invoice for toggling the flag.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id |
string | yes | Invoice UUID or display ID (e.g. "I-7"). |
flagged |
boolean | yes | true to flag, false to unflag. |
flagDescription |
string | no | Optional reason for the flag (max 500 chars). |
bulk_create_invoices
Mutating: yes
Create many invoices in one transaction (all-or-nothing). Each item mirrors create_invoice input. Logged in the MCP audit trail.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
items |
array | yes | Invoices to create. |
Items of items:
invoiceNumber(string)statusConfigId(string)amount(number)dueDate(string) — ISO 8601 due date.issueDate(string) — ISO 8601 issue date.clientDisplayId(string)projectDisplayId(string)lineItems(array) — Line items. Each: { description, amount, tax?, taxRate?, taskId? }.tags(array)currency(string) — ISO 4217 currency code (default USD).invoiceType(string (full|proforma)) — Invoice kind; defaults to "full".notes(string) — Free-form notes.companyName(string) — Issuer company name snapshot.taxId(string) — Issuer tax ID snapshot.bankName(string) — Payment bank name snapshot.bankAccount(string) — Payment bank account snapshot.bankRouting(string) — Payment bank routing snapshot.clientAddress(string) — Client address snapshot.clientEmail(string) — Client email snapshot.qrCodeData(string) — Payment QR payload.flagged(boolean) — Flag the invoice for attention.flagDescription(string) — Reason for the flag (max 500 chars).