SolidWorks MCP
Drives SOLIDWORKS (Dassault Systèmes) directly: builds parts from JSON recipes, assembles multi-component assemblies with mates, patterns and generated fasteners, verifies mass properties, center of mass, interferences and collisions, produces drawings with BOM, balloons and section views, handles sheet metal, and imports/exports STEP, IGES, Parasolid, ACIS, STL, PDF, DXF and DWG files, with backups and automatic rollback to protect the user's own documents.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SolidWorks MCPbuild a part from this JSON recipe and verify its mass"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SolidWorks MCP

Let an AI agent model, assemble, verify and draw in SolidWorks. A Model Context Protocol server for SolidWorks on Windows with 106 tools: parts from a short recipe, whole assemblies in one call, exact mass and center of mass, drawings with BOM, balloons and section views, and reading of PDF/DXF drawings - all with backups and verified rollback so your own files are never broken.
Works with Claude Desktop, Claude Code, OpenAI Codex (CLI / IDE) and any MCP client that can launch a local (stdio) server.
Made for SOLIDWORKS Student / Education editions (e.g. 3DEXPERIENCE SOLIDWORKS for Students). It covers what those editions do well and what engineering courses grade: parts, assemblies, mates, mass properties, drawings, sheet metal and file exchange. It does not drive SOLIDWORKS Simulation, Flow Simulation, Motion studies, PDM, Routing or other Professional/Premium add-ins - if you have them, contributions are very welcome. Drawings made with an educational license keep its watermark.
Español · Install · All tools and options · Architecture · Changelog

A pegboard with 32 components (4 parts generated from their recipes, 6 bolts, 24 pivots from a circular pattern, 23 mates) built, verified and drawn by one sw_assembly_build call: mass 3864.0278 g and center of mass (0, 0, 13.7356) mm ready in about 2-3 minutes from scratch on a laptop, including starting SolidWorks; about 75 s when the parts already exist.
What it can do
Area | Highlights |
Parts |
|
Assemblies |
|
Verification |
|
Drawings |
|
Reading drawings |
|
Sheet metal | Base flange, edge flange, sketched bend, hem, flatten, flat-pattern DXF/DWG and drawing view. |
Exchange | Import STEP / IGES / Parasolid / ACIS ( |
Safety | Only files it created or user files opened with an automatic backup are edited; every edit is health-checked and rolled back automatically if it breaks something; saving is blocked after an unverified restore; with |

Above: sw_drawing_read action: dimensions on a DXF - each dimension drawn between the two points it measures, views boxed and numbered.
Section view through a hole | Hidden pin gets a section + balloon automatically | Sheet metal: sketched bend, hem and flat pattern |
|
|
|
Related MCP server: solidworks-mcp
Quick start
Requirements: Windows 10/11, SolidWorks (tested on SolidWorks 2026 in Spanish; English plane and view names are handled too), Node.js 18+, Python 3.11+ with pypdf and Pillow (only for reading drawings).
git clone https://github.com/chrisncm17/solidworks-mcp.git
cd solidworks-mcp
npm install
npm run build # compiles the C# worker against your SolidWorks API
npm test # 112 offline tests, no SolidWorks neededThen register the server in your client - full details in docs/INSTALL.md:
{ "mcpServers": { "solidworks": { "command": "node", "args": ["C:\\path\\to\\solidworks-mcp\\server\\server.mjs"] } } }Ask your agent: "Start SolidWorks with sw_exam_ready, then build a 100 x 60 x 10 mm AISI 1020 plate with four Ø8 holes 10 mm from the corners and tell me its mass."
All tools
106 tools. Every option of every tool: docs/TOOLS.md.
Tool | What it does |
| Save current managed document as a NEW native backup with matching extension, without changing active filename. |
| Close a document opened in this MCP session. |
| List the configurations of a managed part/assembly (action list) or activate one (action activate, name) and rebuild; |
| Copy a SAVED assembly, drawing or part plus every file it references into generated\copies<folder_name>, adding prefix (default copia_) to every file name, and re-link t… |
| Create a native assembly from saved managed parts. |
| Create and save an empty native SLDPRT using an existing absolute PRTDOT template. |
| Units saved IN the part/assembly for Calcular > Propiedades fisicas with "Utilizar configuraciones de documento": action get, or set mass_length (default in), mass (defau… |
| Discover installed part templates, material databases, thread profile types and exact sizes, and managed filenames. |
| Exam day check in one call, before anything else: MCP version and tool count (if this tool is missing from the chat, the app has an old MCP loaded: restart Claude Desktop… |
| Import a STEP, IGES, Parasolid (x_t/x_b) or ACIS (sat) file as a NEW managed part (name .SLDPRT) or assembly (name .SLDASM, its parts are saved next to it). |
| One SolidWorks for the user, one for the MCP. |
| Copy a saved SLDPRT into the managed folder and open the copy for editing. |
| Open a USER part, assembly or drawing in place (outside generated) after an AUTOMATIC BACKUP of the file and every referenced file into generated/backups/_<nam… |
| List backups made by sw_open_project (action=list) or restore one (action=restore, backup_name): copies every backed-up file back to its original path. |
| Reopen a named SLDPRT from the managed generated folder of this server. |
| Resume an existing managed native part, assembly or drawing by filename. |
| allow_errors: save anyway, reporting the problems; |
| Save ONE solid body of a multibody managed part as a NEW managed part (Guardar cuerpo): pick it with point_mm (a point ON a face of that body, part coordinates) or body_i… |
| Why SolidWorks feels slow: RAM used by SolidWorks and free system RAM, open documents (visible, hidden, unsaved, owned by this MCP session, in use) and hints. |
| Check connection to an already-open SolidWorks in this Windows user session. |
Tool | What it does |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Create and save a new native parametric cylinder. |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Delete a named feature and its absorbed sketch from a managed part (for example a failed attempt), so the FeatureManager tree stays clean. |
| Delete one inspected sketch relation on a managed copy. |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Read equations and global variables from the ACTIVE document, including unsaved parts and active sketches. |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Change an EXISTING extrusion (boss or cut) without redrawing it: end_condition of direction 1 (blind, mid_plane, through_all), depth_mm and/or reverse. |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Mover/Copiar solido: fixes a part modeled on the wrong plane (origin or axes not as in the drawing) WITHOUT redrawing it. |
| Managed parts only. list is read-only; |
| Build an EDITABLE part from a part IR (part-ir/1): named params (numbers) and expressions (+ - * / ^ ( ) pi sqrt sin cos tan) in features extrude|cut|revolve (sketch on f… |
| Managed parts only. Temporarily perturb driving sketch/feature dimensions by pct (default 0.05, fraction) or absolute delta_mm for lengths; |
| Add an explicit driving radius dimension to a current arc segment in a managed sketch. |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Read sketch constraints and status: 2 underdefined, 3 fully defined, 4 overdefined, 5 no solution, 6 invalid. |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Uniformly scale a managed copy. |
| Set a named dimension on a managed copy and rebuild. |
| Assign a SolidWorks library material, written as in the drawing in Spanish or English (Hierro dúctil / Ductile Iron, Caucho / Rubber, AISI 304, Oro puro / Pure Gold, AISI… |
| Chapa metálica on a managed part. |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Read sketch segments, their current indexes, coordinates in meters and relation types. |
| Move an existing sketch onto another planar support (Editar plano de croquis) without redrawing it: face_of_sketch (the face/plane another sketch sits on), plane (referen… |
| Suppress or unsuppress a named feature in the active configuration of a managed part and rebuild. |
| Keeps the SolidWorks default tree name (features are never renamed); |
| Add a relation between two current sketch segment indexes; |
| Keeps the SolidWorks default tree name (features are never renamed); |
Tool | What it does |
| Add a mate (relación): coincident, concentric, distance (distance_mm), parallel, perpendicular, angle (angle_deg), symmetric (3 entities: 2 + plane), width (4 entities), … |
| Low-level batch used by sw_assembly_build: insert components [{id,path,fixed,position_mm|transform,configuration}] and add mates [{name,type,entities (component = plan id… |
| Batch assembly compiler. |
| READ-ONLY: compare two SAVED assemblies (path = yours, reference_path = e.g. |
| Read-only assembly diagnosis: missing references, mate errors, duplicate candidates and remaining component movements. |
| No SolidWorks: from an assembly drawing (PDF, via analyze) and the folder of parts, a plan skeleton for sw_assembly_build: components with file and count from the parts t… |
| Drawing of an assembly or of a PART in ONE call (a part gets no BOM or balloons but its model dimensions, center marks and hole callouts on the three views; |
| Read-only export of an open managed assembly as assembly-ir/1, also written to generated/assembly_ir/.json. |
| Create and save a NEW empty assembly at an absolute .SLDASM path (folder must exist; |
| Repair an assembly WITHOUT losing its intended pose. |
| Collision detection (detección de colisiones) on a managed assembly: drive an existing DISTANCE or ANGLE mate (create it first with sw_add_mate on the free degree of free… |
| Pattern TOP-LEVEL assembly components (patrón de componentes). |
| Make a TOP-LEVEL, resolved SUBASSEMBLY component flexible (its own mates solve in the top assembly, so its parts can move — e.g. |
| kind circle_center puts the origin at the centre of the circular edge (hole) through local_point_mm; |
| Delete assembly mates by exact name (from sw_mates list) and verify they are gone. |
| Edit an existing assembly mate WITHOUT deleting it: distance_mm (distance mate), angle_deg (angle mate), flip_dimension (side of a distance/angle), align aligned|anti_ali… |
| Exploded view (vista explosionada) of the active configuration of a managed assembly. |
| Read-only: faces of an assembly component described like the drawing says, instead of a point: kind cylinder (diameter_mm, axis) or plane (normal outward, offset_mm), nea… |
| The drawing gives a center of mass but not where its origin is nor how its axes point: tries every component origin and every hole/shaft axis point with the 24 axis-align… |
| Insert a part or subassembly (absolute path) into an assembly with its ORIGIN at position_mm (default 0,0,0, no rotation; |
| Detect interferences in a managed ASSEMBLY: count, total volume mm^3 and component pairs. |
| Override the mass (and optionally the center of mass, in mm in this document coordinates) of a part or assembly, ONLY when the drawing specifies it (e.g. |
| Managed ASSEMBLY mates. |
| Place an UNDER-DEFINED assembly component: its origin at position_mm and rotation rotation_deg [rx,ry,rz] (world X then Y then Z), or axes = the component X,Y,Z unit axes… |
| Replace a TOP-LEVEL component of a managed assembly with another file of the same kind (part→part, assembly→assembly), keeping and re-attaching its mates; |
Tool | What it does |
| Exam answers ready to copy: total mass and the center of mass in EVERY coordinate system of the model (default all, in tree order Sistema de coordenadas1, 2...; |
| Automatic balloons (globos) with BOM item numbers on the assembly views of a managed drawing (views, default all assembly views of the active sheet), layout square|circle… |
| Bill of materials (lista de materiales / BOM) on a managed DRAWING. |
| Create a native drawing with three standard orthographic views of a SAVED managed part/assembly using a DRWDOT template. |
| Add the MODEL dimensions to drawing views (Insert Model Items: dimensions marked for drawing; |
| Low-level, used by sw_assembly_drawing: empty drawing from a DRWDOT template with a width_mm x height_mm sheet, saved at an absolute path inside generated/drawings (never… |
| Text notes on the active (or named) sheet of a managed drawing, not attached to a view: one note per line in lines, top-left at position_mm [x,y] from the sheet bottom-le… |
| action dimensions (PDF exported by SolidWorks, one page): for every linear dimension its direction (horizontal, vertical), its view (found from the geometry, no labels ne… |
| Sheets of a managed DRAWING. |
| DRAWING sheets and views. |
| Measurement sheet (ficha de medidas) of ONE part read from a drawing. |
Tool | What it does |
| Compare measured solid volume against a positive target in mm^3 with an explicitly supplied tolerance percent. |
| Export complete managed part/assembly to NEW STEP, STL, Parasolid or IGES, or drawing to PDF, DXF or DWG, in generated (sheet metal flat patterns: sw_sheet_metal export_f… |
| Export several documents to several formats in ONE call: every document_id in document_ids to every format in formats (parts/assemblies: step, stl, x_t, igs; |
| Read-only definition of one feature to understand a warning/error the API only reports as a code: type, error/warning, suppression, parents and children; |
| Read faces, edges, circular radii and bounding boxes of a managed solid. |
| Inspect managed document. |
| READ-ONLY mass and center-of-mass verification of a part or assembly (exam check: masa y centro de masa X,Y,Z). |
| Pack and Go a SAVED managed assembly or drawing into generated/packs/<folder_name> (flattened, includes referenced parts), then verify that every referenced file exists i… |
| Read-only comparison of a managed PART against an original .SLDPRT (absolute path, opened read-only through a temporary copy): volume, mass, material, solid body count, s… |
| Create an isometric PNG preview of a managed part/assembly or fit the current drawing sheet. |
| Inspect faces and unique edges with short-lived selection references. |
How it works
MCP client (Claude / Codex / ...)
│ stdio, JSON-RPC
server/server.mjs ── tools.mjs (106 JSON schemas + cross-checks), recipes (MCP resources)
│ high-level tools in JS: part_ir, assembly_build, assembly_drawing, drawing_read (+ Python PDF/DXF helpers)
│ one JSON line per call
server/Worker-equations.exe (C#, STA, SolidWorks COM API) ── safe-edit guard: health check, rollback, backups
│
SolidWorks (its own minimized instance, or yours on request)More in docs/ARCHITECTURE.md. Agents also get recipes (MCP resources in server/recipes/*.md) with the proven way to do common jobs, and two optional Claude Code sub-agents in agents/ (one reads a drawing and writes the part recipe without SolidWorks, one checks your own part against the drawing without touching it).
Examples
examples/ has runnable scripts that drive the worker directly (they start the MCP's own SolidWorks): the pegboard in one call, a roller conveyor with patterns and reverse checks, a swivel caster, section views, automatic section + balloon, import/export round trip with identical mass, sheet metal, and the full MCP protocol flow. See examples/README.md.
Status and limits
Windows only (SolidWorks is Windows only). Tested with SOLIDWORKS 2026 Education/Student edition (Spanish UI); the API calls used exist since roughly SolidWorks 2018 but older versions are untested.
No Simulation / Flow / Motion / PDM / Routing (not part of the student scope this was built for).
Some messages and notes are in Spanish (the project started as a mechanical-engineering student's exam helper); tool schemas and descriptions are in English.
Long calls (whole assemblies) take minutes: raise your client's tool timeout (see INSTALL).
ChatGPT (web/desktop) only accepts remote MCP servers over HTTPS, so this local server does not plug into it directly.
Contributing
New tools, fixes and recipes are welcome - see CONTRIBUTING.md for how the pieces fit, how to add a tool and how releases are cut.
License
MIT. SolidWorks is a trademark of Dassault Systèmes; this project is not affiliated with or endorsed by Dassault Systèmes. You need your own SolidWorks license.
This server cannot be deployed
Maintenance
Related MCP Connectors
- OwlCADOAuthcom.owlcad
Parametric 3D CAD for AI agents: build print-ready parts, check them, export STL, 3MF or STEP.
Headless CAD engine & MCP server for 2D/3D drafting, solids, DXF/SVG export, and automation.
Agent-first CAD: editable .kcad.ts source, deterministic review, OpenCASCADE kernel.
Revit MCP: lets AI read and edit your open model. Windows, best supported on Revit 2021+, free beta.
Related MCP Servers
- FlicenseAqualityBmaintenanceEnables AI assistants to perform high-performance 3D CAD design, ultra-fast multi-view rendering, immutable versioned project management, and geometry/mesh verification for 3D printing on Windows.17-
- 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
- AlicenseBqualityAmaintenanceLet AI agents build, measure and verify parametric parts and assemblies in your own running SolidWorks (Windows, COM). 46 tools, every step measured.86817 PyPI15MIT
- AlicenseNot gradedqualityBmaintenanceEnables an AI assistant to drive an already-running SOLIDWORKS session over its COM API, so it can build sketches, solid features, reference geometry, assemblies, mates, and engineering drawings, then inspect the result through topology listings, mass properties, measurements, and screenshots returned as images.1Apache 2.0


