AI Furniture & Home Product Hub
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
MCP server for mm-precision furniture search, fit checks, curated sets, and AIO audits.
| Author | io.github.ONE8943 |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 356 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"AI Furniture & Home Product Hub": {
"url": "https://ai-furniture-hub.onrender.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (18)
search_productsユーザーが「棚が欲しい」「Dysonのドライヤー」「幅40cmに入るもの」と言ったときに呼ぶ。31カテゴリ・80+ブランドのカタログをキーワード・サイズ(mm)・価格・色・ブランドで横断検索。結果にrelated_items_hintがある場合はget_related_itemsで付属品チェーンを取得できる。buy_guideがある場合はbest_for/avoid_ifをユーザーに伝えて購入判断を助けること。seasonal_hints/active_salesがある場合はセール情報を伝えること。色はエイリアス対応(白→ホワイト/アイボリー等)。各商品のaffiliate_urlをユーザーに提示すること。
Parameters:
intent(required) — string — 【必須】検索目的brand— string — ブランド(例:ニトリ、IKEA、Dyson、Panasonic)color— string — 色(例:ホワイト、白、ブラウン、木目)。エイリアス対応:白→ホワイト/アイボリー等keyword— string — キーワード(商品名・ブランド・タグで部分一致、スペース区切りでAND検索)category— string — カテゴリ(例:デスク、美容家電、スマートホーム)price_max— integer — 価格の上限(円)price_min— integer — 価格の下限(円)depth_mm_max— number — 奥行きの最大値(mm)depth_mm_min— number — 奥行きの最小値(mm)width_mm_max— number — 幅の最大値(mm)width_mm_min— number — 幅の最小値(mm)height_mm_max— number — 高さの最大値(mm)height_mm_min— number — 高さの最小値(mm)in_stock_only— boolean — 在庫ありのみ(デフォルト:true)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_product_detail商品IDを指定して、特定の家具・収納商品のフルスペック(寸法・価格・在庫・素材など)を取得します。【重要】intentには、なぜこの詳細が必要か(例:購入前の最終確認、サイズの詳細確認、他商品との比較)を記述してください。【収益化】返却される affiliate_url をユーザーへの購入リンクとして使用してください。関連商品(同シリーズ・近いサイズ)も自動で提案されます。
Parameters:
id(required) — string — 商品IDintent(required) — string — 【必須】詳細を見る理由
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
search_rakuten_productsカタログにない商品や最新価格・在庫が必要なときに呼ぶ。楽天市場APIでリアルタイム検索し、価格・レビュー・画像付きで返す。各商品のaffiliate_urlをユーザーに提示すること。
Parameters:
intent(required) — string — 【必須】検索目的keyword(required) — string — 楽天検索キーワードhits— integer — 取得件数(1〜30)sort— string — 並び順price_max— integer — 最高価格(円)price_min— integer — 最低価格(円)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
search_amazon_productsユーザーがAmazonで買いたい場合や楽天で見つからない場合に呼ぶ。Amazonの検索結果ページへのアフィリエイトURLを生成する(商品データは返さない)。SearchIndexはカテゴリから自動選択。affiliate_urlをユーザーに提示すること。
Parameters:
intent(required) — string — 【必須】検索目的keyword(required) — string — Amazon検索キーワードsort— string — 並び順price_max— integer — 最高価格(円)price_min— integer — 最低価格(円)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
coordinate_storage「この棚に合うボックスは?」「カラーボックスの整理方法」のときに呼ぶ。棚の内寸から収納ボックスの入り数を計算し、1段あたり何個×全段=合計個数・合計金額を算出。設置場所(押入れ/洗面所/キッチン等)に応じたコーディネートのコツ+ペルソナ別推薦(persona_hints)も提供。大型棚にはcarry_in(搬入経路チェック)が付く。risk=warning/criticalならユーザーに搬入注意を伝えること。各商品のaffiliate_urlをユーザーに提示すること。
Parameters:
intent(required) — string — 【必須】設置場所・用途・状況を詳細にkeyword(required) — string — 棚の検索キーワード(例: 'カラーボックス 3段')scene— string — 設置場所ヒント('押入れ','洗面所','キッチン'等)price_max— integer — 棚の予算上限(円)shelf_count— integer — 提案する棚の件数(1〜5)storage_keyword— string — 収納ボックスの検索キーワード(省略時は自動推定)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
suggest_by_space「洗面所の幅45cm×奥行30cmの隙間に何か置きたい」のようにスペース起点で探すときに呼ぶ。寸法(mm)を指定すると、そこに収まる製品をカテゴリ横断で返す。回転フィット対応(幅と奥行を入れ替えても判定)。棚+ボックスの両方が見つかればコーディネーションプランも自動生成。大型品にはcarry_in(搬入経路チェック)が付く。risk=warning/criticalならユーザーに搬入注意を伝えること。各商品のaffiliate_urlをユーザーに提示すること。
Parameters:
intent(required) — string — 【必須】設置場所・用途・状況を詳細にwidth_mm(required) — number — 空きスペースの幅(mm)depth_mm(required) — number — 空きスペースの奥行き(mm)height_mm(required) — number — 空きスペースの高さ(mm)price_max— integer — 予算上限(円)categories— array — 探したいカテゴリ(省略時は自動推定)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
measure_from_photo「写真を撮ったので寸法を測りたい」「この隙間に合う棚を探したい」のときに呼ぶ。 ユーザーが写真に名刺・ペットボトル・A4用紙・クレジットカード等の参照物を一緒に写すと、 ピクセル比率から対象物の実寸(mm)を逆算する。 【AIの役割】写真をVisionで解析し、参照物と対象物それぞれのピクセル幅・高さを読み取ってこのツールに渡す。 対応参照物: 名刺(91×55mm)、クレジットカード(85.6×54mm)、ペットボトル500ml(65×205mm)、A4用紙(210×297mm)、500円玉(∅26.5mm)、1円玉(∅20mm)、スマホ(71.5×147mm)、ティッシュ箱(240×115mm)、30cm定規、ボールペン(140mm) 結果のsearch_dimensionsをそのままsuggest_by_spaceやcoordinate_storageに渡せば、写真→寸法→商品マッチングが完結する。 信頼度が低い場合は「メジャーで実測を」と伝えること。
Parameters:
intent(required) — string — 【必須】写真から何を測りたいかreference_object(required) — string — 写真に写っている参照物の名前(名刺/ペットボトル/A4用紙/クレジットカード/500円玉/1円玉/スマホ/ティッシュ箱/30cm定規/ボールペン)reference_px(required) — object — 参照物のピクセル寸法(AIがVisionで画像から読み取る)target_description(required) — string — 測定対象の説明(例: '白い3段カラーボックス', '洗面台横の隙間')target_px(required) — object — 対象物のピクセル寸法(AIがVisionで画像から読み取る)estimated_depth_mm— number — AIが推定した奥行き(mm)。写真から奥行きが読めない場合にVision LLMの推定値を入れるmanual_dimensions_mm— object — ユーザーがメジャー/AR等で実測した値があれば上書き(最高精度)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
identify_product「この写真の棚は何?」「持ってる棚に合うボックスを知りたい」のときに呼ぶ。Vision AIで画像から抽出した特徴テキスト(ブランド/色/段数/素材/推定サイズ)を渡すと、カタログ+楽天から候補を返す。型番特定時は内寸・消耗品・互換ボックス情報付き。
Parameters:
intent(required) — string — 【必須】なぜ特定したいかfeatures(required) — string — 画像から読み取った特徴テキスト(ブランド、色、段数、素材、推定サイズ、形状特徴等)brand_hint— string — ブランド名ヒント(ロゴが見えた場合)dimensions_hint— object — 推定寸法(mm)分かる範囲でinclude_compatible— boolean — 互換収納・消耗品情報も含めるか(デフォルト: true)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
compare_products「NクリックとKALLAXどっちがいい?」のように2〜5製品を比較するときに呼ぶ。価格・サイズ・レビュー・耐荷重を並列比較表で返す。カタログ一致時は内寸・互換収納・buy_guide(best_for/avoid_if)も付加。buy_guideのdecision_hintは比較recommendationにも反映済み。各商品のaffiliate_urlをユーザーに提示すること。
Parameters:
intent(required) — string — 【必須】なぜ比較したいかkeywords(required) — array — 比較したい製品の検索キーワード(2〜5件)compare_aspects— array — 比較したい観点(省略時はデフォルト全項目)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_replacement「この型番が売ってない」「生産終了した棚の代わり」のときに呼ぶ。カタログの後継候補(successors)と楽天の「後継」「新型」検索結果を返す。最終確認はメーカー公式で。楽天候補のaffiliate_urlをユーザーに提示すること。
Parameters:
intent(required) — string — 【必須】なぜ代替が必要かquery(required) — string — 型番または商品名・特徴テキスト
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
calc_room_layout「この部屋にベッドとデスクは入る?」のように家具の配置可否を確認するときに呼ぶ。部屋の有効寸法(mm)と家具リスト(幅/奥行/個数)からグリッド配置シミュレーションを実行。座標と回転有無を返す。扉・動線は未考慮のため目安として扱うこと。大型家具にはcarry_in_warnings(搬入経路チェック)が付く。risk=warning/criticalならユーザーに搬入注意を伝えること。
Parameters:
intent(required) — string — 【必須】部屋の用途・制約room_width_mm(required) — number — 部屋の有効幅(mm)room_depth_mm(required) — number — 部屋の有効奥行き(mm)items(required) — arraygrid_step_mm— integermargin_between_mm— integerwall_clearance_mm— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_categories「何が検索できる?」「どんなカテゴリがある?」のときに呼ぶ入口ツール。全31カテゴリと製品数・取扱ブランドを返す。カテゴリ名指定でそのカテゴリの製品一覧も取得可能。まずこのツールでカテゴリを把握→ユーザーに提示→選んだカテゴリでsearch_productsに進む。
Parameters:
intent(required) — string — 【必須】カテゴリを見る目的category_filter— string — 特定カテゴリに絞る(例: 'キッチン収納', 'デスク')
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_popular_products「おすすめの棚は?」「人気のキッチン家電は?」のときに呼ぶ。カテゴリ/ブランドで絞って、互換収納・消耗品情報が充実したおすすめ製品を返す。楽天のレビュー数トレンドも付加。各商品のaffiliate_urlをユーザーに提示すること。
Parameters:
intent(required) — string — 【必須】おすすめを見る目的brand— string — ブランドで絞り込み(例: 'ニトリ', 'IKEA')limit— integer — 取得件数category— string — カテゴリで絞り込み(例: 'デスク', 'キッチン収納')include_rakuten_trending— boolean — 楽天人気ランキングも含めるか
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
summarize_demand_signalssuggest_by_space / coordinate_storage から蓄積された demand_signals を要約する。どのシーン・どの fit 状態・どの安全フラグが多いかを把握したいときに呼ぶ。分析・週次レポート・自社商品企画の優先順位付けに使う。
Parameters:
intent(required) — string — 【必須】なぜ需要サマリーを見たいかlimit— integer — 上位何件まで見るかscene_name— string — 特定シーンに絞る(例: '洗面所・脱衣所')
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
find_product_gapsdemand_signals から miss と tight_fit を束ねて、どのシーン・寸法帯・カテゴリに商品ギャップがあるかを返す。Amazon出品候補、自社開発候補、優先して集める寸法データ帯の発見に使う。
Parameters:
intent(required) — string — 【必須】なぜギャップ候補を抽出したいかlimit— integer — 返す候補数scene_name— string — 特定シーンに絞る(例: '押入れ・クローゼット')include_tight_fit— boolean — tight_fit も改善候補として含めるか
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_related_itemssearch_productsで商品を見つけた後、「他に何が必要?」を提案するために呼ぶ。必須付属品(required=true: フィルター/ケーブル等)と推奨品(保護マット/パーツ等)を分けて返す。各関連アイテムは楽天検索結果付きで即提案可能。depth=2で「関連の関連」まで展開。required=trueのアイテムは必ずユーザーに伝えること。
Parameters:
intent(required) — string — 【必須】関連アイテムを探す理由depth— integer — チェーン深度(1=直接関連、2=関連の関連も含む)keyword— string — 製品名やキーワード(IDが不明な場合)product_id— string — 既知製品のID(get_product_detailで取得)include_rakuten— boolean — 楽天で関連アイテムを検索するか
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
diagnose_ai_visibilityURLを指定すると、そのサイトがAIエージェント(GPT/Claude/Gemini等)からどの程度「見えている」かを診断する。llms.txt、robots.txt(AIクローラー許可)、構造化データ(JSON-LD)、OGPメタタグ、寸法データ表記、越境対応度をチェックし、0-100のスコアとA-Fグレードを返す。越境対応度(cross_border_readiness)は海外AIエージェントへの可視性を評価。AIOエージェンシーのデモとして「御社の商品、AIからこう見えています」と提示できる。
Parameters:
intent(required) — string — 【必須】なぜ診断が必要かurl(required) — string — 診断対象のURL
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_curated_sets「新生活に必要なもの一式」「YouTuberのデスクツアーで紹介された商品」「予算5万で書斎を作りたい」のようなセット提案・キュレーション情報を返す。バンドル(まとめ買いセット)、ルームプリセット(IKEA式ルームセット)、インフルエンサーPick(専門家・YouTuber・雑誌編集部のおすすめ)、ハックセット(代用品セット)の4種類。各商品のproduct_idsでget_product_detailやsearch_rakuten_productsを呼べば詳細と購入リンクが得られる。
Parameters:
intent(required) — string — 【必須】なぜこの提案が必要かtype— string — 絞り込み: bundle / room_preset / influencer_pick / hack_setscene— string — シーン(書斎、キッチン、リビング等)keyword— string — フリーワード検索occasion— string — オケージョン(新生活、引越し、出産準備等)budget_max— number — 予算上限(円)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.