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. 05带 3D 查看器的交互式 HTML 报告
  6. 06可选导出 FreeCAD 模型和图纸

适用场景

  1. 01准备柜体设计的制造资料
  2. 02校验设计并优化板材切割
  3. 03恢复并比较已保存的设计迭代

MCP 相关

向 MCP 客户端提供 23 个工具,用于家具设计、校验、制造规划、项目管理和报告生成。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

该插件负责完整的工作流:询问家具类型、尺寸、材料和功能,然后生成 spec、执行验证、优化切割并生成 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 实时重新加载

每当 Agent 生成新迭代时,报告都会在浏览器中自动更新。无需重新加载页面——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"]
  }
}

这样用户就可以说“把左边加宽”,由 Agent 找到对应的分区。

踢脚板作为结构框架

踢脚板并非独立面板,而是由 4 个部件组成的矩形框架,用于承托家具的全部重量:

Vista superior del zocalo:

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

前面板向内缩进 5 cm,避免脚部碰撞。家具侧板支撑在这个框架上。

自动筛除 MDF 面板

3 mm MDF 面板(背板、抽屉底板)会自动从切割优化器中筛除——它们使用不同的板材库存(MDF 板,而非三聚氰胺板)进行切割。此筛选会应用于 back、drawer_bottom 角色,以及任何厚度小于主材的面板。

工具(23 个)

设计
工具描述
design_furniture生成完整规格,包含面板、五金件、位置、分区和结构说明
知识
工具描述
get_standards按家具类型提供的人体工学标准
get_material_specs材料属性(厚度、最大跨距、螺钉握持力)
get_structural_rules10 条结构规则,包含严重程度和解决方案
get_hardware_catalog五金件目录,包含数量和安装位置规则
get_assembly_specs组装规格:连接、粘合剂、预钻孔、安装

所有工具均接受 brief=true,以返回精简内容(节省 60-80% 的 token)。

验证与制造
工具描述
validate_structure根据 10 条结构规则验证规格(错误 + 警告)
generate_bom物料清单:分组面板、五金件、以米为单位的封边条
optimize_cuts在标准板材(2440x1220mm)上进行 2D 优化,并考虑纹理方向和锯缝
get_assembly_steps以西班牙语提供逐步组装说明
多设计与报告
工具描述
create_design创建新的设计项目(返回 design_id)
list_designs列出所有活动设计及其元数据
get_design_context恢复某个设计的规格和历史记录,以便继续设计
get_section_map分区映射,包含标签和自然语言解析
start_design_server启动 HTTP 服务(端口 8432),并启用 WebSocket 实时重新加载
update_design_report生成/更新交互式 HTML 报告
FreeCAD — 导出(需要 FreeCAD + RPC server)
工具描述
build_3d_model通过 XML-RPC 在 FreeCAD 中构建装配后的 3D 模型
build_exploded_view在 FreeCAD 中构建爆炸视图
build_cut_diagram在 FreeCAD 中构建切割图
build_techdraw构建 TechDraw 技术图纸(A3 正交视图)
FreeCAD — 导入(需要 freecad-mcp)
工具描述
build_import_script用于从现有 FreeCAD 文档中提取面板的脚本
parse_freecad_import将导入脚本的输出解析为规格
开发
工具描述
reload_engine重新加载引擎模块,无需重启 MCP 服务

家具类型

类型描述主要特征
kitchen_base厨房地柜4 件式踢脚板、横撑、无顶板(用于安装台面)
kitchen_wall厨房吊柜无踢脚板,带顶板和底板
closet衣柜/橱柜带踢脚板,宽度 >75 cm 时自动添加隔板,高度 >180 cm 时提示锚固
bookshelf书柜/书架多层搁板,可选装柜门
desk书桌膝部空间(60 cm)、前挡板
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)
  • 裁切:优化器使用 width/height(无 _mm 后缀)——与 spec 的 schema 不同
材料纹理方向

优化器支持 grain_direction="length",以保持带纹理三聚氰胺板的纹理方向一致。这会限制部件的旋转。如果部件在纹理方向限制下无法放入,则会自动放宽为 none,并发出提示。

锯缝(kerf)

默认 3mm。优化器会在每次裁切时扣除该值。可根据所用锯片调整。

背板

始终使用 3mm MDF。如果家具没有背板(角色 back),验证器会报错。背板会自动从三聚氰胺板裁切优化器中排除。

自动隔板

如果某个区段的宽度超过材料的最大跨度,则会自动添加垂直隔板。

高柜(>180cm)

验证器会因倾倒风险发出墙面锚固警告。

完整抽屉

design_furniture 会生成完整抽屉箱体:前板 + 2 个侧板 + 后板 + 3mm MDF 底板 + 伸缩滑轨。

compact 模式

主要工具默认返回 compact=true:易读摘要 + 精简 JSON。仅在需要完整 JSON 时使用 compact=false。

热重载

reload_engine 会重新加载 engine 的所有模块,无需重启 MCP 服务。适用于开发过程。

要求

  • Python >= 3.12
  • 用于包管理的 uv
  • FreeCAD 0.21+,带 MCP 插件(仅用于 3D 导出)

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。