moku_search_products
En la página de búsqueda, cambia la consulta y, si se indica, la categoría. Espera a que la URL, los filtros y la lista visible coincidan con la petición.
query es obligatorio y admite hasta 120 caracteres Unicode; una cadena vacía busca sin texto. category admite hasta 80 caracteres y debe coincidir con una categoría de la página. Omitirla conserva el filtro actual; una cadena vacía lo limpia. Se rechazan campos extra y caracteres de control. El esquema descubierto incluye las categorías disponibles.
Devuelve el total, filtros, orden y hasta 3 productos del comienzo de la lista visible, con ID, nombre acotado, precio CLP y enlace relativo. has_more indica que quedan resultados fuera de la respuesta. Repetir la consulta actual conserva el rango de precios y el orden elegidos; cambiar consulta o categoría reinicia el rango igual que la interfaz.
Ver esquema de entrada
{
"type": "object",
"additionalProperties": false,
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 120,
"pattern": "^(?:[^\\u0000-\\u001f\\u007f\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff])*$"
},
"category": {
"type": "string",
"maxLength": 80
}
}
}Ver ejemplo para Chrome compatible
const context = document.modelContext;
if (!context?.getTools || !context.executeTool) {
throw new Error("WebMCP no está disponible en este navegador.");
}
const tool = (await context.getTools()).find(
item => item.name === "moku_search_products"
);
if (!tool) throw new Error("Abre la página de búsqueda de Moku antes de llamar esta herramienta.");
const result = await context.executeTool(
tool, JSON.stringify({"query":"cerámica","category":""})
);
if (result !== null) console.log(JSON.parse(result));