mcpField
F
Furniture Designer

Furniture Designer

ローカル
github.com/LuisEnVillaメディア・デザイン331 週間前に更新

Furniture Designer について

Furniture Designerは、家具の寸法と種類から製造用パッケージを作成するMCPサーバーで、家具の設計者や製作者を対象としています。構造検証、切断最適化、部品表、組み立て手順、インタラクティブなHTMLレポートを備え、FreeCADへのエクスポートも選択できます。

主な機能

  1. 01寸法と種類に基づく家具仕様の生成
  2. 02設計ルールに基づく構造検証
  3. 03木目と鋸刃幅を考慮した板材切断最適化
  4. 04部品表と組み立て手順
  5. 053Dビューア付きインタラクティブHTMLレポート
  6. 06FreeCADモデルと図面の任意エクスポート

活用シーン

  1. 01キャビネット設計の製造資料作成
  2. 02設計の検証と板材切断の最適化
  3. 03保存済み設計の再開と反復内容の比較

MCP 対応

家具設計、検証、製造計画、プロジェクト管理、レポート作成の23種類のツールをMCPクライアントに提供します。FreeCAD関連ツールには、記載されたFreeCADまたはfreecad-mcpの依存関係が必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"luisenvilla-furniture-designer": {
"command": "uvx",
"args": [
"furniture-designer-mcp"
]
}
}
}
起動コマンドuvx furniture-designer-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypifurniture-designer-mcp0.1.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

furniture-designer-mcp

プロフェッショナルな家具設計のためのMCPサーバー

PyPI License MCP Python GitHub Release

Claude Code Plugin

寸法と家具の種類から、製造にすぐ使える包括的なパッケージを作成します。技術仕様、構造検証、カット最適化、BOM、組み立て手順、3Dビューアー付きのインタラクティブなHTMLレポートを生成し、オプションでFreeCADにもエクスポートできます。

レポート

全体の流れ

"closet 180x240x60 en melamina 18mm, 2 secciones"
                    |
        +-----------------------+
        |   design_furniture    |  -> Spec: paneles, posiciones, hardware, secciones
        +-----------+-----------+
                    |
    +---------------+---------------+
    |               |               |
validate      generate_bom    optimize_cuts
    |               |               |
0 errores     18 paneles       3 tableros
1 warning     34 confirmats    32% desperdicio
              8.4m cantos      veta alineada
                    |
            get_assembly_steps
                    |
            14 pasos ordenados
            con tornilleria por paso
                    |
        update_design_report
                    |
        Reporte HTML interactivo
        http://localhost:8432/closet-dormitorio

インストール

MCP サーバーとして(推奨)
uvx furniture-designer-mcp

プロジェクトの.mcp.jsonに次のように記述します。

{
  "mcpServers": {
    "furniture-designer": {
      "command": "uvx",
      "args": ["furniture-designer-mcp"]
    }
  }
}
ローカル開発
git clone https://github.com/LuisEnVilla/furniture-designer-mcp.git
cd furniture-designer-mcp
uv sync
uv run furniture-designer-mcp
Claude Code(プラグイン)での使用

furniture-designer-pluginは、アイデアから製造用パッケージの作成までユーザーを導く、4段階の会話型アシスタントを追加します。

# Instalar el plugin (incluye el servidor MCP automaticamente)
claude plugin add https://github.com/LuisEnVilla/furniture-designer-plugin

# Iniciar un diseno
> /furniture disena un closet de 120x240x60

プラグインは一連の作業をすべて処理します。種類、寸法、素材、機能について質問し、仕様を生成して検証し、カットを最適化してHTMLレポートを作成します。すべて会話形式で進められます。

プラグインの完全なドキュメントはこちらをご覧ください:furniture-designer-plugin

主な機能

インタラクティブなHTMLレポート

主な成果物は、http://localhost:8432/{design_id}で配信されるHTMLレポートです。以下が含まれます。

  • 設計ページ — 組み立て済み家具の3Dビューアー(Three.js)と、仕様、役割、金具、注記を含む技術データシート。インタラクティブな測定ツールと内部寸法の2D図(IKEA形式)も含まれます
  • 部品ページ — 分解した状態の3D表示、寸法とエッジバンディングを記載した部品表、組み立てガイド
  • カットページ — 役割ごとに色分けした部品、エッジバンディングの表示、使用率バー(緑/黄/赤)を備えた、各ボードのSVGレイアウト
  • 履歴ページ — 変更バッジ付きの反復作業を示す縦型タイムライン
設計ページ 部品ページ — 分解図 履歴ページ — 反復作業のタイムライン
複数設計と永続化

各設計は./designs/{design_id}/に次の内容とともに保存されます。

designs/
  closet-dormitorio/
    report.html       <- servido en http://localhost:8432/closet-dormitorio
    spec.json         <- ultimo spec (lectura rapida para el agente)
    metadata.json     <- {name, type, created, updated, iterations}
  cocina-isla/
    report.html
    spec.json
    metadata.json

複数の設計を同時に進めることができ、今後のセッションで任意の設計を再開できます。

WebSocketによるライブリロード

エージェントが新しい反復を生成するたびに、レポートがブラウザー上で自動的に更新されます。ページを再読み込みする必要はありません。WebSocketが変更を通知し、JSが表示を更新します。

自然言語によるセクションマップ

エンジンは、設計の垂直仕切りに基づいてセクションラベルを自動生成します。

{
  "S1": {
    "label_es": "Seccion izquierda",
    "aliases": ["izq", "left", "primera"],
    "x_start_mm": 18, "x_end_mm": 900,
    "parts": ["shelf_S1_1", "bar_S1"]
  },
  "S2": {
    "label_es": "Seccion derecha",
    "aliases": ["der", "right", "ultima"],
    "x_start_mm": 918, "x_end_mm": 1782,
    "parts": ["drawer_S2_1_front", "drawer_S2_2_front"]
  }
}

これにより、ユーザーが「左側をもっと広くして」と指示すると、エージェントが正しいセクションを参照先として特定できます。

構造フレームとしての台輪

台輪は独立したパネルではなく、家具全体の重量を支える4つの部材からなる長方形のフレームです。

Vista superior del zocalo:

    +------ kickplate_front ------+    <- frente (retranqueado 5cm)
    |                              |
    kickplate_return_l    kickplate_return_r    <- retornos laterales
    |                              |
    +------ kickplate_back -------+    <- fondo

前面は、足がぶつからないように5cm奥へ引っ込めます。家具の側板は、このフレームの上に載せます。

MDFパネルの自動フィルタリング

MDF 3mmのパネル(背板、引き出し底板)は、カット最適化ツールから自動的に除外されます。これらは異なる材料(メラミン化粧板ではなくMDFボード)から切り出すためです。フィルターは、back、drawer_bottomのロール、および主材より厚さが薄いすべてのパネルに適用されます。

ツール(23 tools)

設計
Tool説明
design_furnitureパネル、金具、位置、セクション、構造上の注記を含む完全な仕様を生成します
ナレッジ
Tool説明
get_standards家具の種類ごとの人間工学的基準
get_material_specs材料の特性(厚さ、最大スパン、ねじの保持力)
get_structural_rules重大度と解決策を含む10の構造ルール
get_hardware_catalog数量と配置のルールを含む金具カタログ
get_assembly_specs組み立て仕様:接合部、接着剤、下穴加工、取り付け

すべてbrief=trueを指定すると、簡潔な回答(トークンを60~80%節約)を返します。

検証と製造
Tool説明
validate_structure10の構造ルールに照らして仕様を検証します(エラー+警告)
generate_bom部品表:パネルをグループ化し、金具、縁材をメートル単位で表示します
optimize_cuts木目とカーフを考慮した標準ボード(2440x1220mm)の2D最適化
get_assembly_stepsスペイン語による段階的な組み立て手順
複数設計とレポート
Tool説明
create_design新しい設計プロジェクトを作成します(design_idを返します)
list_designsメタデータとともに、すべてのアクティブな設計を一覧表示します
get_design_context設計の仕様+履歴を取得し、作業を再開します
get_section_mapラベルと自然言語による解決機能を含むセクションマップ
start_design_serverライブリロード対応のWebSocketを備えたHTTPサーバー(ポート8432)を起動します
update_design_reportインタラクティブなHTMLレポートを生成/更新します
FreeCAD — エクスポート(FreeCAD + RPC serverが必要)
Tool説明
build_3d_modelXML-RPC経由で、FreeCADに組み立て済み3Dモデルを構築します
build_exploded_viewFreeCADに分解図を構築します
build_cut_diagramFreeCADに切断図を構築します
build_techdrawTechDraw技術図面(A3直交投影図)を構築します
FreeCAD — インポート(freecad-mcpが必要)
Tool説明
build_import_script既存のFreeCADドキュメントからパネルを抽出するスクリプト
parse_freecad_importインポートスクリプトの出力を仕様に解析します
開発
Tool説明
reload_engineMCP サーバーを再起動せずにエンジンのモジュールを再読み込みします

家具の種類

種類説明主な特徴
kitchen_baseキッチンのベースキャビネット4部材の台輪、横桟、天板なし(カウンター用)
kitchen_wallキッチンの吊り戸棚台輪なし、上板と底板あり
closetクローゼット/ワードローブ台輪、75cmを超える場合は仕切りを自動追加、180cmを超える場合は固定の警告
bookshelf本棚/シェルフ複数の棚板、オプションの扉
deskデスク膝を入れるスペース(60cm)、前面隠しパネル
vanity洗面化粧台/バスルームキャビネットキッチンのベースキャビネットと同様の構造

材料

材料厚さ支持なしの最大スパン最適な用途
melamine_16 (default)16mm75cm汎用、最も低価格
melamine_1818mm85cm高級キッチンやクローゼット
mdf_1515mm80cm塗装家具
mdf_1818mm90cmCNCデザインのドア
plywood_1818mm100cm長いスパン、高い強度
solid_pine_2020mm120cm無垢材家具

サーバーのアーキテクチャ

furniture-designer-mcp/
  src/furniture_designer_mcp/
    server.py                  <- Punto de entrada MCP (23 tools)
    engine/
      designer.py              <- Motor principal: spec + section_labels
      structural_validator.py  <- 10 reglas estructurales
      cut_optimizer.py         <- Bin packing 2D con veta y kerf
      bom_generator.py         <- Bill of Materials
      spec_validator.py        <- Validacion de formato de spec
      spec_builder.py          <- Construccion de spec desde parametros
      section_mapper.py        <- Mapa de secciones + resolucion natural
      design_store.py          <- Multi-diseno + persistencia ./designs/
      http_server.py           <- HTTP + WebSocket (puerto 8432)
      report_generator.py      <- Template HTML interactivo (~1900 lineas)
      freecad_scripts.py       <- Generacion de scripts FreeCAD
      freecad_client.py        <- XML-RPC client para FreeCAD
    knowledge/
      standards.py             <- Estandares ergonomicos
      materials.py             <- Propiedades de materiales
      structural_rules.py      <- Reglas de ingenieria
      hardware_catalog.py      <- Catalogo de herrajes
      assembly_specs.py        <- Especificaciones de ensamble

技術上の考慮事項

単位
  • 入力:寸法は cm(幅、高さ、奥行き)
  • 出力:spec は mm(width_mm、height_mm、thickness_mm)
  • カット:optimizer は width/height(_mm 接尾辞なし)を使用します — spec とはスキーマが異なります
材料の木目

オプティマイザーは、テクスチャ付きメラミンの木目方向を統一するために grain_direction="length" をサポートしています。これにより、部品の回転が制限されます。木目の制約があると部品が収まらない場合は、警告とともに自動的に none に緩和されます。

のこぎりの切りしろ(kerf)

デフォルトは3mmです。オプティマイザーでカットするたびに差し引かれます。使用する刃に応じて調整できます。

背板

常にMDF 3mmです。背板(ロール back)がない家具は、バリデーターでエラーになります。メラミンのカットオプティマイザーからは自動的に除外されます。

自動仕切り

セクションの幅が材料の最大スパンを超える場合、垂直の仕切りが自動的に追加されます。

高さのある家具(>180cm)

転倒の危険があるため、バリデーターは壁への固定に関する警告を出します。

完全な引き出し

design_furniture は、前板+側板2枚+背板+MDF 3mmの底板+伸縮式スライドレールからなる完全な箱を生成します。

compact モード

主要なツールはデフォルトで compact=true を返します。読みやすい要約と縮小されたJSONが含まれます。完全なJSONが必要な場合にのみ compact=false を使用してください。

ホットリロード

reload_engine は、MCP サーバーを再起動せずにエンジンの全モジュールを再読み込みします。開発中に便利です。

要件

  • Python >= 3.12
  • パッケージ管理用の uv
  • 3Dエクスポート用のFreeCAD 0.21+とMCPアドオン(3Dエクスポートの場合のみ)

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。