Skip to main content
Glama
MatteoBaisini

solidworks-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SOLIDWORKS_MCP_CONFIGNoPath to the TOML configuration file. If unset, the server looks for `solidworks-mcp.toml` in its working directory, then `%APPDATA%\solidworks-mcp\config.toml`.
SOLIDWORKS_MCP_ALLOW_MACRONoSet to `1` to enable the `execute_solidworks_macro` tool, or `0` to disable it. Overrides the `[macro] enabled` setting in the config file.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_active_document_infoA

Name, path and type of the active SolidWorks document, and the SolidWorks version. Starts SolidWorks if it is not running.

get_mass_propertiesA

Mass, volume, surface area and centre of mass of the active document (part or assembly).

get_feature_treeA

List of the features of the active document (design tree), with the type of each.

get_bounding_boxA

Bounding box of the solid bodies of the active part: min/max on X, Y, Z and overall size, in mm.

check_modelA

Checks the active part for rebuild errors, multiple bodies, and geometry faults.

get_screenshotA

PNG image of the active model, to check the result visually. Changes the view orientation (unless view='current') and zooms to fit; the model is not modified.

new_partB

Creates a new empty part from the default SolidWorks part template.

save_documentA

Saves the active document. With 'path' (e.g. C:\projects\part.SLDPRT, .step, .stl, .pdf...) saves/exports to that file: the format is taken from the extension. When the user has set a projects folder, relative paths are confined to it and missing folders inside it are created. If the target file already exists, overwrite must be True or the save is rejected.

export_documentA

Exports the active document to exchange formats, next to the document or in 'directory'. Existing files with the same name are replaced.

formats: e.g. ["step", "stl"]; omit to use the formats set by the user in the configuration (STEP by default). Supported: step, stp, iges, igs, x_t, stl, 3mf, pdf, png. directory: absolute, or relative to the folder of the document; "{format}" is replaced by the format name. Omit to use the configured directory. Created if missing. Files are named after the document. The open document is left untouched.

new_assemblyB

Creates a new empty assembly in SolidWorks using the default or given assembly template.

insert_componentB

Inserts a part or sub-assembly component into the active assembly at (x, y, z) mm.

add_mateA

Adds a geometric mate constraint between two components in the active assembly.

Specify entities either by 3D points [x, y, z] mm in assembly coordinates lying on the faces/edges, or by entity names (e.g. 'Plane1@Part1-1@Assembly1'). Supported mate types: coincident, concentric, parallel, perpendicular, tangent, distance, angle.

check_interferenceA

Checks the active assembly for volumetric interferences (collisions) between components.

new_drawingB

Creates a new 2D drawing from the currently active part or assembly document. Generates 3 standard 3rd-angle projection views (Front, Top, Right) and an Isometric view.

insert_model_dimensionsA

Inserts model dimensions marked for drawing across all views in the active 2D drawing.

list_configurationsA

Lists all configurations in the active part or assembly document, indicating the active one.

activate_configurationA

Activates an existing configuration by name in the active part or assembly.

add_configurationB

Adds a new configuration to the active part or assembly document and activates it.

select_planeA

Selects a plane: one of the base planes "front" (XY), "top" (XZ), "right" (YZ), which works with SolidWorks in any language, or a plane by name (e.g. one made by create_plane).

select_face_at_pointA

Selects the face of the part passing through the point (x, y, z) in mm, model coordinates. Use get_bounding_box to find the coordinates of the outer faces.

select_edge_at_pointA

Selects the edge of the part passing through the point (x, y, z) in mm, model coordinates. append=True adds it to the current selection. Tools such as fillet and chamfer take the points directly, so this is mostly useful to check that a point really lies on an edge.

start_sketchA

Opens a new sketch on the selected plane or face.

convert_pointA

Converts a point between model coordinates and the coordinates of the open sketch. to="sketch": (x, y, z) is a model point, returns its sketch (x, y) and its distance from the sketch plane. to="model": (x, y) is a sketch point (z ignored), returns the model point.

end_sketchA

Closes the open sketch without creating a feature.

sketch_rectangleA

Draws a rectangle in the open sketch, given centre and size (mm).

sketch_circleA

Draws a circle in the open sketch, given centre and DIAMETER (mm).

sketch_lineA

Draws a line in the open sketch between two points (mm). construction=True creates a construction line (e.g. the axis of a revolve).

sketch_polygonB

Draws a regular polygon (e.g. hexagon: sides=6) inscribed in a circle of the given diameter (mm).

sketch_arcC

Draws an arc given centre, start point and end point (mm).

sketch_slotA

Draws a straight slot (two half circles joined by lines) in the open sketch, given the centres of its two ends and its width (mm).

sketch_ellipseA

Draws an ellipse in the open sketch, given its two diameters (mm). rotation_deg turns the major axis counterclockwise from the sketch X axis.

sketch_splineA

Draws a smooth spline through the points [[x, y], ...] of the open sketch (mm, at least 2). Repeat the first point at the end to close it.

sketch_filletA

Rounds the corner of the open sketch at (x, y) (the point where two entities meet) with the given radius (mm).

sketch_offsetA

Offsets the chain of connected sketch entities passing through (x, y) by distance_mm. reverse=True offsets to the other side; both_sides=True offsets to both sides.

convert_entitiesA

Projects edges of the model into the open sketch (Convert Entities): all the edges of each face with a point in face_points, and each edge with a point in edge_points ([x, y, z] in mm, model coordinates). The new sketch entities follow the model when it changes.

fully_define_sketchA

Adds the relations and dimensions (measured from the sketch origin) that the open sketch needs to be fully defined, so it keeps its shape and can be edited later through its dimensions (get_dimensions / set_dimension).

add_sketch_dimensionA

Adds a driving dimension to the open sketch and sets it to 'value' (mm, or degrees for angles).

(x, y): a point on the entity (sketch coordinates). One entity: length of a line, diameter of a circle, radius of an arc. With (x2, y2) on a second entity: distance between them, or the angle between two lines. (text_x, text_y) places the text (default: next to the entity).

add_sketch_relationB

Adds a geometric relation between sketch entities of the open sketch.

points: [[x, y], ...] one point (sketch coordinates) on each entity involved. vertex: optional, one flag per point; true picks the sketch POINT there (an end point or centre) instead of the line/arc, as needed by coincident and midpoint (point first).

extrudeA

Extrudes the last sketch as a solid (closing it automatically if open).

end_condition: blind = depth_mm on one side; midplane = depth_mm split on both sides; through_all = through the existing solid; up_to_surface = up to the face through up_to_point ([x, y, z] in mm, model coordinates). depth2_mm > 0 also extrudes that far in the opposite direction (not with midplane). draft_angle_deg tapers the sides (inwards, or outwards with draft_outward=True). thin_wall_mm > 0 makes a thin wall of that thickness along the profile instead of filling it; open profiles (e.g. a chain of lines) are then allowed. merge=False keeps the result as a separate body.

cut_extrudeA

Extruded cut (holes, pockets) with the last sketch. through_all=True goes right through (depth_mm ignored). reverse flips the direction; flip_side removes the material OUTSIDE the profile. up_to_point ([x, y, z] in mm on a face) cuts up to that face instead. depth2_mm > 0 also cuts that far in the opposite direction. draft_angle_deg tapers the walls (inwards, or outwards with draft_outward=True).

revolveA

Revolves the last sketch around the construction line it contains (create it with sketch_line construction=True). cut=True removes material instead of adding it.

ribA

Rib from the last sketch: usually an open line between walls of the part, drawn on a plane through the middle of the rib. thickness_mm is the total thickness, centred on the sketch unless one_side=True. direction: parallel = material grows in the sketch plane, normal = perpendicular to it. flip_material flips the side towards which material is added if the rib does not reach the part.

sweepA

Sweeps a profile along a path (pipes, springs, handles, grooves).

path_sketch: name of the sketch with the path (open or closed curve). profile_sketch: name of the closed profile sketch, drawn on a plane crossing the start of the path; or leave it empty and give circle_diameter_mm for a round section. cut=True removes material instead of adding it. Close the sketches first (end_sketch).

loftA

Loft through two or more closed profiles drawn on different planes (see create_plane), in order. guide_sketches: optional guide curves touching every profile. cut=True removes material instead of adding it. Close the sketches first (end_sketch).

create_planeA

Creates a reference plane parallel to another one, offset_mm away (e.g. for loft profiles). reference: "front", "top", "right" or the name of a plane; or give face_point ([x, y, z] mm on a planar face) to offset from that face. flip=True puts it on the other side. Returns its name, to use with select_plane.

filletA

Rounds edges with a constant radius. edge_points: a point on each edge ([x, y, z] in mm, model coordinates); face_points: a point on each face whose edges are all rounded. Edges tangent to the chosen ones are rounded too.

chamferA

Bevels edges. edge_points / face_points as for fillet. Default: distance_mm at angle_deg (45 = equal sides). With distance2_mm > 0 the two sides are distance_mm and distance2_mm (angle ignored); flip swaps the sides of an unequal chamfer.

shellA

Hollows the part leaving walls thickness_mm thick. open_face_points: a point on each face to remove ([x, y, z] in mm), e.g. the top of a box; none gives a closed hollow part. outward=True adds the walls outside the current surfaces.

linear_patternA

Repeats features (names from get_feature_tree) in a row along a model axis: count copies in total (original included), spacing_mm apart, towards + (or - with reverse). direction2/count2/spacing2_mm add a second direction for a grid.

circular_patternA

Repeats features (names from get_feature_tree) around an axis: count copies in total (original included), spread evenly over angle_deg. axis: a model axis through the origin, or "edge" to turn around the circular or straight edge through axis_edge_point ([x, y, z] in mm, e.g. on the rim of a central hole).

mirrorB

Mirrors features (names from get_feature_tree) about a plane: "front", "top", "right", a plane name, or the planar face through face_point ([x, y, z] in mm).

holeA

Drills round holes into a planar face, perpendicular to it.

centers: the hole centres [[x, y, z], ...] in mm, model coordinates, all on the SAME face (the face is found through the first one). size: metric screw size ("M3" ... "M24") with fit: close / normal / loose clearance hole (ISO 273) or tapped = tap drill diameter (no thread is modelled); or give diameter_mm. depth_mm or through_all=True. style: counterbore / countersink for socket head screws; with a metric size their dimensions are standard (ISO 4762 / ISO 10642, 90 degrees), otherwise give them.

base_flangeB

Creates a sheet metal base flange / tab from the open or selected sketch.

edge_flangeB

Creates a sheet metal edge flange on the selected or indicated edge.

export_flat_patternA

Exports the flat pattern of the active sheet metal part to a DXF file. Existing files with the same name are replaced. path: absolute path or relative filename for the DXF export. Omit to export next to the part.

list_materialsA

Materials available in the SolidWorks material databases, filtered by 'search' (part of the name or category, e.g. "6061", "steel", "abs"). Use the exact name with set_material.

set_materialA

Assigns a material to the active part (exact name, see list_materials), so that get_mass_properties gives the real mass.

get_dimensionsA

Dimensions of a feature or sketch (or of the whole part when 'feature' is empty), with their full names (e.g. D1@Boss-Extrude1) and values in mm or degrees, for set_dimension.

set_dimensionA

Changes a dimension (name from get_dimensions, e.g. "D1@Boss-Extrude1") to 'value' (mm, degrees for angles, a plain number for counts such as pattern instances) and rebuilds.

suppress_featureA

Suppresses (temporarily removes from the model, keeping it in the tree) or, with suppressed=False, restores a feature.

get_equationsB

Global variables and equations of the active document, with their index.

add_equationA

Adds a global variable or an equation and rebuilds. Names go in double quotes, e.g. '"width" = 80' (global variable), '"D1@Boss-Extrude1" = "width" / 2' (drives a dimension). Numbers without units take the document units.

delete_equationB

Deletes the equation with that index (see get_equations).

get_custom_propertiesB

Custom properties of the active document (description, part number, ...), as used in BOMs and title blocks.

set_custom_propertyA

Sets a custom property of the active document (created if missing). Replaces the current value. An empty value deletes it.

measureA

Measures one entity (area, length, diameter...) or the distance and angle between two, picked by a point lying on each ([x, y, z] in mm, model coordinates). Replaces the current selection.

undoC

Undoes the last operations in SolidWorks.

delete_featureB

Deletes a feature from the tree by name (see get_feature_tree).

zoom_to_fitA

Fits the view to show the whole model.

Prompts

Interactive templates invoked by user choice

NameDescription
design_partGuidance and recommended workflow for modeling a 3D part in SolidWorks

Resources

Contextual data attached and managed by the client

NameDescription
resource_active_infoActive SolidWorks document information and version
resource_feature_treeActive SolidWorks document feature tree
resource_materialsAvailable SolidWorks material databases and categories

TDQS

B3.4/5.0

Scored across 69 tools

Disambiguation4/5

Most tools have clearly distinct purposes across sketching, features, assemblies, drawings, and metadata. There is minor overlap between save_document/export_document and some dimension-related tools, but the descriptions generally make boundaries clear.

Naming Consistency4/5

The set is overwhelmingly snake_case and operation-oriented, with predictable prefixes such as get_, add_, select_, and sketch_. A few names are single verbs or noun-like sheet-metal operations, but the convention remains readable and mostly consistent.

Tool Count2/5

Although SolidWorks is a broad domain, 69 tools is a very heavy surface for an agent to manage and select from reliably. Many operations are justified, but the set exceeds a practical MCP scope and likely needs grouping or progressive disclosure.

Completeness4/5

Coverage is strong across parts, assemblies, drawings, sketches, features, sheet metal, configurations, equations, properties, and export. Minor lifecycle gaps remain, such as opening/closing existing documents, deleting or editing mates/configuration entries, and moving existing assembly components.

Maintenance

ActivityMaintained
ResponsivenessNo issues