Skip to main content
Glama
Christancho-co

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: solidworks-mcp

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 Dokumentesolidworks_status, new_part, open_part, save_part, close_part

Skizzierenlist_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

Featuresextrude, cut_extrude, revolve, fillet, select_entity, clear_selection

Parametrische Steuerunglist_features, list_dimensions, set_dimension, add_equation, list_equations, rebuild

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

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    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
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI (e.g., Claude) to control SolidWorks via natural language, automating part creation, sketching, and feature operations through the Model Context Protocol.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for controlling a live SOLIDWORKS session through the Windows COM API, enabling native CAD operations like sketches, features, bodies, views, and exports, plus transactional plans and vectorization.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Agent-first CAD: editable .kcad.ts source, deterministic review, OpenCASCADE kernel.

  • Convert Revit files to XKT, IFC, or DWG and query BIM data via natural language.

  • Revit model query + APS Design Automation runner.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Christancho-co/solidworks-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server