Tool tree
A side-by-side demo of how AI agents interact with web pages today versus a future where pages expose structured tools via WebMCP.
Implementation
gradeNot graded
gradeNot graded
getAvailabilityAnswer
List bookable consultation times within a date range. Returns an object keyed by ISO date with arrays of 24h HH:MM times.
View tool JSON
{
"name": "getAvailability",
"kind": "answer",
"impl": "imperative",
"description": "List bookable consultation times within a date range. Returns an object keyed by ISO date with arrays of 24h HH:MM times.",
"inputSchema": {
"type": "object",
"properties": {
"startDate": {
"type": "string",
"format": "date",
"description": "Inclusive ISO date (YYYY-MM-DD)."
},
"endDate": {
"type": "string",
"format": "date",
"description": "Inclusive ISO date (YYYY-MM-DD)."
}
},
"required": [
"startDate",
"endDate"
]
}
}bookSlotSensitive Action
Reserve a 30-minute consultation at a specific date and time. Drives the on-page booking widget so the user sees what was booked.
View tool JSON
{
"name": "bookSlot",
"kind": "transact",
"impl": "imperative",
"description": "Reserve a 30-minute consultation at a specific date and time. Drives the on-page booking widget so the user sees what was booked.",
"inputSchema": {
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "ISO date (YYYY-MM-DD)."
},
"time": {
"type": "string",
"format": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
"description": "24h start time in HH:MM (e.g. '14:00')."
},
"name": {
"type": "string",
"description": "Full name for the booking."
},
"email": {
"type": "string",
"format": "email",
"description": "Confirmation email address."
}
},
"required": [
"date",
"time",
"name",
"email"
]
}
}cancelBookingSensitive Action
Cancel a previously confirmed booking by its confirmation id.
View tool JSON
{
"name": "cancelBooking",
"kind": "transact",
"impl": "imperative",
"description": "Cancel a previously confirmed booking by its confirmation id.",
"inputSchema": {
"type": "object",
"properties": {
"confirmationId": {
"type": "string",
"description": "Confirmation id returned by bookSlot, e.g. 'BK-AB12CD'."
}
},
"required": [
"confirmationId"
]
}
}