furniture-designer-mcp
Servidor MCP para diseño profesional de muebles
    ](https://github.com/LuisEnVilla/furniture-designer-mcp/releases)

Convierte dimensiones y tipo de mueble en un paquete completo listo para fabricacion: especificacion tecnica, validacion estructural, optimizacion de cortes, BOM, instrucciones de ensamble, reporte HTML interactivo con viewer 3D, y exportacion opcional a FreeCAD.
Flujo general
"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-dormitorioInstalacion
Como servidor MCP (recomendado)
uvx furniture-designer-mcpEn .mcp.json de tu proyecto:
{
"mcpServers": {
"furniture-designer": {
"command": "uvx",
"args": ["furniture-designer-mcp"]
}
}
}Desarrollo local
git clone https://github.com/LuisEnVilla/furniture-designer-mcp.git
cd furniture-designer-mcp
uv sync
uv run furniture-designer-mcpUso con Claude Code (Plugin)
El furniture-designer-plugin agrega un asistente conversacional de 4 fases que guia al usuario desde la idea hasta el paquete de fabricacion:
# 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 120x240x60El plugin maneja el flujo completo: pregunta tipo, dimensiones, material y funcionalidad, luego genera el spec, valida, optimiza cortes y produce el reporte HTML — todo conversacionalmente.
Ver documentacion completa del plugin: furniture-designer-plugin
Funcionalidades principales
Reporte HTML interactivo
El entregable principal es un reporte HTML servido en http://localhost:8432/{design_id} con:
- Pagina Diseno — Viewer 3D (Three.js) del mueble ensamblado + ficha tecnica con specs, roles, hardware y notas. Incluye herramienta de medicion interactiva y diagrama 2D de dimensiones internas (tipo IKEA)
- Pagina Partes — Vista 3D explosionada + tabla de partes con dimensiones y canteado + guia de ensamble
- Pagina Cortes — Layout SVG por tablero con piezas coloreadas por rol, canteado visual, barra de uso (verde/amarillo/rojo)
- Pagina Historial — Timeline vertical de iteraciones con badges de cambios
Multi-diseno con persistencia
Cada diseño se almacena en ./designs/{design_id}/ con:
designs/
closet-dormitorio/
report.html Todas aceptan `brief=true` para respuestas compactas (ahorro 60-80% tokens).
### Validacion y fabricacion
| Tool | Descripcion |
|---|---|
| `validate_structure` | Valida spec contra 10 reglas estructurales (errores + warnings) |
| `generate_bom` | Bill of Materials: paneles agrupados, herrajes, cantos en metros |
| `optimize_cuts` | Optimización 2D en tableros estándar (2440x1220mm) con veta y kerf |
| `get_assembly_steps` | Instrucciones de ensamble paso a paso en español |
### Multi-diseno y reporte
| Tool | Descripcion |
|---|---|
| `create_design` | Crea proyecto de diseño nuevo (retorna design_id) |
| `list_designs` | Lista todos los diseños activos con metadata |
| `get_design_context` | Recupera spec + historial de un diseño para retomar |
| `get_section_map` | Mapa de secciones con etiquetas y resolución de lenguaje natural |
| `start_design_server` | Inicia servidor HTTP (puerto 8432) con WebSocket live reload |
| `update_design_report` | Genera/actualiza reporte HTML interactivo |
### FreeCAD — exportar (requiere FreeCAD + RPC server)
| Tool | Descripcion |
|---|---|
| `build_3d_model` | Construye modelo 3D ensamblado en FreeCAD via XML-RPC |
| `build_exploded_view` | Construye vista explosionada en FreeCAD |
| `build_cut_diagram` | Construye diagrama de corte en FreeCAD |
| `build_techdraw` | Construye plano técnico TechDraw (vistas ortogonales A3) |
### FreeCAD — importar (requiere freecad-mcp)
| Tool | Descripcion |
|---|---|
| `build_import_script` | Script para extraer paneles de un documento FreeCAD existente |
| `parse_freecad_import` | Parsear salida del script de importación a spec |
### Desarrollo
| Tool | Descripcion |
|---|---|
| `reload_engine` | Recarga módulos del engine sin reiniciar el servidor MCP |
## Tipos de mueble
| Tipo | Descripcion | Caracteristicas clave |
|---|---|---|
| `kitchen_base` | Gabinete base de cocina | Zócalo 4 piezas, travesaños, sin tapa (para cubierta) |
| `kitchen_wall` | Gabinete aéreo de cocina | Sin zócalo, tapa superior e inferior |
| `closet` | Closet / armario | Zócalo, divisiones auto si >75cm, alerta anclaje si >180cm |
| `bookshelf` | Librero / estantería | Repisas múltiples, puertas opcionales |
| `desk` | Escritorio | Espacio para rodillas (60cm), panel de recato |
| `vanity` | Vanitorio / mueble de baño | Estructura tipo base de cocina |
## Materiales
| Material | Espesor | Tramo max. sin soporte | Mejor para |
|---|---|---|---|
| `melamine_16` (default) | 16mm | 75cm | Uso general, más económico |
| `melamine_18` | 18mm | 85cm | Cocinas y closets de gama alta |
| `mdf_15` | 15mm | 80cm | Muebles pintados |
| `mdf_18` | 18mm | 90cm | Puertas con diseño CNC |
| `plywood_18` | 18mm | 100cm | Tramos largos, alta resistencia |
| `solid_pine_20` | 20mm | 120cm | Muebles de madera maciza |
## Arquitectura del servidor
furniture-designer-mcp/ src/furniture_designer_mcp/ server.py 180cm)
El validador genera warning de anclaje a pared por riesgo de volcamiento.
Cajones completos
design_furniture genera caja completa: frente + 2 laterales + trasera + fondo MDF 3mm + correderas telescópicas.
Modo compact
Las tools principales retornan compact=true por defecto: resumen legible + JSON reducido. Usar compact=false solo si se necesita el JSON completo.
Hot-reload
reload_engine recarga todos los módulos del engine sin reiniciar el servidor MCP. Útil durante desarrollo.
Requisitos
- Python >= 3.12
- uv para gestión de paquetes
- FreeCAD 0.21+ con addon MCP (solo para exportación 3D)
Licencia
MIT
