Skip to main content
Glama
solidworks-mcp

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.exe

SOLIDWORKS 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 sync

Bei einem MCP-Client registrieren

Für Claude Code:

claude mcp add solidworks -- uv --directory E:\solid run solidworks-mcp

Fü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.GetTitle die Titelzeichenfolge zurück; doc.GetTitle() löst TypeError: 'str' object is not callable aus. 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 None mit „Type mismatch" ab und benötigen VARIANT(VT_DISPATCH, None); Fehler- und Warnungs-Out-Parameter benötigen VARIANT(VT_BYREF | VT_I4, 0), wobei das Ergebnis aus .value zurü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.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables 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
    -
  • A
    license
    B
    quality
    B
    maintenance
    Enables 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.
    40
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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