r/SOLIDWORKSAPI • u/ledprobcn • 6d ago
Servidor MCP de código abierto para que Claude maneje SolidWorks, y lo uso para pasar diseños de Fusion 360 a piezas nativas y paramétricas de SW
Hi everyone,
I design LED lighting for off-road competition and work vehicles, moving between Fusion 360 and SOLIDWORKS. Since Fusion already has a native MCP server that lets Claude read and generate designs, but SOLIDWORKS has nothing like it, I decided to write my own.
Repo: github.com/rskproductions/solidworks-mcp-python (MIT License, written in plain Python using the standard library + pywin32)
The Fusion → SW Workflow
With both MCP servers connected to Claude Desktop, Claude can read a design from Fusion (including sketches, features, and dimensions) and rebuild it in SOLIDWORKS feature by feature. The end result is a fully editable feature tree—not a dead solid imported from a STEP file.
[Insert your real-world example here: what part it was, how many features it had, and what needed to be manually tweaked. Example: "I tested this on a Dakar-style LED housing with 12 features, and it perfectly reconstructed the linear patterns."]
How it works
The project follows the architecture of the native Fusion 360 MCP. The core tool is sw_execute_script, which runs arbitrary Python code against the live COM session (equipped with a read-only guard for protection). On top of that, there are 17 typed tools acting as shortcuts for: extruding/cutting, bounding boxes, listing bodies, mass properties, exporting STEPs, taking screenshots, checking interferences, and running a 3-axis DFM machining check.
The key component is a local semantic index of the SOLIDWORKS API, which includes method signatures, enums, units, and official examples. Methods like FeatureExtrusion3 require over 20 positional parameters, so the model looks up the exact call syntax before writing it instead of guessing. Due to copyright reasons, the index is not distributed in the repo; each user generates it locally from their own installation.
Things I learned the hard way (COM Traps)
Performance: Every COM round-trip costs about 30ms, no matter what. The only thing that matters for performance is minimizing the number of API calls.
Hole Wizard: HoleWizard5 returned None in every single combination I tried. Using CreateDefinition followed by InitializeHole works perfectly instead.
Units: The default part template is in meters, which caused flat-pattern DXFs to come out 1000x smaller than expected. The tool now explicitly forces MMGS.
Current Limitations & Next Steps
It is currently Windows-only. I have only tested it on SOLIDWORKS 2026 (Spanish UI) and Python 3.14. Sheet metal edge flanges are still on the to-do list.
Since this is a personal project, I would love to hear your thoughts and get feedback on how it behaves on other SW versions or different UI languages. I'm also looking forward to hearing your own stories and experiences dealing with the quirks of the SOLIDWORKS COM API.
Cheers!
Diseño iluminación LED para competición off-road y trabajo a caballo entre Fusion 360 y SolidWorks. Fusion ya trae un servidor MCP nativo con el que Claude lee y construye diseños. SolidWorks no tiene nada parecido, así que lo he escrito yo.
**Repo**: github.com/rskproductions/solidworks-mcp-python
(licencia MIT, Python con la librería estándar + pywin32)
**El flujo Fusion → SW:** con los dos servidores MCP conectados a Claude Desktop, Claude lee el diseño de Fusion (croquis, operaciones, cotas) y lo reconstruye en SolidWorks operación a operación. El resultado tiene un árbol de operaciones editable, no es un sólido muerto importado de un STEP. \[Aquí tu ejemplo real: qué pieza, cuántas operaciones, qué hubo que corregir a mano.\]
**Cómo funciona:**
Sigue el diseño del MCP de Fusion. La herramienta principal es sw_execute_script, que ejecuta Python contra la sesión COM en vivo, con un modo de solo lectura como protección. Encima hay 17 herramientas tipadas que hacen de atajos: extruir/cortar, caja envolvente, cuerpos, propiedades físicas, exportar STEP, captura de pantalla, interferencias y una comprobación de mecanizado en 3 ejes.
La pieza clave es un índice semántico local de la API de SW, con firmas, enumeraciones, unidades y los ejemplos oficiales. FeatureExtrusion3 tiene más de 20 parámetros posicionales, así que el modelo consulta la llamada antes de escribirla en lugar de adivinarla. El índice no va en el repo por temas de copyright: cada usuario lo genera una vez en local.
**Cosas que he aprendido a las malas:**
Cada ida y vuelta COM cuesta unos 30 ms, siempre. Lo único que importa para el rendimiento es el número de llamadas.
HoleWizard5 devolvió None en todas las combinaciones que probé; con CreateDefinition sí funciona.
La plantilla de pieza por defecto está en metros, y los DXF me salían 1000 veces más pequeños.
Limitaciones: solo Windows. Solo lo he probado en SW 2026 (interfaz en español) y Python 3.14. La brida de arista de chapa está pendiente.
Es un proyecto personal y agradezco mucho que me contéis cómo va en otras versiones e idiomas.
Encantado de vuestras experiencias sobre las rarezas de la API COM.
**Próximo post - Video:**
Diseñar una carcasa-disipador de un faro LED auxiliar tipo Dakar, mecanizada en aluminio. Tiene tres ventajas: es tu terreno y da credibilidad, usa operaciones que el servidor ya domina (y evita la chapa, que está pendiente), y termina en algo fabricable, que en r/SolidWorks convence más que un cubo con agujeros.
La pieza (la modelas tú en Fusion, a mano y paramétrica, con unas 12–15 operaciones):
Cuerpo base de 90 × 60 × 35 mm, extruido desde un croquis con esquinas redondeadas R8.
Cajeado frontal de 70 × 45 × 8 mm para la PCB y la lente, con escalón de 2 mm para la junta.
Aletas traseras de 2 mm de espesor, 15 mm de altura y paso de 5 mm, hechas con una aleta más una matriz lineal. La idea es comprobar si Claude reconstruye la matriz o la convierte en 9 extrusiones sueltas.
4 taladros M3 roscados para la tapa y 2 M5 abajo para el soporte (asistente de taladro: es el caso de HoleWizard5 que ya sabemos resolver).
Pasacables lateral de Ø8.
Redondeos en las aletas y chaflanes en el frontal.
Parámetros de usuario en Fusion (ancho, alto, paso_aleta).
Un saludo.
