sendero-alpha.vercel.app
Prepare, validate, and save an itinerary generated with ChatGPT and Sendero.
First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com
Answer 2 · Act 4 · Transact 2 · Score: Not yet scored
Tool inspector
validate_and_stage_itinerary
Validate one complete generated itinerary against the current Sendero protocol and place a local draft in this browser's persistent Sendero cache. This works without a Sendero account and is the authoritative review handoff for the open page. It does not save a canonical trip. Correct blocking errors before continuing and review all warnings.
Page: /app/new
Input schema
| Property | Type | Required | Description |
|---|---|---|---|
brief |
object | no | Trip facts extracted from the user's natural-language request. The user never needs to know or write these field names. Omit the brief only to use fields already entered on the Sendero page. |
itinerary |
object | yes | The complete itinerary object matching itinerarySchema returned by get_itinerary_planning_protocol. |
protocolHash |
string | yes | — |
protocolVersion |
string | yes | — |
Raw JSON schema
{
"type": "object",
"properties": {
"brief": {
"type": "object",
"description": "Trip facts extracted from the user's natural-language request. The user never needs to know or write these field names. Omit the brief only to use fields already entered on the Sendero page.",
"properties": {
"locale": {
"type": "string",
"description": "Language inferred from the user's request."
},
"destination": {
"oneOf": [
{
"type": "string",
"minLength": 1,
"description": "A city, region, or country in the traveller's own words."
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"city": {
"type": "string",
"minLength": 1
},
"country": {
"type": "string",
"minLength": 1
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"notes": {
"type": "string"
}
},
"additionalProperties": true
},
{
"type": "array",
"minItems": 1,
"items": {
"oneOf": [
{
"type": "string",
"minLength": 1,
"description": "A city, region, or country in the traveller's own words."
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"city": {
"type": "string",
"minLength": 1
},
"country": {
"type": "string",
"minLength": 1
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"notes": {
"type": "string"
}
},
"additionalProperties": true
}
]
}
}
],
"description": "One destination, or an ordered list when the request contains multiple cities."
},
"destinations": {
"type": "array",
"minItems": 1,
"items": {
"oneOf": [
{
"type": "string",
"minLength": 1,
"description": "A city, region, or country in the traveller's own words."
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"city": {
"type": "string",
"minLength": 1
},
"country": {
"type": "string",
"minLength": 1
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"notes": {
"type": "string"
}
},
"additionalProperties": true
}
]
},
"description": "Ordered destinations for a multi-city trip. Sendero normalizes them into its canonical destination label."
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"travellers": {
"type": "object",
"properties": {
"adults": {
"type": "integer",
"minimum": 1
},
"children": {
"type": "integer",
"minimum": 0
},
"seniors": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": true
},
"transport": {
"type": "object",
"properties": {
"modes": {
"type": "array",
"items": {
"type": "string"
}
},
"hasLicense": {
"type": "boolean"
},
"wantsCar": {
"type": "boolean"
}
},
"additionalProperties": true
},
"mustDo": {
"type": "array",
"items": {
"type": "string"
}
},
"notes": {
"type": "string"
}
},
"additionalProperties": true
},
"itinerary": {
"type": "object",
"description": "The complete itinerary object matching itinerarySchema returned by get_itinerary_planning_protocol.",
"additionalProperties": true
},
"protocolHash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"protocolVersion": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
}
},
"required": [
"itinerary",
"protocolHash",
"protocolVersion"
],
"additionalProperties": false
}
Similar websites
gabrielcatdeveloper.github.io
portami
carregados.com.br
Brazilian EV charging station map and trip planner for finding charging points and planning routes with charging stops across Latin America.
trip-world-taupe.vercel.app
TripBuilder is a shared itinerary workspace for humans and AI agents.
freemap.sk
Freemap Slovakia, a detailed digital map of Central Europe for hiking, cycling, cross-country skiing and horse riding, with marked trails and place search.