@tomaspavlin/rohlik-mcp
Version:
MCP server for controlling Rohlik.cz grocery shopping website
44 lines • 1.89 kB
JavaScript
import { z } from "zod";
export function createSearchProductsTool(createRohlikAPI) {
return {
name: "search_products",
definition: {
title: "Search Products",
description: "Search for products on Rohlik.cz by name",
inputSchema: {
product_name: z.string().min(1, "Product name cannot be empty").describe("The name or search term for the product"),
limit: z.number().min(1).max(50).default(10).describe("Maximum number of products to return (1-50, default: 10)"),
favourite_only: z.boolean().default(false).describe("Whether to return only favourite products (default: false)")
}
},
handler: async (args) => {
const { product_name, limit = 10, favourite_only = false } = args;
try {
const api = createRohlikAPI();
const results = await api.searchProducts(product_name, limit, favourite_only);
const output = `Found ${results.length} products:\n\n` +
results.map(product => `• ${product.name} (${product.brand})\n Price: ${product.price}\n Amount: ${product.amount}\n ID: ${product.id}`).join('\n\n');
return {
content: [
{
type: "text",
text: output
}
]
};
}
catch (error) {
return {
content: [
{
type: "text",
text: error instanceof Error ? error.message : String(error)
}
],
isError: true
};
}
}
};
}
//# sourceMappingURL=search-products.js.map