BlueSuite Developers
MCPTool reference

Quotes

BlueSuite MCP tools for quotes

See connection and authentication and workflow rules before calling these tools.

Related REST API and behavior.

list_quotes

List quotes with optional pagination and search

Parameters

FieldType / accepted valuesRequiredDetails
pageintegerNoPage number (default: 1)
per_pageintegerNoResults per page (default: 25) minimum: 1. maximum: 100.
searchstringNoSearch quotes
sort_by"id", "number", "name", "status", "total", "date", "expire_on", "created_at", "modified_at"NoField to sort by. Unknown values fall back to the default sort.
sort_direction"asc", "desc"NoSort direction
contact_idintegerNoFilter by contact ID
exclude_statusesarray of "draft", "awaiting_response", "accepted", "declined", "expired", "archived", "awaiting_deposit"NoExclude quotes with any of these statuses.
statusarray of "draft", "awaiting_response", "accepted", "declined", "expired", "archived", "awaiting_deposit"NoFilter by one or more statuses.
tag_idsarray of JSON valueNoFilter to records carrying ANY of these tag IDs (not all). Use list_tags with the matching taggable_type to resolve tag names to IDs first.

Result

FieldType / accepted valuesRequiredDetails
dataarray of objectYesThe matching records for this page.
paginationobjectNoHow many more pages of results exist. Absent when the API returned an unpaged result.
pagination.pageintegerWhen parent suppliedCurrent page number, 1-based.
pagination.per_pageintegerWhen parent suppliedNumber of results per page.
pagination.total_pagesintegerWhen parent suppliedTotal number of pages available.

create_quote

Create a new quote

Parameters

FieldType / accepted valuesRequiredDetails
namestringNoQuote name/title
contact_idintegerNoAssociated contact ID
property_idJSON valueNoAssociated property ID
request_idJSON valueNoAssociated request ID
salesperson_idstringNoUUID of salesperson. Use list_users to resolve names. Format: uuid.
template_idJSON valueNoQuote template ID
datestringNoQuote date (YYYY-MM-DD)
expire_onstring or stringNoExpiration date (YYYY-MM-DD)
messagestringNoMessage to client
line_itemsarray of object or objectNoArray of line item objects. Two shapes are accepted: a regular priced row ({ name, quantity, unit_price }) or an inline image row ({ _type: "image", image_path, image_id, description }). For image rows: first call upload_file with module_type="workspace", category="line_item", is_public=true to upload the image, then pass the returned path as image_path and id as image_id.
line_items[]._type"lineItem"NoFor lineItem rows. Defaults to lineItem when omitted.
line_items[].namestringFor this variantFor lineItem rows. Item name
line_items[].descriptionstringNoFor lineItem rows. Plain text description for this line item. Omit when not needed. Default: "".
line_items[].quantitynumberNoFor lineItem rows. Quantity Default: 1.
line_items[].unit_pricenumberFor this variantFor lineItem rows. Price per unit
line_items[].taxablebooleanNoFor lineItem rows. Whether the item is taxable
line_items[].optionalbooleanNoFor lineItem rows. Whether the item is optional
line_items[]._type"image"For this variantFor image rows.
line_items[].image_pathstringFor this variantFor image rows. Storage path returned by a prior upload_file call. Upload with module_type="workspace", category="line_item", is_public=true to get a usable path. minLength: 1.
line_items[].image_idintegerNoFor image rows. Upload link ID (id) returned by the same upload_file call.
line_items[].descriptionstringNoFor image rows. Caption shown beneath the image in the line items list.
discountnumberNoDiscount amount (default: 0)
discount_unit"percent", "amount"NoHow the discount is expressed. One of: 'percent' (a percentage of the subtotal) or 'amount' (a fixed currency amount). Default: 'percent'.
depositnumberNoDeposit amount (default: 0)
deposit_unitJSON valueNoHow the deposit is expressed. One of: 'percent' or 'amount'. Default: 'percent'.
tax_ratenumberNoTax rate percentage (default: 0)
tax_rate_idJSON valueNoTax rate preset ID
totalnumberNoQuote total
reminders_enabledbooleanNoWhether BlueSuite automatically emails the client reminders about this quote. Default: true.
waive_credit_card_feeJSON valueNoSkip the workspace's online processing fee for this record. Only meaningful when the workspace passes processing fees on to clients. Carries over to jobs and invoices created from this quote. Default: false.
status"draft", "awaiting_response", "accepted", "declined", "expired", "archived", "awaiting_deposit"NoQuote status (default: draft)
custom_fieldsobjectNoCustom field values

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

get_quote

Get a single quote by ID with expanded details

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesQuote ID

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

update_quote

Update an existing quote

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesQuote ID
namestringNoQuote name/title
contact_idJSON valueNoAssociated contact ID
property_idJSON valueNoAssociated property ID
request_idJSON valueNoAssociated request ID
salesperson_idstringNoUUID of salesperson. Use list_users to resolve names. Format: uuid.
template_idJSON valueNoQuote template ID
datestringNoQuote date (YYYY-MM-DD)
expire_onstring or stringNoExpiration date (YYYY-MM-DD)
messagestringNoMessage to client
line_itemsarray of object or objectNoArray of line item objects. Two shapes are accepted: a regular priced row ({ name, quantity, unit_price }) or an inline image row ({ _type: "image", image_path, image_id, description }). For image rows: first call upload_file with module_type="workspace", category="line_item", is_public=true to upload the image, then pass the returned path as image_path and id as image_id.
line_items[]._type"lineItem"NoFor lineItem rows. Defaults to lineItem when omitted.
line_items[].namestringFor this variantFor lineItem rows. Item name
line_items[].descriptionstringNoFor lineItem rows. Plain text description for this line item. Omit when not needed. Default: "".
line_items[].quantitynumberNoFor lineItem rows. Quantity Default: 1.
line_items[].unit_pricenumberFor this variantFor lineItem rows. Price per unit
line_items[].taxablebooleanNoFor lineItem rows. Whether the item is taxable
line_items[].optionalbooleanNoFor lineItem rows. Whether the item is optional
line_items[]._type"image"For this variantFor image rows.
line_items[].image_pathstringFor this variantFor image rows. Storage path returned by a prior upload_file call. Upload with module_type="workspace", category="line_item", is_public=true to get a usable path. minLength: 1.
line_items[].image_idintegerNoFor image rows. Upload link ID (id) returned by the same upload_file call.
line_items[].descriptionstringNoFor image rows. Caption shown beneath the image in the line items list.
discountnumberNoDiscount amount
discount_unit"percent", "amount"NoHow the discount is expressed. One of: 'percent' (a percentage of the subtotal) or 'amount' (a fixed currency amount).
depositnumberNoDeposit amount
deposit_unitJSON valueNoHow the deposit is expressed. One of: 'percent' or 'amount'.
tax_ratenumberNoTax rate percentage
tax_rate_idJSON valueNoTax rate preset ID
totalnumberNoQuote total
reminders_enabledbooleanNoWhether BlueSuite automatically emails the client reminders about this quote. Default: true.
waive_credit_card_feeJSON valueNoSkip the workspace's online processing fee for this record. Only meaningful when the workspace passes processing fees on to clients. Carries over to jobs and invoices created from this quote. Default: false.
status"draft", "awaiting_response", "accepted", "declined", "expired", "archived", "awaiting_deposit"NoQuote status
custom_fieldsobjectNoCustom field values

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

delete_quote

Delete a quote by ID

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesQuote ID

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

update_quote_status

Record a change to a quote's status. This does NOT email anyone. To actually deliver a quote to the client, use send_notification with type="quote_to_customer", which delivers it and moves the quote to awaiting response. Use this tool for bookkeeping: marking a quote accepted, declined or archived after hearing back some other way.

Parameters

FieldType / accepted valuesRequiredDetails
idintegerYesQuote ID
status"draft", "awaiting_response", "accepted", "declined", "expired", "archived", "awaiting_deposit"YesNew status
commentstringNoOptional comment for the status change

Result

FieldType / accepted valuesRequiredDetails
dataobject or nullYesThe affected record, or the result of the operation. Null when nothing matched.

The downloadable tool schemas include the full input and output contracts. Tables describe schema-level required fields; cross-field rules still apply.

On this page