# AI Furniture & Home Product Hub - Full Tool Documentation > MCP Server v6.3.0 | Protocol: Model Context Protocol (stdio + Streamable HTTP) > Operator: ONE, Inc. (株式会社ONE) > 355+ curated products | 31 categories | 90+ brands | 15 tools + 3 prompt workflows > Curated sets (15 bundles, 8 room presets, influencer picks, hack sets), 25-entry compatibility DB, AI visibility diagnosis --- ## Tool 1: search_products Search the curated product database with millimeter-precision dimension filters. Covers products across 31 categories: furniture, home appliances, PC peripherals, smart home, beauty, kitchen, gadgets, health & fitness. ### Parameters | Name | Type | Required | Description | |------|------|----------|-------------| | intent | string | YES | Why the user needs this product. Include placement location, use case, constraints. | | keyword | string | no | Free-text keyword (partial match on name, brand, tags; space-separated AND) | | brand | string | no | Brand filter (e.g., "ニトリ", "IKEA", "Dyson") | | width_mm_min | number | no | Minimum width in mm | | width_mm_max | number | no | Maximum width in mm | | height_mm_min | number | no | Minimum height in mm | | height_mm_max | number | no | Maximum height in mm | | depth_mm_min | number | no | Minimum depth in mm | | depth_mm_max | number | no | Maximum depth in mm | | price_min | integer | no | Minimum price in JPY | | price_max | integer | no | Maximum price in JPY | | color | string | no | Color name with alias support (e.g., "白" matches ホワイト/アイボリー) | | category | string | no | Category (31 available - see list below) | | in_stock_only | boolean | no | Only in-stock items (default: true) | ### Example Call ```json { "tool": "search_products", "arguments": { "intent": "洗面所の幅42cmの隙間にぴったり収まる収納棚を探している。タオルと洗剤を収納予定。", "width_mm_max": 420, "depth_mm_max": 350, "price_max": 10000, "in_stock_only": true } } ``` --- ## Tool 2: get_product_detail Get full product specifications by ID. Returns dimensions, materials, related items, and affiliate link. ### Parameters | Name | Type | Required | Description | |------|------|----------|-------------| | id | string | YES | Product ID from search_products results | | intent | string | YES | Why the user needs product details | --- ## Tool 3: search_rakuten_products Real-time search across Rakuten Ichiba marketplace with auto-categorization and dimension extraction. ### Parameters | Name | Type | Required | Description | |------|------|----------|-------------| | intent | string | YES | Why the user needs this product | | keyword | string | YES | Search keyword (e.g., "カラーボックス 3段", "Dyson 空気清浄機") | | price_min | integer | no | Minimum price in JPY | | price_max | integer | no | Maximum price in JPY | | sort | enum | no | "standard", "+itemPrice", "-itemPrice", "-reviewCount", "-reviewAverage", "+updateTimestamp" | | hits | integer | no | Number of results, 1-30 (default: 10) | ### Example Call ```json { "tool": "search_rakuten_products", "arguments": { "intent": "リモートワーク用のモニターアームを探している。予算1万円以内。", "keyword": "モニターアーム ガスシリンダー", "price_max": 10000, "sort": "-reviewAverage", "hits": 10 } } ``` --- ## Tool 4: search_amazon_products Generates Amazon affiliate search link URLs. Does NOT return product data — returns a URL the user can open in their browser. SearchIndex automatically selected by product category. ### Parameters | Name | Type | Required | Description | |------|------|----------|-------------| | intent | string | YES | Why the user needs this product | | keyword | string | YES | Amazon search keyword | | price_min | integer | no | Minimum price in JPY | | price_max | integer | no | Maximum price in JPY | | sort | enum | no | "price-asc-rank", "price-desc-rank", "review-rank", "date-desc-rank" | --- ## Tool 5: coordinate_storage ★ Unique Feature **Shelf + storage box coordination with quantity calculation.** ### Parameters | Name | Type | Required | Description | |------|------|----------|-------------| | intent | string | YES | Placement location, use case, room type | | keyword | string | YES | Shelf search keyword | | price_max | integer | no | Budget cap for the shelf (JPY) | | storage_keyword | string | no | Storage box keyword | | scene | string | no | Room hint ("押入れ", "洗面所", "キッチン", etc.) | | shelf_count | integer | no | How many shelf candidates to return (1-5, default: 3) | --- ## Tool 6: suggest_by_space **Space-first product discovery.** Give dimensions and get everything that fits. ### Parameters | Name | Type | Required | Description | |------|------|----------|-------------| | intent | string | YES | Placement location, use case | | width_mm | number | YES | Available space width in mm | | depth_mm | number | YES | Available space depth in mm | | height_mm | number | YES | Available space height in mm | | price_max | integer | no | Budget cap (JPY) | | categories | string[] | no | Desired categories | --- ## Tool 7: identify_product **Photo-to-spec product identification.** Pass visual features and get product candidates with confidence scores. ### Parameters | Name | Type | Required | Description | |------|------|----------|-------------| | intent | string | YES | Why you need to identify this product | | features | string | YES | Visual features: brand, color, tiers, material, size estimate | | brand_hint | string | no | Brand name if logo is visible | | dimensions_hint | object | no | Estimated dimensions `{ width_mm?, height_mm?, depth_mm? }` | | include_compatible | boolean | no | Include compatible storage/consumable info (default: true) | --- ## Tool 8: compare_products | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | intent | string | YES | Why you compare | | keywords | string[] | YES | 2-5 Rakuten search keywords (one top hit each) | | compare_aspects | string[] | no | Optional focus aspects | --- ## Tool 9: find_replacement | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | intent | string | YES | Why a replacement is needed | | query | string | YES | Model number or product description | --- ## Tool 10: calc_room_layout | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | intent | string | YES | Room use case and constraints | | room_width_mm | number | YES | Usable floor width (mm) | | room_depth_mm | number | YES | Usable floor depth (mm) | | items | object[] | YES | `{ label, width_mm, depth_mm, count? }` | | margin_between_mm | int | no | Gap between furniture (default 0) | | wall_clearance_mm | int | no | Inset from walls (default 0) | | grid_step_mm | int | no | Search grid step (default 50) | --- ## Tool 11: list_categories Browse all 31 product categories with product counts and sample products. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | intent | string | YES | Why listing categories | --- ## Tool 12: get_popular_products Popular/recommended products by category or brand, with Rakuten trending data. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | intent | string | YES | Why checking popular products | | category | string | no | Filter by category | | brand | string | no | Filter by brand | | limit | integer | no | Max results (default: 10) | --- ## Tool 13: get_related_items ★ Core Tool **Related-item chain: 1 product -> 3-5 related items with affiliate URLs.** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | intent | string | YES | Why looking for related items | | product_id | string | no | Product ID to get related items for | | keyword | string | no | Search keyword if no product_id | | depth | integer | no | Chain depth: 1 = direct, 2 = related-of-related (default: 1) | ### Relation Types - **requires**: Must-have (e.g., HEPA filter for air purifier) - **protects_with**: Protection (floor mats, earthquake gel, cases) - **enhances_with**: Upgrades (casters, extra shelves, monitor arms) - **coordinates_with**: Complementary (cable trays, stands, baskets) - **fits_inside**: Storage that fits inside - **hack_substitute**: Budget alternative (100-yen shop substitute for expensive specialized product) - **alternative**: Different brand/model that serves same purpose --- ## Tool 14: get_curated_sets **Curated collections: bundles, room presets, influencer picks, hack sets.** Search and retrieve expert-curated product sets. Each result includes resolved product names and IDs for easy follow-up with get_product_detail or search_rakuten_products. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | intent | string | YES | Why this curated set is needed | | type | string | no | Filter: "bundle" / "room_preset" / "influencer_pick" / "hack_set" | | scene | string | no | Scene filter for room presets (e.g., "書斎", "キッチン", "リビング") | | occasion | string | no | Occasion filter for bundles (e.g., "新生活", "出産準備", "模様替え") | | budget_max | number | no | Maximum budget in JPY | | keyword | string | no | Free-text search across titles, descriptions, curator names | ### Response includes: - **bundles**: Occasion-based product sets (e.g., "新生活スターターキット") - **room_presets**: IKEA-style room set proposals with layout tips - **influencer_picks**: YouTuber/magazine/expert recommendations with source URLs - **hack_sets**: Budget alternative sets using 100-yen shop items ### Example call: ```json { "intent": "新生活準備", "type": "bundle", "occasion": "新生活", "budget_max": 50000 } ``` --- ## Tool 15: diagnose_ai_visibility **AI visibility audit for any website URL.** Diagnoses how well a website is "visible" to AI agents (GPT, Claude, Gemini, etc.) by checking llms.txt, robots.txt, structured data, OGP, dimensions format, and cross-border readiness. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | intent | string | YES | Why this diagnosis is needed | | url | string | YES | Target URL to diagnose | ### Response: - **score** (0-100): Overall AI visibility score - **grade** (A-F): Letter grade - **checks**: Array of diagnostic items (llms.txt, robots.txt, JSON-LD, OGP, dimension format, mobile) - **cross_border_readiness**: International AI agent readiness (English meta, structured dimensions, multi-currency, shipping info) - **recommendation**: Prioritized improvement suggestions ### Example call: ```json { "intent": "自社ECサイトのAI可視性チェック", "url": "https://www.nitori-net.jp/ec/product/8841424/" } ``` --- ## Product Categories (31) | Category | Products | Key Brands | |----------|----------|------------| | シェルフ・棚 | Shelves, open shelves | Nitori, IKEA, Muji | | カラーボックス | Color boxes | Nitori N-Click, IKEA KALLAX | | 収納ケース | Storage boxes | Nitori N-InBox, Muji PP, Daiso | | ワゴン・可動収納 | Trolleys, wagons | IKEA RÅSKOG, tower | | 衣装ケース | Clothing storage | Tenma Fits, Iris Ohyama | | スチールラック | Steel racks | Luminous, Iris Ohyama | | デスク | Desks | FlexiSpot, IKEA, Nitori, LOWYA | | キッチン収納 | Kitchen storage | tower, Nitori, Yamazen | | ランドリー収納 | Laundry storage | tower, Iris Ohyama, Yamazen | | バス・洗面収納 | Bath/vanity | tower, Nitori, Muji | | 玄関収納 | Entrance/shoe | Nitori, IKEA, tower | | テレビ台 | TV stands | IKEA BESTÅ, Nitori, LOWYA | | 本棚 | Bookshelves | IKEA BILLY, Nitori, Yamazen | | クローゼット収納 | Closet organizers | IKEA PAX, Nitori, Muji | | ファイル収納 | File storage | Muji PP, King Jim, Seria | | ベビー・安全対策 | Baby safety | Combi, Nihon Ikuji, Richell | | 突っ張り棒・つっぱり | Tension rods/shelves | Heian Shindo, Iris Ohyama | | 保護・補修材 | Protection materials | Earthquake gel, wall pads, floor mats | | パーツ・アクセサリ | Parts/accessories | Luminous, Sanwa, tower | | 家電・照明 | Appliances/lighting | Panasonic, iRobot, Dyson | | 寝具・マットレス | Bedding/mattresses | Nitori N-Sleep, Muji, Koala, Emma | | ソファ・チェア | Sofas/chairs | IKEA, Nitori, LOWYA, Ergohuman | | ダイニング家具 | Dining furniture | Nitori, IKEA, LOWYA | | カーテン・ブラインド | Curtains/blinds | Nitori, IKEA, TOSO | | PC周辺・デスク環境 | PC peripherals | Ergotron, Logitech, BenQ, HHKB | | スマートホーム | Smart home | SwitchBot, Echo, Philips Hue | | 美容家電 | Beauty devices | Dyson, Panasonic, ReFa, YA-MAN | | 空気環境家電 | Air quality | Sharp, Dyson, Daikin, Balmuda | | キッチン家電 | Kitchen appliances | Balmuda, DeLonghi, Sharp | | ガジェット・モバイル | Gadgets | AirPods, Sony, Anker, Kindle | | 健康・フィットネス | Health/fitness | Tanita, Fitbit, Therabody | --- ## Recommended Workflow for AI Agents 1. **Photo identification**: User has a photo -> `identify_product` 2. **Space discovery**: User has dimensions -> `suggest_by_space` 3. **Related items**: Found a product -> `get_related_items` for accessories 4. **Coordination**: Shelf + storage -> `coordinate_storage` 5. **Compare**: Hesitating -> `compare_products` 6. **Replacement**: Discontinued model -> `find_replacement` 7. **Layout**: "Does it all fit?" -> `calc_room_layout` 8. **Browse**: Categories -> `list_categories` then `search_products` 9. **Trending**: What's popular -> `get_popular_products` 10. **Broad search**: Use `search_rakuten_products` for discovery 11. **Final check**: `get_product_detail` before recommending 12. **Always present** `affiliate_url` to the end user ## Scene Intelligence Mention a room in the `intent` and get tailored tips: - **押入れ・クローゼット**: 奥行80cm活用、キャスター付き推奨 - **洗面所**: 湿気に強い素材、15-30cmスリム収納 - **キッチン**: シンク下ラック、ファイルボックス活用 - **リビング**: カラーボックス横置き、見せる/隠す収納 - **子供部屋**: 子供の目線の高さ、ラベル付け、角丸収納 - **玄関**: 縦型シューズラック、鍵・印鑑まとめ収納 - **書斎・デスク**: モニターアーム、ケーブル整理、デスクマット - **寝室**: ベッドサイド収納、間接照明、加湿器 ## Key Design Decisions - All dimensions in **millimeters** (mm) - All prices in **Japanese Yen** (JPY), tax-included integers - `intent` parameter **required** on every tool call - Always present `affiliate_url` to users - Related items marked `required: true` should always be mentioned - Amazon SearchIndex dynamically selected by product category - External input validated with Zod ## Prompt Workflows (3) ### room_coordinator Complete coordination plan for a given space. Input: room type, dimensions (mm), optional budget. Executes: suggest_by_space → get_related_items → coordinate_storage → full plan with quantities and costs. ### moving_checklist Room-by-room purchasing checklist for a new home. Input: floor plan type (1K/1LDK/2LDK/3LDK), optional priority rooms. Executes: list_categories → get_popular_products → get_related_items → categorized shopping list with budget. ### product_showdown Detailed comparison of two products including accessory and running costs. Input: two product names, optional use case. Executes: compare_products → get_related_items for both → total ownership cost comparison with verdict. --- ## AI Agent Guide See [AGENTS.md](https://ai-furniture-hub.onrender.com/AGENTS.md) for detailed tool selection guide, workflow patterns, and error handling. ## Connection - **Streamable HTTP (remote)**: `https://ai-furniture-hub.onrender.com/mcp` - **stdio (local)**: `npx ai-furniture-hub` or `npx ts-node index.ts` - **Smithery**: `j2c214c/ai-furniture-hub` - **npm**: `npm install ai-furniture-hub`