solidworks-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | No | The workspace directory for file output. Defaults to ~/Documents/SOLIDWORKS-MCP. All file-writing tools resolve destinations through Runtime.output_path and reject any path that resolves outside this directory. | ~/Documents/SOLIDWORKS-MCP |
| allow_scripts | No | Whether to enable the solidworks_script tool, which executes arbitrary trusted Python on the COM apartment. Omit or set to 'false' (the default) to disable it entirely; set to 'true' to enable. | false |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| solidworks_discoverA | Find installed SOLIDWORKS versions, CAM/add-in registrations and API libraries; no app launch. |
| solidworks_connectA | Attach to SOLIDWORKS 2025 (revision 33); launch=true may start it. Returns an app handle. |
| solidworks_apiA | Invoke any exposed COM member. Use {$ref:handle}, {$variant:'I4',byref:true,value:0}, typed arrays with array:true, {$missing:true}, or {$bytes:base64}. Returns value and out_args. Get managers with action=get. Explicit action avoids confusing methods and properties. This is full API access: calls may modify documents, execute macros, or access local files. |
| solidworks_batchA | Execute ordered API steps without interleaving. Reference earlier results with {$result:'step_id',path:['value','$ref']}. Stops at first error and reports completed steps; earlier mutations remain applied. This is not a rollback transaction. |
| solidworks_arrayB | Read a page of an array returned as an object handle; preserves every item of large arrays. |
| solidworks_releaseA | Release unneeded session handles on their COM apartment. Does not close documents. |
| solidworks_api_loadA | Index a local vendor .tlb/.dll API library without registering it; find paths with discover. |
| solidworks_api_searchA | Search loaded API libraries for CAD/CAM interfaces, exact methods, parameters and enums. Load installed sldworks.tlb, swconst.tlb, camworks.tlb or an add-in DLL first. |
| solidworks_active_documentA | Return the active document handle, title, path and document type without changing it. |
| solidworks_templatesA | Read configured default part, assembly and drawing template paths. |
| solidworks_new_documentA | Create a part/assembly/drawing from an absolute existing template path; returns its handle. |
| solidworks_open_documentB | Open an absolute part(1), assembly(2), or drawing(3) path. Returns COM errors/warnings. |
| solidworks_saveA | Save/export by extension inside workspace (SLDPRT, SLDASM, STEP, STL, PDF, etc.). Format support depends on document type. For export options use API SaveAs with ExportData. |
| solidworks_rebuildA | Rebuild a model, reporting failure. Inspect features afterwards for individual error codes. |
| solidworks_inspectB | Inspect bounded feature tree with feature types and error/warning codes. |
| solidworks_assembly_treeA | Inspect assembly occurrences, parent relationships, suppression and transforms, with bounds. |
| solidworks_mass_propertiesA | Compute model mass/volume/area and inertia using current material and configuration. |
| solidworks_sketch_beginA | Legacy convenience: create/select a 2D sketch on a plane and add a batch of simple entities in one call (line/circle/rectangle). For the full entity/relation/dimension set, use solidworks_sketch's operation dispatch (begin/add_entities/fillet/chamfer/... /exit). |
| solidworks_reference_geometryB | solidworks_reference_geometry: dispatches on payload.operation to one of the capability-module handlers for [axis, coordinate_system, coordinate_system_numeric, plane, point]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_sketchC | solidworks_sketch: dispatches on payload.operation to one of the capability-module handlers for [add_dimension, add_entities, add_relation, begin, chamfer, convert_entities, exit, fillet, mirror, offset]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_featureA | solidworks_feature: dispatches on payload.operation to one of the capability-module handlers for [boundary, chamfer, delete, dome, draft, extrude, extrude_cut, fillet, hole_wizard, loft, loft_cut, mirror, modify, mounting_boss, revolve, revolve_cut, rib, shell, simple_hole, sweep, sweep_cut, thread, wrap]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_patternC | solidworks_pattern: dispatches on payload.operation to one of the capability-module handlers for [circular, curve_driven, fill, linear, mirror, sketch_driven, table_driven]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_bodyA | solidworks_body: dispatches on payload.operation to one of the capability-module handlers for [cavity, combine, delete, indent, list, move_copy, scale, split]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_parametricB | solidworks_parametric: dispatches on payload.operation to one of the capability-module handlers for [add_equation, add_global_variable, delete_equation, get_dimension, link_dimensions, list_equations, set_dimension]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_materialC | solidworks_material: dispatches on payload.operation to one of the capability-module handlers for [apply, color, custom_density, get, get_density]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_configurationA | solidworks_configuration: dispatches on payload.operation to one of the capability-module handlers for [activate, add, delete, delete_design_table, get_design_table, insert_design_table, list, set_config_dimension]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_analyzeC | solidworks_analyze: dispatches on payload.operation to one of the capability-module handlers for [bounding_box, check_geometry, draft_analysis, interference, mass_properties, measure, section_properties, thickness_analysis]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_assemblyB | solidworks_assembly: dispatches on payload.operation to one of the capability-module handlers for [bom, clearance, collapse, explode, fix, float, insert_component, insert_components, interference, mate, mirror_components, move_component, pattern_components, replace_component, rotate_component]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_drawingA | solidworks_drawing: dispatches on payload.operation to one of the capability-module handlers for [add_annotation, detail_view, export, insert_bom, insert_dimensions, model_view, new_from_model, projected_view, section_view, set_sheet_format, standard_3view]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_exchangeC | solidworks_exchange: dispatches on payload.operation to one of the capability-module handlers for [export, import]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_camC | solidworks_cam: dispatches on payload.operation to one of the capability-module handlers for [check_collisions, define_feature, define_stock, generate_operation_plan, generate_toolpaths, list_features, list_machines, list_operations, list_setups, post_process, recognize_features, save_cam_data, set_machine, set_operation_parameter, set_post, set_tool, setup_sheet, simulate, techdb_query]. Each operation has its own typed field set (see the tool's input schema); unspecified fields fall back to the module function's own default. Lengths/angles follow each field's documented unit convention (SI unless the function accepts a |
| solidworks_persistent_referenceA | Encode an entity's persistent reference for reacquiring it after edits or reopening its model. |
| solidworks_resolve_referenceB | Resolve a persistent reference in its original document; reports deleted/invalid entities. |
| solidworks_modify_featureB | Edit a feature's definition with AccessSelections/ModifyDefinition. Discover exact properties in its feature-data interface. Use generic API or scripts for indexed/method-based definitions. |
| solidworks_cam_connectA | Attach to the installed SOLIDWORKS CAM add-in and GetCWApp API. Optional exact GUID/ProgID. Add-in presence is distinct from API/license availability; inspect returned status. |
| solidworks_cam_statusA | Report observed CAM connection state; never treats an installed library as a license. |
| solidworks_cam_workflowA | Legacy low-level CAM action/args dispatcher retained for the small set of raw
|
| solidworks_scriptA | Execute trusted Python on the COM apartment (--allow-scripts required). Globals: sw, cad, cam, gateway, call(obj,member,*args), workspace, parameters. Assign result. Supports loops, equations, advanced features, assemblies and arbitrary add-ins. Full local code execution, not a sandbox. Prints are captured. Background jobs allow lengthy CAD/CAM computation. |
| solidworks_jobA | Poll job state/result without entering the busy COM queue. Failed jobs may have partial effects. |
| solidworks_cancel_jobA | Cancel a queued job only. A running native SOLIDWORKS call cannot be safely aborted. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| design_complex_part | Plan and execute a parametric part with explicit geometric verification. |
| design_assembly | Build an assembly with reusable parts, mate intent and validation. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| guide | Modeling strategy, units and bridge conventions. |
| workspace | |
| cam_guide |
TDQS
Scored across 40 tools
Most tools are clearly distinct by domain (sketch, feature, pattern, assembly, etc.), and the dispatcher design groups related operations under a single tool. However, generic tools like solidworks_api and solidworks_script overlap with all other tools, and legacy tools (solidworks_sketch_begin, solidworks_cam_workflow) partially duplicate functionality, creating minor selection ambiguity.
All tools share the 'solidworks_' prefix and use snake_case, with names clearly indicating their purpose. The pattern is consistent, though there is a mix of verb-led (connect, open, save) and noun-led (active_document, assembly_tree) names, and legacy tools like sketch_begin vs sketch and cam_workflow vs cam introduce slight inconsistency.
With 40 tools, the count is above the typical 3–15 range and exceeds the 25+ heavy threshold. However, the domain (full CAD/CAM automation) is extensive, and many tools are dispatchers covering multiple operations, so the number is justifiable, though it feels heavy for an agent to navigate.
The tool set covers document lifecycle, sketching, features, patterns, assemblies, parametric equations, materials, configurations, analysis, drawings, CAM, and persistent references. The inclusion of generic API and script tools ensures no capability gap, making the surface effectively complete for the stated SOLIDWORKS automation purpose.