gradeNot graded
search_productsAnswer
Search the Duet catalog by keyword — multi-word ok, word order doesn't matter; matches name, category or specs. Returns ids, prices and live stock. Omit query to list everything.
View tool JSON
{
"name": "search_products",
"kind": "answer",
"impl": "imperative",
"description": "Search the Duet catalog by keyword — multi-word ok, word order doesn't matter; matches name, category or specs. Returns ids, prices and live stock. Omit query to list everything.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string"
}
}
},
"page": "/webmcp-duet/"
}get_productAnswer
Get full details of one product by id, including specs.
View tool JSON
{
"name": "get_product",
"kind": "answer",
"impl": "imperative",
"description": "Get full details of one product by id, including specs.",
"inputSchema": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
},
"page": "/webmcp-duet/"
}compare_optionsAction
Compare 2+ products side by side (price, stock, lead time). Flags the bestPrice and cheapestInStock option — use it before recommending a purchase.
View tool JSON
{
"name": "compare_options",
"kind": "act",
"impl": "imperative",
"description": "Compare 2+ products side by side (price, stock, lead time). Flags the bestPrice and cheapestInStock option — use it before recommending a purchase.",
"inputSchema": {
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
}
}
},
"page": "/webmcp-duet/"
}add_to_cartAction
Add a product to the shared cart (qty defaults to 1). Fails with an exact stock message if not enough is available.
View tool JSON
{
"name": "add_to_cart",
"kind": "act",
"impl": "imperative",
"description": "Add a product to the shared cart (qty defaults to 1). Fails with an exact stock message if not enough is available.",
"inputSchema": {
"type": "object",
"required": [
"productId"
],
"properties": {
"productId": {
"type": "string"
},
"qty": {
"type": "integer"
}
}
},
"page": "/webmcp-duet/"
}propose_orderSensitive Action
Create a PENDING order proposal from the current cart. Nothing is finalized until a human approves it — this is Duet's propose→approve loop.
View tool JSON
{
"name": "propose_order",
"kind": "transact",
"impl": "imperative",
"description": "Create a PENDING order proposal from the current cart. Nothing is finalized until a human approves it — this is Duet's propose→approve loop.",
"inputSchema": {
"type": "object",
"properties": {
"note": {
"type": "string"
}
}
},
"page": "/webmcp-duet/"
}approve_orderSensitive Action
Approve a pending order proposal (the human-in-the-loop step). Commits stock and returns the fulfillment plan with remaining stock per line.
View tool JSON
{
"name": "approve_order",
"kind": "transact",
"impl": "imperative",
"description": "Approve a pending order proposal (the human-in-the-loop step). Commits stock and returns the fulfillment plan with remaining stock per line.",
"inputSchema": {
"type": "object",
"required": [
"orderId"
],
"properties": {
"orderId": {
"type": "string"
}
}
},
"page": "/webmcp-duet/"
}check_inventoryAnswer
Check live inventory: stock level, lead time and in-stock/backorder status. Pass productId for one item, omit it for the full register.
View tool JSON
{
"name": "check_inventory",
"kind": "answer",
"impl": "imperative",
"description": "Check live inventory: stock level, lead time and in-stock/backorder status. Pass productId for one item, omit it for the full register.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string"
}
}
},
"page": "/webmcp-duet/"
}