Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

SolidWorks

PYPI · SW-MCP

Model, measure and verify parametric parts and assemblies in a running SolidWorks (Windows).

Available components

+18 this week 80 Trust /100

Last scanned (7 hours ago)

Scores higher than 80% of PyPI servers

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 0 of 28 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to NejcDvorsek/sw-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 5 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability73
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 17390 tokens (~170/item across 102 items; 101 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage67
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_feature" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 103 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 3 Nov 26 +16
    • Malware scan: unverified → pass ▲ security
  • 2 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
  • 1 Nov 26 +16
    • Malware scan: unverified → pass ▲ security
  • 30 Oct 26 0
    • Schema quality: 14839 → 17390 ▼ functional
    • Stability: unverified → 0.03 ▲ functional
    • Package version: 0.1.0 → 0.2.0 functional
  • 29 Oct 26 62

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/sw-mcp@0.2.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo NejcDvorsek/sw-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/NejcDvorsek/sw-mcp/.github/workflows/publish.yml@refs/tags/v0.2.0
Rekor log index 3596733806
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:31be109ff1b8d69917f36ea9869e0d75fddf6bc16798fd30f7da79f19c76e10c

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted setuptools.build_meta

Background: Why install scripts are a supply-chain risk →

Dependencies 28 packages
Packages resolved 28
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 101 exposed · ~16,607 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
cut_profile ~326

Cut a polygonal pocket, slot or window; the polygon is auto-closed. - Default: points_mm = [[x,y], ...] cut down from the +Z face. rotate_deg turns the profile about about_mm as for add_extruded_profile (notches at +/-60 degrees around a pivot). - face='+x' (or ...): points_mm = [[x,y,z], ...] on one face facing that way, found through them; for side pockets and cutouts. - plane='right' ('front' z = 0, 'top' y = 0, 'right' x = 0, or 'Plane1'): points_mm = 3D points ON that plane, cut symmetric about it. For shapes seen from the side: wedges, windows, symmetric recesses. keep_inside=True cuts away everything OUTSIDE the profile (through all): extrude the front view, cut the side view with keep_inside, and the part is the 3D shape both views agree on. Blind by depth_mm (with plane=: in total, centred on the plane), or through all when omitted. corner_radii_mm rounds the corners as for add_extruded_profile. Returns mass properties.

NameTypeReqDescription
about_mm–––
corner_radii_mm–––
depth_mm–––
face–––
keep_insideboolean––
namestring––
plane–––
points_mmarrayyes–
rotate_degnumber––

No output schema declared.

No examples provided.

cut_sketch ~106

Cut an existing sketch of the current part by name into the body. depth_mm deep, or through all when depth_mm is omitted, against the sketch's normal: into the part from a face. From a plane with the part in front of it (a box on the Front plane) give reverse=True. Returns mass properties.

NameTypeReqDescription
depth_mm–––
namestring––
reverseboolean––
sketchstringyes–

No output schema declared.

No examples provided.

cut_slot ~134

Cut a straight slotted hole (obround) on the +Z face. Centred at (x_mm, y_mm); length_mm is centre-to-centre of the rounded ends, width_mm the slot width, angle_deg its orientation in the +Z plane (0 = +X). Cut blind by depth_mm or through when omitted. Returns mass properties.

NameTypeReqDescription
angle_degnumber––
depth_mm–––
length_mmnumberyes–
namestring––
width_mmnumberyes–
x_mmnumberyes–
y_mmnumberyes–

No output schema declared.

No examples provided.

delete_component ~70

Remove a component from the current assembly, with the mates that hold it. component: its name in list_components ("Bracket-1", or "Bracket" while there is one). Returns the mates deleted, how many components are left and the assembly's mass properties.

NameTypeReqDescription
componentstringyes–

No output schema declared.

No examples provided.

delete_equation ~57

Delete an equation by the name it sets ("L_thigh", "D1@Boss") or its list_equations index. Rebuilds and returns what was deleted, failing_features and mass properties.

NameTypeReqDescription
equationstringyes–

No output schema declared.

No examples provided.

delete_feature ~134

Delete a feature (a list_features name) with its sketch, then rebuild and remeasure. The way to undo a step. Refuses when other features are built on it and names them, and what is built on those; with_children=True deletes them all. dry_run=True only lists what would go (would_delete). Equations that named its dimensions break and come back as broken_equations; with_equations=True deletes them (global variables stay).

NameTypeReqDescription
dry_runboolean––
namestringyes–
with_childrenboolean––
with_equationsboolean––

No output schema declared.

No examples provided.

delete_mate ~76

Delete a mate of the current assembly by name (list_components, or add_mate's 'mate'). A list of names deletes them all at once, with one rebuild. Their components are free to move again. Returns what was deleted and how many mates are left (list_components lists them).

NameTypeReqDescription
name–yes–

No output schema declared.

No examples provided.

drawing_file ~153

The current drawing's document: action 'new' (sheet 'A4' upright or 'A3'..'A0', part: the saved model its views show, default the current part), 'open' (path .slddrw), 'save' (path .slddrw), 'export' (path: PDF, DXF, DWG, PNG/JPG/TIF of the sheet) or 'close' (without saving). The drawing is kept apart from the current part. 'new' returns the frame, title block and free areas in sheet mm.

NameTypeReqDescription
actionstringyes–
part–––
path–––
sheetstring––

No output schema declared.

No examples provided.

edit_annotation ~166

Change an annotation by id ('RD3@Drawing View1'), or delete=True it. prefix / suffix (a prefix replaces SolidWorks' own symbol: a radius needs 'R', e.g. '4X R'), precision (decimals), tolerance [upper, lower] mm, fit ('H7'), a note's text, its place at=[x, y] (sheet mm), diametric=True. A model dimension keeps these in the part (the result says changes_part).

NameTypeReqDescription
annotation_idstringyes–
at–––
deleteboolean––
diametric–––
fit–––
precision–––
prefix–––
suffix–––
text–––
tolerance–––

No output schema declared.

No examples provided.

edit_view ~172

Move a view (its geometry centred on at=[x, y], or beside='<view>' on side, gap_mm apart; align 'center' or 'start'), change it (scale '1:2' or 'sheet'; display 'hidden_removed', 'hidden_visible', 'wireframe', 'shaded', 'shaded_edges'; tangent_edges; new_name), or delete=True it. Projected and section views stay aligned with their parent, so they only move along that line.

NameTypeReqDescription
alignstring––
at–––
beside–––
deleteboolean––
display–––
gap_mm–––
namestringyes–
new_name–––
scale–––
side–––
tangent_edges–––

No output schema declared.

No examples provided.

export ~215

Export the current part or assembly to STEP/STL/IGES/Parasolid/3MF (format from extension). Silent (no prompts). Verifies the file appears on disk and reports its size. For STL/3MF, tessellation resolution is set first: quality 'coarse'|'fine' (default 'fine' for print quality), or pass deviation_mm (+ optional angle_deg) for a reproducible custom resolution (overrides quality). Ignored for other formats. An assembly goes to STL as one file, or one file per component with per_component=True (SolidWorks names them); `files` lists what was written. STL/3MF keep the part's or assembly's own coordinates (`frame`), also per component, so a mesh measures back where the model is; slicers place it anyway.

NameTypeReqDescription
angle_deg–––
deviation_mm–––
file_format–––
pathstringyes–
per_componentboolean––
qualitystring––

No output schema declared.

No examples provided.

extrude_sketch ~189

Extrude an existing sketch of the current part by name, e.g. one a person drew. depth_mm along the sketch's normal (reverse=True: the other way), merged with the body. Or up_to='next': up to the next face of the part, ending on its shape (a post into a curved wall) and following it when it changes; or up_to='@x,y,z': up to the face through that point, also where 'next' fails (a side of the profile on a face: the refusal names a point ahead). The sketch keeps its own dimensions and relations, so the person's design stays in charge; read_sketch shows it first. Returns mass properties.

NameTypeReqDescription
depth_mm–––
namestring––
reverseboolean––
sketchstringyes–
up_to–––

No output schema declared.

No examples provided.

flat_pattern ~96

A sheet metal part's flat pattern: action 'info' (thickness, bend radius, K-factor, number of bends, flat blank size), 'flatten' / 'fold' (show the part flat or bent), or 'export' to path (.dxf or .dwg: the flat outline and bend lines for laser cutting; save the part first).

NameTypeReqDescription
actionstring––
path–––

No output schema declared.

No examples provided.

get_bounding_box ~35

Get the bounding box (min/max/size in mm) of the current part, tight, or of the whole assembly.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_mass_properties ~35

Get volume (mm^3), mass (kg), surface area (mm^2), centre of mass, and bounding box.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_status ~29

Report whether SolidWorks is reachable, its revision, this server's version, and the active/current part.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

import_dimensions ~100

Bring in what the model already knows. kinds: 'model' (its dimensions, each once), 'callouts' (one counted hole callout per set of identical Hole Wizard holes, '4X ...'), 'hole_locations' (their centres dimensioned from the left and bottom edges), 'center_marks' (centre marks and lines). Default the first three, into every view (or one).

NameTypeReqDescription
kinds–––
view–––

No output schema declared.

No examples provided.

insert_component ~141

Insert a .sldprt, or a .sldasm as a sub-assembly, with its ORIGIN at (x, y, z) mm. The part's own origin lands exactly on that point, and the placement is read back and verified. fixed=True pins the component; fixed=False leaves it free for mates. The default fixes only the FIRST component, giving the assembly a ground to build against. Returns the component's name, placement and box.

NameTypeReqDescription
fixed–––
pathstringyes–
x_mmnumber––
y_mmnumber––
z_mmnumber––

No output schema declared.

No examples provided.

list_bodies ~42

List the part's solid bodies: name, volume and bounding box. A part holds several after merge=False or split_body; combine_bodies joins them again.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_components ~162

List the assembly's components (name, path, fixed, position, rotation, bounding box) and mates. Positions are in mm and rotations in degrees, both in assembly coordinates; the bounding box of each component is in assembly coordinates too. Each mate gives its name, SolidWorks type, the components it holds, the dimension of a distance or angle mate, and an error when SolidWorks flags it. On a big assembly, narrow it: name keeps the matching components ('Bolt*' as a wildcard, 'bolt' anywhere in the name) and the mates holding them; mates=False leaves the mates out; brief=True gives only name, path, fixed.

NameTypeReqDescription
briefboolean––
matesboolean––
name–––

No output schema declared.

No examples provided.

list_dimensions ~45

List every dimension in the current part: name (for set_dimension), feature, value, unit. For a part opened from disk, or when the names the tools returned are gone.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_documents ~62

List the documents open in SolidWorks: title, path (empty until saved), type, unsaved changes. `current` marks the one the tools work on, `active` SolidWorks' own. Parts an open assembly loaded come along, with visible false.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_edges ~139

List the part's edges: index, type, length, ends; lines also axis and midpoint. Narrow it on a big part: face (a list_faces index, "#5"), feature (the edges of the faces it made), within_mm ([[x1, y1, z1], [x2, y2, z2]]: both ends inside), min_length_mm. Indices are always those of the whole part: use them with add_fillet/add_chamfer edges="2,5".

NameTypeReqDescription
face–––
feature–––
min_length_mm–––
within_mm–––

No output schema declared.

No examples provided.

list_equations ~97

List the equations and global variables: index, equation, name it sets, value, global. `broken` marks an equation that names a dimension or variable that is gone, as one left behind by delete_feature; delete_equation removes it. automatic_solve_order False means SolidWorks solves them as listed: one above the line that sets its variable then warns and lags a rebuild. Any set_equation turns it on.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_faces ~156

List the part's faces (index, planar?, normal, area, centre) for inspection. A cylindrical face also gives its axis, radius and a point on the axis (for a hole: its centre), so hole patterns can be read off. component: a component of the current assembly, listed in its own frame (e.g. an imported servo); for a sub-assembly, every part's faces in the sub-assembly's frame, each naming its part. A part's indices shift as features are added; a component's are ordered by part, type, centre and area, so they stay while its shape does. add_mate takes them as '#5'.

NameTypeReqDescription
component–––

No output schema declared.

No examples provided.

list_features ~56

List the current part's modelling history in tree order: name, type, suppressed. For a part opened from disk, or to find the step to undo. Flags features that fail to rebuild and names sketches that are not fully defined.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_views ~87

The sheet's frame and title block, and each view (or one): name, type, scale, outline and geometry box (sheet mm), the model-to-sheet mapping (a model point p lands at origin + p.x * x + p.y * y + p.z * z), and its annotations: id, type, shown text, value, box.

NameTypeReqDescription
view–––

No output schema declared.

No examples provided.

make_drawing ~337

Make a manufacturing drawing of the current part in one call: PDF, .slddrw, DXF or DWG. Front, top and side views (first angle) plus an iso view on an ISO sheet ('A4' upright, 'A3'..'A0' landscape) with SolidWorks' ISO title block, at the largest standard scale that leaves room for dimensions (or scale='1:2'). The model's dimensions come in once each, one hole callout per set of identical Hole Wizard holes ('4X ...'), their centres dimensioned, and the title block shows material and mass. A sheet metal part gets its flat pattern in place of the iso view, with bend lines, bend notes and the blank's overall size. Weld beads come in with their weld symbols; a weldment gets its cut list table. Then every view moves with its annotations until nothing reaches off the frame, onto the title block or into another view; when they cannot fit, the iso view is left out, then the next larger sheet is tried, up to max_sheet (None: `sheet` only). Returns `sheet`, `fit` ({fits, tried}) and `problems` (check_drawing). keep_open=True keeps it as the current drawing to refine with the other drawing tools. Save the part first (save_document): the drawing refers to its file.

NameTypeReqDescription
keep_openboolean––
max_sheet–––
pathstringyes–
scale–––
sheetstring––

No output schema declared.

No examples provided.

measure_distance ~173

The smallest distance (mm) from a component to another one, a point or an axis. Give component_b; or point_mm = [x, y, z] in assembly mm, and the nearest point on the component comes back too, with inside: true when the point lies in its material; or axis_mm = [[x, y, z], [dx, dy, dz]], the endless line through that point along that direction, such as a bolt's axis. 0 means they touch or overlap; check_interference tells which. Sub-assemblies count with all their parts; one part inside is 'Leg-1/Thigh-1'.

NameTypeReqDescription
axis_mm–––
component_astringyes–
component_b–––
point_mm–––

No output schema declared.

No examples provided.

new_document ~72

Create a new empty part (kind='part') or assembly (kind='assembly'); it becomes the current document. Assemblies compose saved parts: insert_component places each part, add_mate constrains them, check_interference proves nothing overlaps. Drawings: drawing_file.

NameTypeReqDescription
kindstring––

No output schema declared.

No examples provided.

open_document ~177

Open a .sldprt or .sldasm, or import a STEP/IGES/Parasolid file; it becomes the current document. A neutral file opens as a part, or as an assembly if it holds one (kind='part' / 'assembly' says which up front). A part shows its history in list_features and its dimensions in list_dimensions; an imported body has no history, but the tools work on it (holes and pockets on its faces, bosses, fillets), and the result gives its solid body count and mass properties. An imported assembly's parts arrive as components at their places, ready for list_components and add_mate; the result gives the component count. Drawings: drawing_file(action='open').

NameTypeReqDescription
kind–––
pathstringyes–

No output schema declared.

No examples provided.

read_model ~383

Read everything a design review needs of the current part in one read-only call (schema sw-mcp/model@1). Sections ('core' is always read; None reads core, material, holes, radii and setups, plus walls with wall_mm and draft with pull): - core: mass, volume, area, density, centre of mass, bbox, bodies, features with rebuild errors, dimensions with their own tolerance (type, plus/minus, ISO fit such as 'H7'), equations, under-defined sketches. - material: name, database, density; null if none is assigned. - holes: every hole of every body, identical ones grouped with count and centres_mm (at the entrance). Hole Wizard holes give standard, size, fit and sizes from the wizard (source 'wizard'); other holes are measured from the geometry (source 'geometry'): kind simple / counterbore / countersink / tapped, diameter, depth, through, drilling axis, entrance. - radii: internal (concave) radii by feature, and sharp internal edges by feature, direction (x/y/z, null if curved) and length. - setups: planar face normals and the setup directions (+x ... or a vector). - walls (needs wall_mm): the thinnest wall and up to 20 spots below wall_mm. - draft (needs pull, '+z'...): each face's draft, the worst 20, and undercut faces. A section that fails is null and named in `gaps`, with anything cut off to keep the answer small. Nothing is selected, changed or saved. clearance_pairs belongs to the assembly section, not available yet.

NameTypeReqDescription
clearance_pairs–––
pull–––
sections–––
wall_mm–––

No output schema declared.

No examples provided.

read_sketch ~95

Read a sketch of the current part back, e.g. one a person drew (a list_features name). Gives its lines, arcs, circles and splines in MODEL coordinates (mm), construction geometry marked, its dimensions (for set_dimension) and whether it is fully defined: check a design against fixed points before building on it with extrude_sketch / cut_sketch.

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

rebuild ~67

Force a rebuild of the current part or assembly and report whether it rebuilt without errors. In an assembly, mate_errors names each mate SolidWorks flags, and each mate that lost a face or edge it used (it rebuilds fine, but holds nothing).

NameTypeReqDescription
top_onlyboolean––

No output schema declared.

No examples provided.

render_drawing ~62

Picture (PNG/JPG) of the sheet, or of the region zoom_mm = [[x1, y1], [x2, y2]] (sheet mm), to look at it.

NameTypeReqDescription
pathstringyes–
zoom_mm–––

No output schema declared.

No examples provided.

reorder_feature ~126

Move a feature (a list_features name), with its sketch, to just before another one; rebuild and remeasure. For a boss added last that filled holes cut earlier: build it at the end as usual, then move it before the first of those cuts, and they cut through it again. Refused, the part as it was, when the feature is built on something at or after that place. Returns the new order (features) and the features that fail to rebuild (failing_features).

NameTypeReqDescription
beforestringyes–
namestringyes–

No output schema declared.

No examples provided.

replace_component ~151

Swap a top-level component for another .sldprt or .sldasm, in the same place. SolidWorks re-attaches each mate to the new part's matching face where it can. Returns the new component, the mates kept, and the mates that broke or went: each with its type, the other components, and what it held on the old part (the face's type, normal or axis and centre in the component's own frame), plus up to three candidate faces on the new part ('#index', nearest first). Re-mate with delete_mate and add_mate(mates=[...]).

NameTypeReqDescription
componentstringyes–
pathstringyes–

No output schema declared.

No examples provided.

run_script ~261

Run Python against the live SolidWorks: a whole part in one call, or what no tool covers; off when the server runs with --no-scripts. Give the script as code, or as a file at path: it may import helpers from its own folder (reloaded every run), so fix a part by editing the file and running it again. The script sees sw, model (current part/ assembly), drawing, mod (typed interfaces), wrap(obj, mod.IFeature), mm (mm -> m), to_mm, doubles([..]) (a VARIANT array) and session (this server's tools: session.new_part(), session.add_box(...)). print() is captured and `result = ...` comes back. All or nothing: a script that raises leaves the part as it was. One report comes back for a part: features_added, failing_features, bodies (volume, box), clashes between bodies, under_defined_sketches, mass properties, seconds, and image: one PNG of the iso, right, top and bottom views (for a path, next to the script; image='x.png' elsewhere).

NameTypeReqDescription
code–––
image–––
path–––

No output schema declared.

No examples provided.

save_document ~61

Save the current part (.sldprt) or assembly (.sldasm) to path, or over its own file without one. Saves silently and checks the file was really written. Drawings: drawing_file(action='save').

NameTypeReqDescription
path–––

No output schema declared.

No examples provided.

screenshot ~208

Save a screenshot of the current part or assembly (PNG/JPG/TIF). view: 'iso' (default), 'front', 'back', 'left', 'right', 'top' or 'bottom'; or from_dir = [x, y, z], the direction to look from, e.g. [-1, 1, -1] to see from behind and below what iso hides (the model's +y stays up). Zoomed to fit, or onto a detail: zoom_mm = [[x1, y1, z1], [x2, y2, z2]], the corners of the region to fill the image (model mm, in any view). Reference planes and axes are left out, so they do not cut through the shape; show_planes=True keeps them.

NameTypeReqDescription
from_dir–––
pathstringyes–
show_planesboolean––
viewstring––
zoom_mm–––

No output schema declared.

No examples provided.

set_appearance ~124

Colour and/or see-through of the current part, or of one component in an assembly. rgb: [r, g, b], 0..255 each; transparency: 0 solid .. 1 clear (0 makes a see-through component solid again). In an assembly, component names it ('Bracket-1', 'Leg-1/Thigh-1'); the colour then belongs to the assembly and the part keeps its own. What is left out stays as it was.

NameTypeReqDescription
component–––
rgb–––
transparency–––

No output schema declared.

No examples provided.

set_component_transform ~165

Move/rotate a component: its origin to (x, y, z) mm, rotated rx/ry/rz degrees. name is the component name ('Bed' or 'Bed-1'); rotations apply X, then Y, then Z about the assembly axes, and work on a fixed component too. The transform is read back and compared, so a move SolidWorks ignored (e.g. one already pinned by mates) fails loudly instead of silently leaving the part where it was.

NameTypeReqDescription
namestringyes–
rx_degnumber––
ry_degnumber––
rz_degnumber––
x_mmnumberyes–
y_mmnumberyes–
z_mmnumberyes–

No output schema declared.

No examples provided.

set_dimension ~178

Set a named driving dimension (e.g. 'D1@BlockExtrude') in mm, rebuild, and remeasure. This is the parametric edit at the heart of the correction loop. Every modelling tool returns its dimensions by role in `dimensions`. An angle (a revolve, an angle mate) takes degrees; list_dimensions shows the unit. A point's coordinate from the origin (a sketch's 'x3', 'y2') takes a sign, -5 being across the origin; any other length is a size, refused below 0. A value SolidWorks does not take (a dimension an equation drives, a size of 0) is refused with the reason, and the part is left as it was.

NameTypeReqDescription
dimension_namestringyes–
value_mmnumberyes–

No output schema declared.

No examples provided.

set_drawing_properties ~112

Fill the title block through the custom properties its fields show. description, material, weight, finish go to the part ('from part' links material / weight to the part's own, so they follow the model); drawn_by, drawn_date, checked_by, checked_date, approved_by, revision, company, part_no, qty or any other name go to the drawing. Returns what each title block field now shows and which properties it has no field for.

NameTypeReqDescription
propertiesobjectyes–

No output schema declared.

No examples provided.

set_equation ~194

Add an equation, or replace the one that sets the same name; rebuild and remeasure. A SolidWorks equation string, e.g. '"D1@BlockExtrude" = 25' or '"D1@BlockExtrude" = 2 * "D1@Sketch1"'. A global variable is '"W" = 40'; link a dimension to it with '"width@Sketch1" = "W"', and set '"W" = 45' again to change it. Persists a relation (unlike set_dimension). A list of equations is set in order with one rebuild at the end (later ones may use earlier ones), and a refused one undoes the whole list. Returns the index (per equation for a list), whether it replaced one, the features that fail to rebuild (failing_features) and mass properties.

NameTypeReqDescription
equation–yes–

No output schema declared.

No examples provided.

set_material ~131

Assign a material by name (e.g. "6061 Alloy", "AISI 1020", "ABS"). Makes mass and density reflect a real material instead of the 1000 kg/m³ default. One SolidWorks does not have (say "TPU") comes with its density: density_kg_m3=1210 makes it, by that name, carrying only the density. The English names work on a SolidWorks in another language too. Returns mass properties including density.

NameTypeReqDescription
databasestring––
density_kg_m3–––
namestringyes–

No output schema declared.

No examples provided.

slice_mesh ~128

Cross-sections of an STL/3MF mesh at the given heights along axis 'x'/'y'/'z'. For modelling a part that must fit something that only exists as a mesh. Returns each section's closed loops, largest first, as polygon points (mm) ready to use as profiles. frame (3MF): 'object' (the mesh's own frame) or 'build' (as placed on the slicer's plate).

NameTypeReqDescription
axisstringyes–
framestring––
heights_mmarrayyes–
pathstringyes–

No output schema declared.

No examples provided.

split_body ~73

Split the part's body in two along a plane (front/top/right or a plane by name). The two bodies come back by name: combine them differently, or check each with list_bodies. Use add_plane first for a cut anywhere else.

NameTypeReqDescription
namestring––
planestringyes–

No output schema declared.

No examples provided.

suppress_feature ~69

Suppress a feature, or bring it back with suppress=False; rebuild and remeasure. Keeps the feature and its dimensions, unlike delete_feature, so it suits trying a variant. Features that depend on it follow both ways.

NameTypeReqDescription
namestringyes–
suppressboolean––

No output schema declared.

No examples provided.

suppress_mate ~59

Suppress a mate so it stops holding its components (it stays in the tree), or bring it back. suppress=False brings it back. Returns whether it is suppressed now.

NameTypeReqDescription
namestringyes–
suppressboolean––

No output schema declared.

No examples provided.

Install

How do I install the SolidWorks MCP server?

SolidWorks runs locally as a PyPI package, launched with uvx sw-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · sw-mcp

# add to Claude Code
claude mcp add nejcdvorsek-sw-mcp -- uvx sw-mcp
Common questions

What is the SolidWorks MCP server?

SolidWorks is an MCP server listed in the public MCP registry as io.github.NejcDvorsek/sw-mcp. Model, measure and verify parametric parts and assemblies in a running SolidWorks (Windows). This page covers its PyPI package (sw-mcp).

Is the SolidWorks MCP server safe to use?

SolidWorks scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the SolidWorks MCP server expose?

SolidWorks exposes 101 tools: get_status, new_document, add_box, add_extruded_profile, add_disc, and 96 more. Their descriptions and schemas cost roughly 16,607 tokens of context every time the server is loaded.

Is the SolidWorks MCP server still maintained?

SolidWorks is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the SolidWorks MCP server under?

SolidWorks declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.