Tool tree
gradeNot graded
page: Every page
get_page_stateAnswer
Read a live snapshot of this page's application state, as compact JSON. Call this before acting so you work from what the page actually shows, not from a guess. Long values are pruned to stay small; a trailing '… +N more' marker means an array was elided.
View tool JSON
{
"name": "get_page_state",
"kind": "answer",
"impl": "imperative",
"description": "Read a live snapshot of this page's application state, as compact JSON. Call this before acting so you work from what the page actually shows, not from a guess. Long values are pruned to stay small; a trailing '… +N more' marker means an array was elided.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/catalog"
}page: Catalog
search_productsAction
Filter the catalogue and show the result on the page. Each call states the whole filter: arguments you leave out are cleared, not kept from the last call. query matches name, brand, category, tags and description and every term must match, so 'wireless keyboard' means both; category narrows to one department; minRating and maxPrice bound the numbers; inStockOnly drops sold-out products; sortBy orders the result (price ascending, rating descending, name A-Z, default price). Returns up to 20 rows plus the total match count — narrow the filters if there are more.
View tool JSON
{
"name": "search_products",
"kind": "act",
"impl": "imperative",
"description": "Filter the catalogue and show the result on the page. Each call states the whole filter: arguments you leave out are cleared, not kept from the last call. query matches name, brand, category, tags and description and every term must match, so 'wireless keyboard' means both; category narrows to one department; minRating and maxPrice bound the numbers; inStockOnly drops sold-out products; sortBy orders the result (price ascending, rating descending, name A-Z, default price). Returns up to 20 rows plus the total match count — narrow the filters if there are more.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"keyboards",
"mice",
"monitors",
"headsets",
"webcams",
"docks"
]
},
"minRating": {
"type": "number",
"minimum": 0,
"maximum": 5
},
"inStockOnly": {
"type": "boolean"
},
"maxPrice": {
"type": "number",
"exclusiveMinimum": 0
},
"sortBy": {
"type": "string",
"enum": [
"price",
"rating",
"name"
]
}
},
"additionalProperties": false
},
"page": "/catalog"
}get_productAction
Full record for one product by id — price, rating, review count, stock, tags and description. Opens that card's detail panel on the page so the person sees what you looked at. Product ids come from search_products or get_page_state.
View tool JSON
{
"name": "get_product",
"kind": "act",
"impl": "imperative",
"description": "Full record for one product by id — price, rating, review count, stock, tags and description. Opens that card's detail panel on the page so the person sees what you looked at. Product ids come from search_products or get_page_state.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string"
}
},
"required": [
"productId"
],
"additionalProperties": false
},
"page": "/catalog"
}add_to_cartAction
Add a product to the cart, or increase the quantity if it is already there. Refused for unknown ids and for sold-out products. Returns the new quantity and cart total.
View tool JSON
{
"name": "add_to_cart",
"kind": "act",
"impl": "imperative",
"description": "Add a product to the cart, or increase the quantity if it is already there. Refused for unknown ids and for sold-out products. Returns the new quantity and cart total.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string"
},
"quantity": {
"default": 1,
"type": "integer",
"minimum": 1,
"maximum": 99
}
},
"required": [
"productId",
"quantity"
],
"additionalProperties": false
},
"page": "/catalog"
}remove_from_cartAction
Take a product out of the cart entirely, whatever its quantity. Only products already in the cart can be removed.
View tool JSON
{
"name": "remove_from_cart",
"kind": "act",
"impl": "imperative",
"description": "Take a product out of the cart entirely, whatever its quantity. Only products already in the cart can be removed.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string"
}
},
"required": [
"productId"
],
"additionalProperties": false
},
"page": "/catalog"
}place_orderSensitive Action
Check out everything in the cart under this name and email, and show the confirmation on the page. Returns the order number (NW-XXXXX). Refused when the cart is empty or the email is not a valid address. Placing an order cannot be undone from this page.
View tool JSON
{
"name": "place_order",
"kind": "transact",
"impl": "imperative",
"description": "Check out everything in the cart under this name and email, and show the confirmation on the page. Returns the order number (NW-XXXXX). Refused when the cart is empty or the email is not a valid address. Placing an order cannot be undone from this page.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"name",
"email"
],
"additionalProperties": false
},
"page": "/catalog"
}page: Home
get_benchmark_resultsAnswer
Full measured results of the DOM-driving vs WebMCP-tools benchmark behind this page's claims, with caveats.
View tool JSON
{
"name": "get_benchmark_results",
"kind": "answer",
"impl": "imperative",
"description": "Full measured results of the DOM-driving vs WebMCP-tools benchmark behind this page's claims, with caveats.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}page: Demo
search_servicesAction
Filter the service list by a text query (matches names and tags like 'cut', 'color', 'beard'). The page updates so the person sees what you searched. Returns the matches.
View tool JSON
{
"name": "search_services",
"kind": "act",
"impl": "imperative",
"description": "Filter the service list by a text query (matches names and tags like 'cut', 'color', 'beard'). The page updates so the person sees what you searched. Returns the matches.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1
}
},
"required": [
"query"
],
"additionalProperties": false
},
"page": "/demo/"
}list_open_slotsAction
List the free slots for one service over the next three days. Slot ids from here are what book_slot accepts. The page navigates to that service so the person follows along.
View tool JSON
{
"name": "list_open_slots",
"kind": "act",
"impl": "imperative",
"description": "List the free slots for one service over the next three days. Slot ids from here are what book_slot accepts. The page navigates to that service so the person follows along.",
"inputSchema": {
"type": "object",
"properties": {
"serviceId": {
"type": "string"
}
},
"required": [
"serviceId"
],
"additionalProperties": false
},
"page": "/demo/"
}book_slotSensitive Action
Book one open slot for one service. Requires the person's name and email. Returns a confirmation code. Refused when the slot is taken, unknown, or belongs to another service.
View tool JSON
{
"name": "book_slot",
"kind": "transact",
"impl": "imperative",
"description": "Book one open slot for one service. Requires the person's name and email. Returns a confirmation code. Refused when the slot is taken, unknown, or belongs to another service.",
"inputSchema": {
"type": "object",
"properties": {
"serviceId": {
"type": "string"
},
"slotId": {
"type": "string"
},
"name": {
"type": "string",
"minLength": 1
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"serviceId",
"slotId",
"name",
"email"
],
"additionalProperties": false
},
"page": "/demo/"
}cancel_bookingSensitive Action
Cancel an existing booking by its confirmation code and free the slot again. Only bookings made on this page can be cancelled.
View tool JSON
{
"name": "cancel_booking",
"kind": "transact",
"impl": "imperative",
"description": "Cancel an existing booking by its confirmation code and free the slot again. Only bookings made on this page can be cancelled.",
"inputSchema": {
"type": "object",
"properties": {
"code": {
"type": "string"
}
},
"required": [
"code"
],
"additionalProperties": false
},
"page": "/demo/"
}