Amend a quote
amend_quoteAmend a SAVED quote (a quote_reference from get_quotes): its price (result), and optionally valid or sold, with a required reason. Logged in the quote's audit trail under the signed-in user, with the time, the old and new values, source "mcp" and the reason. The engine's own result, valid and output are never changed — the amended values sit beside them, and setting price or validity back to the engine's value clears that amendment (still logged).
BEFORE CALLING
Call get_quote (or get_quotes) for the quote's current price, validity and sold flag.
Tell the user exactly what will change (old → new) and the reason that will be logged, and get their go-ahead.
RULES
At least one of result, valid, sold, and each must differ from what the quote is now (else an error says nothing changed).
result is a number; valid and sold are booleans; reason is a non-empty sentence.
A sold quote is locked. The only change it accepts is
sold: falseon its own (marking it unsold, with a reason); after that it can be amended and marked sold again — three calls, each logged. Check get_quote first, and tell the user when a change means unselling the quote. A price change can go in the same call that marks it sold.Refused in read-only mode.
RESULT { quote_reference, engine: { result, valid }, now: { result, valid, sold }, amended, logged: { amendment_reference, by, at, source, result: { from, to }, valid, sold, reason }, quote_url, next_steps }.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"quote_reference": "<quote_reference>",
"reason": "<reason>"
},
"name": "amend_quote"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sold | No | Optional. true marks it sold and locks it (a price change can go in the same call). false, sent on its own, marks a sold quote unsold so it can be changed. | |
| valid | No | Optional. Whether the quote is now valid. Only on a quote that isn't sold. | |
| reason | Yes | Required on every call: why the price (or validity, or sale) is changing, in the user's words, e.g. "Quote amendment: agreed 5% discount". Logged with the change, who made it and when. | |
| result | No | The new price. Only on a quote that isn't sold — mark a sold quote unsold first. | |
| quote_reference | Yes | The saved quote to amend, from get_quotes. |