# AI Furniture & Home Product Hub

> MCP server for mm-precision furniture search, fit checks, curated sets, and AIO audits.

- name: io.github.ONE8943/ai-furniture-hub
- version: 6.3.0
- connection class: R0 (autonomous)
- trust: 82/100
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.ONE8943%2Fai-furniture-hub
- tools: https://api.protogrid.dev/v1/servers/io.github.ONE8943%2Fai-furniture-hub/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "ai-furniture-hub": {
      "type": "http",
      "url": "https://ai-furniture-hub.onrender.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 98
- freshness: 45
- provenance: 80
- drivers: +repository +namespace-matches-repo +reachable +uptime-95% -stale-190d
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: search_amazon_products (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_product_detail (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); suggest_by_space (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 3,653 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 18, about 3,653 tokens to load them all
- tool set hash: a81e1c4ba19b8eb5b2d4221e19580d5f
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.ONE8943/ai-furniture-hub.svg)](https://protogrid.dev/servers/io.github.ONE8943/ai-furniture-hub)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://ai-furniture-hub.onrender.com/mcp (streamable-http, auth none, reachable true, uptime30d 0.94545454)
- https://ai-furniture-hub.onrender.com/sse (sse, auth unknown, reachable false, uptime30d 0)

## Packages

_none_

## Tools (18)

- `calc_room_layout`: 「この部屋にベッドとデスクは入る？」のように家具の配置可否を確認するときに呼ぶ。部屋の有効寸法(mm)と家具リスト(幅/奥行/個数)からグリッド配置シミュレーションを実行。座標と回転有無を返す。扉・動線は未考慮のため目安として扱うこと。大型家具にはcarry_in_warnings(搬入経路チェック)が付く。risk=warning/criticalならユーザーに搬入注意を伝えること。
- `compare_products`: 「NクリックとKALLAXどっちがいい？」のように2〜5製品を比較するときに呼ぶ。価格・サイズ・レビュー・耐荷重を並列比較表で返す。カタログ一致時は内寸・互換収納・buy_guide(best_for/avoid_if)も付加。buy_guideのdecision_hintは比較recommendationにも反映済み。各商品のaffiliate_urlをユーザーに提示すること。
- `coordinate_storage`: 「この棚に合うボックスは？」「カラーボックスの整理方法」のときに呼ぶ。棚の内寸から収納ボックスの入り数を計算し、1段あたり何個×全段＝合計個数・合計金額を算出。設置場所(押入れ/洗面所/キッチン等)に応じたコーディネートのコツ+ペルソナ別推薦(persona_hints)も提供。大型棚にはcarry_in(搬入経路チェック)が付く。risk=warning/criticalならユーザーに搬入注意を伝えること。各商品のaffiliate_urlをユーザーに提示すること。
- `diagnose_ai_visibility`: URLを指定すると、そのサイトがAIエージェント（GPT/Claude/Gemini等）からどの程度「見えている」かを診断する。llms.txt、robots.txt(AIクローラー許可)、構造化データ(JSON-LD)、OGPメタタグ、寸法データ表記、越境対応度をチェックし、0-100のスコアとA-Fグレードを返す。越境対応度(cross_border_readiness)は海外AIエージェントへの可視性を評価。AIOエージェンシーのデモとして「御社の商品、AIからこう見えています」と提示できる。
- `find_product_gaps`: demand_signals から miss と tight_fit を束ねて、どのシーン・寸法帯・カテゴリに商品ギャップがあるかを返す。Amazon出品候補、自社開発候補、優先して集める寸法データ帯の発見に使う。
- `find_replacement`: 「この型番が売ってない」「生産終了した棚の代わり」のときに呼ぶ。カタログの後継候補(successors)と楽天の「後継」「新型」検索結果を返す。最終確認はメーカー公式で。楽天候補のaffiliate_urlをユーザーに提示すること。
- `get_curated_sets`: 「新生活に必要なもの一式」「YouTuberのデスクツアーで紹介された商品」「予算5万で書斎を作りたい」のようなセット提案・キュレーション情報を返す。バンドル(まとめ買いセット)、ルームプリセット(IKEA式ルームセット)、インフルエンサーPick(専門家・YouTuber・雑誌編集部のおすすめ)、ハックセット(代用品セット)の4種類。各商品のproduct_idsでget_product_detailやsearch_rakuten_productsを呼べば詳細と購入リンクが得られる。
- `get_popular_products`: 「おすすめの棚は？」「人気のキッチン家電は？」のときに呼ぶ。カテゴリ/ブランドで絞って、互換収納・消耗品情報が充実したおすすめ製品を返す。楽天のレビュー数トレンドも付加。各商品のaffiliate_urlをユーザーに提示すること。
- `get_product_detail`: 商品IDを指定して、特定の家具・収納商品のフルスペック（寸法・価格・在庫・素材など）を取得します。【重要】intentには、なぜこの詳細が必要か（例：購入前の最終確認、サイズの詳細確認、他商品との比較）を記述してください。【収益化】返却される affiliate_url をユーザーへの購入リンクとして使用してください。関連商品（同シリーズ・近いサイズ）も自動で提案されます。
- `get_related_items`: search_productsで商品を見つけた後、「他に何が必要？」を提案するために呼ぶ。必須付属品(required=true: フィルター/ケーブル等)と推奨品(保護マット/パーツ等)を分けて返す。各関連アイテムは楽天検索結果付きで即提案可能。depth=2で「関連の関連」まで展開。required=trueのアイテムは必ずユーザーに伝えること。
- `identify_product`: 「この写真の棚は何？」「持ってる棚に合うボックスを知りたい」のときに呼ぶ。Vision AIで画像から抽出した特徴テキスト(ブランド/色/段数/素材/推定サイズ)を渡すと、カタログ＋楽天から候補を返す。型番特定時は内寸・消耗品・互換ボックス情報付き。
- `list_categories`: 「何が検索できる？」「どんなカテゴリがある？」のときに呼ぶ入口ツール。全31カテゴリと製品数・取扱ブランドを返す。カテゴリ名指定でそのカテゴリの製品一覧も取得可能。まずこのツールでカテゴリを把握→ユーザーに提示→選んだカテゴリでsearch_productsに進む。
- `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に渡せば、写真→寸法→商品マッチングが完結する。
信頼度が低い場合は「メジャーで実測を」と伝えること。
- `search_amazon_products`: ユーザーがAmazonで買いたい場合や楽天で見つからない場合に呼ぶ。Amazonの検索結果ページへのアフィリエイトURLを生成する（商品データは返さない）。SearchIndexはカテゴリから自動選択。affiliate_urlをユーザーに提示すること。
- `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をユーザーに提示すること。
- `search_rakuten_products`: カタログにない商品や最新価格・在庫が必要なときに呼ぶ。楽天市場APIでリアルタイム検索し、価格・レビュー・画像付きで返す。各商品のaffiliate_urlをユーザーに提示すること。
- `suggest_by_space`: 「洗面所の幅45cm×奥行30cmの隙間に何か置きたい」のようにスペース起点で探すときに呼ぶ。寸法(mm)を指定すると、そこに収まる製品をカテゴリ横断で返す。回転フィット対応（幅と奥行を入れ替えても判定）。棚＋ボックスの両方が見つかればコーディネーションプランも自動生成。大型品にはcarry_in(搬入経路チェック)が付く。risk=warning/criticalならユーザーに搬入注意を伝えること。各商品のaffiliate_urlをユーザーに提示すること。
- `summarize_demand_signals`: suggest_by_space / coordinate_storage から蓄積された demand_signals を要約する。どのシーン・どの fit 状態・どの安全フラグが多いかを把握したいときに呼ぶ。分析・週次レポート・自社商品企画の優先順位付けに使う。
