solidworks-mcp
solidworks-mcp
Ein MCP-Server, der eine lokale SOLIDWORKS-Installation steuert, um parametrische Volumenmodelle zu erstellen und zu modifizieren.
Verifiziert gegen SOLIDWORKS 2026 SP0 (Revision 34.0.0) unter Windows 11.
So funktioniert es
MCP client ──stdio──► solidworks-mcp ──COM──► SLDWORKS.exeSOLIDWORKS stellt eine klassische COM-Automatisierungs-API bereit. Der Server verbindet sich mit einer laufenden Instanz (oder startet eine), und jedes Tool bildet auf diese API ab.
Alle Längen sind in Millimetern und alle Winkel in Grad angegeben. Die SOLIDWORKS-API ist intern metrisch-SI; die Umrechnung erfolgt an der Tool-Grenze.
Related MCP server: SolidworksMCP
Voraussetzungen
SOLIDWORKS installiert und lizenziert, auf demselben Rechner.
Python 3.12+, 64-Bit – es muss mit der Architektur von SOLIDWORKS übereinstimmen, sonst bindet COM nicht.
uv für die Abhängigkeitsverwaltung.
Installation
uv syncBei einem MCP-Client registrieren
Für Claude Code:
claude mcp add solidworks -- uv --directory E:\solid run solidworks-mcpFür einen Client, der eine JSON-Konfiguration liest:
{
"mcpServers": {
"solidworks": {
"command": "uv",
"args": ["--directory", "E:\\solid", "run", "solidworks-mcp"]
}
}
}Tools
Sitzung und Dokumente – solidworks_status, new_part, open_part,
save_part, close_part
Skizzieren – list_planes, start_sketch, start_sketch_on_face,
sketch_line, sketch_centerline, sketch_circle, sketch_rectangle,
sketch_arc, sketch_polygon, sketch_ellipse, add_sketch_dimension,
add_sketch_relation, finish_sketch
Features – extrude, cut_extrude, revolve, fillet, select_entity,
clear_selection
Parametrische Steuerung – list_features, list_dimensions, set_dimension,
add_equation, list_equations, rebuild
Inspektion – get_measurements, capture_view
Ein durchgearbeitetes Beispiel
Erstellen einer 80 × 50 × 10 mm großen Platte mit einem Loch und anschließendes parametrisches Steuern:
new_part
start_sketch(plane="front")
sketch_rectangle(0, 0, 80, 50)
add_sketch_dimension(entities=[[40, 0]], value=80) -> "D1@Croquis1"
add_sketch_dimension(entities=[[0, 25]], value=50) -> "D2@Croquis1"
finish_sketch
extrude(depth=10)
start_sketch(plane="front")
sketch_circle(40, 25, 8)
finish_sketch
cut_extrude(depth=10, end_condition="through_all", reverse=True)
fillet(radius=5, edges=[[0,0,5], [80,0,5], [80,50,5], [0,50,5]])
set_dimension("D1@Croquis1", 120) -> the solid rebuilds to 120 mm wide
get_measurements -> bounding box 120 x 50 x 10 mm
capture_view("isometric")Wissenswertes
Über die API erstellte Skizzen haben keine Bemaßungen. SOLIDWORKS fügt
treibende Bemaßungen nur hinzu, wenn man sie anfordert, sodass eine mit sketch_*
gezeichnete Skizze nichts zu steuern hat. Rufen Sie add_sketch_dimension auf, während die
Skizze noch geöffnet ist, wenn Sie die Geometrie später ändern möchten.
Die Schnittrichtung folgt der Skizzennormalen. Eine Skizze auf der vorderen Ebene, die
einen von ihr weg extrudierten Körper schneidet, benötigt reverse=True, andernfalls verläuft
der Schnitt in den leeren Raum und schlägt fehl.
Referenzebenennamen sind lokalisiert. Eine spanische Installation benennt Features
Croquis1 und Saliente-Extruir1. Die Tools akzeptieren die logischen Aliase
front/top/right und lösen sie über ihre Position im Feature-Manager auf, sodass sie
unabhängig von der Benutzeroberflächensprache funktionieren. list_planes meldet die tatsächlichen Namen.
SOLIDWORKS muss ausgeführt werden. Es gibt keinen unterstützten Headless-Modus. Der Server startet die Anwendung, wenn sie nicht bereits geöffnet ist.
Modale Dialogfelder blockieren COM. add_sketch_dimension deaktiviert vorübergehend die
Einstellung „Bemaßungswert eingeben", die andernfalls ein modales Fenster öffnen und den
Aufruf aufhängen würde, und stellt sie danach wieder her.
Implementierungshinweise
Zwei pywin32-Verhaltensweisen prägen den Code und sind leicht zu übersehen:
COM-Member ohne Argumente werden beim Attributzugriff automatisch aufgerufen. Bei später Bindung gibt
doc.GetTitledie Titelzeichenfolge zurück;doc.GetTitle()löstTypeError: 'str' object is not callableaus. Member mit einem oder mehreren Argumenten werden normal aufgerufen.Typisierte Nullwerte und In/Out-Parameter benötigen explizite VARIANTs. Optionale Interface-Argumente lehnen ein bloßes
Nonemit „Type mismatch" ab und benötigenVARIANT(VT_DISPATCH, None); Fehler- und Warnungs-Out-Parameter benötigenVARIANT(VT_BYREF | VT_I4, 0), wobei das Ergebnis aus.valuezurückgelesen wird.
COM-Objekte leben in einem Single-Threaded Apartment, daher leitet com_bridge.py jeden
Aufruf durch einen dedizierten Thread. Die Enumerationswerte in constants.py wurden aus
swconst.tlb gelesen und nicht aus der Dokumentation übernommen, da einige von den
allgemein zitierten Werten abweichen – swEndCondThroughAllBoth ist 9, nicht 8.
This server cannot be deployed
Maintenance
Related MCP Connectors
Build, check and report on MIDAS CIVIL NX bridge models through the MIDAS IT Europe plugins.
Headless CAD engine & MCP server for 2D/3D drafting, solids, DXF/SVG export, and automation.
Parametric 3D CAD for AI agents: build print-ready parts, check them, export STL, 3MF or STEP.
Manage SysML2 projects; check, evaluate, verify, query, document and diagram models.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to automate SolidWorks (open/save parts, modify dimensions, export STEP) via COM, and optionally generate geometry using build123d code-CAD with PNG previews.MIT
- FlicenseNot gradedqualityBmaintenanceEnables control of a live SOLIDWORKS session through the Windows COM API, providing native sketch, feature, body, reference-geometry, view, probe, and export operations, along with transactional CAD plans, parametric sketches, multibody tools, and deterministic raster-to-sketch vectorization pipelines.1-
- AlicenseBqualityBmaintenanceEnables MCP clients like Claude to automate SOLIDWORKS 2025 and SOLIDWORKS CAM via COM, covering parts, assemblies, drawings, and CAM toolpaths. It generates real geometry, mass properties, and posted G-code files directly on disk.401MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to build, measure, verify, and correct parametric SolidWorks parts and assemblies locally via the COM API, supporting operations like sketching, extruding, modeling, dimensioning, material assignment, export, and assembly mating.MIT