Create a quote
The create_quote MCP tool: create a quote.
create_quote · writes
REST: POST /v1/trips/{tripId}/quotes
What the model reads
Creates a draft quote on a trip, as the quote editor's + button does: seeded with one line per journey and one hotel per stop of the trip's design (unless seedFromDesign: false), priced for the trip's headcount at the agency's default margin (unless marginPct). Choose mode now — it cannot change. Then price and add lines with edit_quote_lines.
Permissions: quotes:write.
Set dryRun: true to preview the effect without writing anything.
Undo: the result names a change id; undo_change reverts it.
Input
| Field | Type | Required | Description |
|---|---|---|---|
tripId |
uuid | yes | |
name |
string | Defaults to Propuesta N, as the quote editor names them. max 200 chars |
|
mode |
"package" | "per_item" | package: one price, with up to 3 upgrade packages. per_item: a basket the customer picks lines from. Cannot change later. default "package" |
|
seedFromDesign |
boolean | Start with one line per journey and one hotel per stop of the trip's design, as the quote editor does. default true | |
templateId |
uuid | ||
marginPct |
number | Defaults to the agency's default margin. 0–99 | |
finalPriceOverride |
string | ||
validUntil |
string | YYYY-MM-DD | |
ctaUrl |
string | max 500 chars | |
metadata |
object | ||
dryRun |
boolean | Preview only: plan the change and return its effect without writing. |
Input schema (JSON)
{
"type": "object",
"properties": {
"tripId": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Defaults to `Propuesta N`, as the quote editor names them."
},
"mode": {
"type": "string",
"enum": [
"package",
"per_item"
],
"default": "package",
"description": "`package`: one price, with up to 3 upgrade packages. `per_item`: a basket the customer picks lines from. Cannot change later."
},
"seedFromDesign": {
"type": "boolean",
"default": true,
"description": "Start with one line per journey and one hotel per stop of the trip's design, as the quote editor does."
},
"templateId": {
"type": "string",
"format": "uuid"
},
"marginPct": {
"type": "number",
"minimum": 0,
"maximum": 99,
"description": "Defaults to the agency's default margin."
},
"finalPriceOverride": {
"type": "string",
"pattern": "^-?\\d{1,9}(\\.\\d{1,2})?$"
},
"validUntil": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"ctaUrl": {
"type": "string",
"maxLength": 500
},
"metadata": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 500
},
{
"type": "null"
}
]
},
"propertyNames": {
"pattern": "^[A-Za-z0-9_.-]{1,40}$"
}
},
"dryRun": {
"type": "boolean",
"description": "Preview only: plan the change and return its effect without writing."
}
},
"required": [
"tripId"
],
"additionalProperties": false
}