quote_create
ONE call creates the whole document: client_name + items [{description, quantity, unit_price}], each price as written ("5000.00"). It claims the next atomic quote number and writes every line together; client_name finds or creates the client. tax_scheme sg_gst or my_sst taxes each line by its tax_code (refusals: see tax_scheme). When present, the second content block is the quote as copy-ready text, shown with a Copy button where the host draws MCP Apps; if the user says they cannot see the quote, give them that block word for word; make a client link with quote_share only when the user asks for one. NEXT: quote_convert to turn the quote into its invoice.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "quote_create"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Confirms a create whose notes or single line item read like a payment RECEIVED or a write-off rather than a new bill — resend the SAME call with force:true to create it anyway. No effect on quote_create (the intent trap is invoice-only). | |
| items | No | ONE call creates the whole document — each line's unit_price is its price exactly as written, a decimal string ("5000.00" for $5,000), and the platform stores the cents itself; or send unit_price_cents in integer CENTS ($15.00 → 1500). quantity takes up to 3 decimals (1.5 hours → 1.5); unit is an optional label (hr, kg); discount_bps is an optional line discount (10% → 1000). tax_code is the line's tax under the document's tax_scheme (sg_gst: standard, zero_rated, exempt, out_of_scope, default standard; my_sst: sales_10, sales_5, service_8, service_6, exempt, required); refused without a tax_scheme. | |
| notes | No | ||
| status | No | ||
| currency | No | ||
| client_id | No | ||
| issue_date | No | ||
| line_items | No | Alias of items. | |
| tax_scheme | No | sg_gst (Singapore GST) or my_sst (Malaysia SST): each line is taxed by its tax_code at the rate in force on the issue date. Under a scheme, a tax_rate_bps other than that rate, an unknown tax_code and a my_sst line without one are refused, naming the valid codes and the rate's source. "none" = no scheme, priced by tax_rate_bps. Left out = your sales settings' tax_scheme. | |
| client_name | No | Client by NAME — resolves to an existing client or creates one (no client_id lookup needed). | |
| valid_until | No | ||
| quote_number | No | ||
| tax_rate_bps | No | ||
| prices_include_tax | No | true = unit prices already include the tax (the tax is worked back out of each line). Default false. Needs a tax_scheme. | |
| converted_invoice_id | No |