get_perfumes_by_category
Search and retrieve perfumes categorized for men, women, or niche fragrances using Blue Perfumery MCP Server. Simplify perfume discovery by filtering results based on specific preferences.
Instructions
Get perfumes by category (men, women, niche)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Category: 'men', 'women', or 'niche' |
Implementation Reference
- src/index.ts:194-250 (handler)Handler for get_perfumes_by_category tool: validates category input, constructs MongoDB filter based on category (niche uses category field regex, men/women use gender field), queries active perfumes, returns JSON response with results.case "get_perfumes_by_category": { const { category } = args as { category: string }; if (!category) { throw new McpError( ErrorCode.InvalidParams, "Category parameter is required" ); } if (!["men", "women", "niche"].includes(category)) { throw new McpError( ErrorCode.InvalidParams, "Category must be 'men', 'women', or 'niche'" ); } let filter: any = { status: "active" }; if (category === "niche" || category === "niches") { // Niche perfumes - filter by category containing exclusive/artisanal/premium filter.$or = [ { category: { $regex: "exclusive", $options: "i" } }, { category: { $regex: "artisanal", $options: "i" } }, { category: { $regex: "premium", $options: "i" } }, { category: "niches" }, ]; } else if (category === "men" || category === "male") { // Men's perfumes - male or unisex filter.$or = [ { gender: "male" }, { gender: "unisex" }, ]; } else if (category === "women" || category === "female") { // Women's perfumes - female or unisex filter.$or = [ { gender: "female" }, { gender: "unisex" }, ]; } const results = await Product.find(filter).lean(); return { content: [ { type: "text", text: JSON.stringify({ success: true, category: category, count: results.length, perfumes: results, }, null, 2), }, ], }; }
- src/index.ts:69-79 (schema)Input schema definition for get_perfumes_by_category tool, specifying category as required string enum: men, women, niche.inputSchema: { type: "object", properties: { category: { type: "string", description: "Category: 'men', 'women', or 'niche'", enum: ["men", "women", "niche"], }, }, required: ["category"], },
- src/index.ts:66-80 (registration)Registration of get_perfumes_by_category tool in ListTools response, including name, description, and input schema.{ name: "get_perfumes_by_category", description: "Get perfumes by category (men, women, niche)", inputSchema: { type: "object", properties: { category: { type: "string", description: "Category: 'men', 'women', or 'niche'", enum: ["men", "women", "niche"], }, }, required: ["category"], }, },