solidworks-mcp
Click on "Install 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-mcpOpen bracket.step, analyze thickness, holes, bends, and export flat pattern as DXF."
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
MCP server that connects Claude Desktop to SolidWorks via COM API, enabling automated analysis of sheet metal parts for the tooling and stamping industry.
What it does
A tooling engineer can open Claude Desktop and say:
"Open
bracket.step, tell me the thickness, all hole diameters, number of bends, and export the flat pattern as a DXF."
Claude calls the MCP tools to:
Open the STEP in SolidWorks
Detect sheet metal, read thickness + K-factor
Enumerate and group all holes by diameter
Count and characterise each bend (angle, radius, length)
Flatten the part and export the flat pattern as DXF
Return a structured analysis report
Time saved: 60–90 minutes of manual inspection → ~60 seconds.
Related MCP server: Civil3D MCP Server
Try it without SolidWorks
Most of this project needs a licensed SolidWorks install, but
analyze_step_standalone runs anywhere CadQuery does. Against the test
fixture in this repo:
pip install -e .
conda install -c cadquery cadquery # see docs/INSTALL.md for the pip route
python -c "
from mcp.server.fastmcp import FastMCP
from solidworks_mcp.solidworks_bridge import SolidWorksBridge
from solidworks_mcp.tools.analysis import register
import json
mcp = FastMCP('demo'); register(mcp, SolidWorksBridge())
fn = mcp._tool_manager._tools['analyze_step_standalone'].fn
print(json.dumps(fn(file_path='tests/fixtures/sample_part.step'), indent=2))
"Actual output for sample_part.step — a 100 x 60 x 2 mm plate with four
Ø6 mm through holes (abridged; the full result also carries file_path,
the individual bounding-box bounds, and a units note):
{
"file_size_kb": 33.48,
"volume_mm3": 11773.81,
"surface_area_mm2": 12564.6,
"bounding_box": {
"dimensions_mm": [100.0, 60.0, 2.0]
},
"center_of_mass_mm": { "x": 0.0, "y": 0.0, "z": 1.0 },
"face_count": 10,
"face_types": { "PLANE": 6, "CYLINDER": 4 },
"estimated_thickness_mm": 2.0,
"is_likely_sheet_metal": true
}The four holes show up as the four cylindrical faces, and thickness is inferred from the smallest bounding-box dimension.
Prerequisites
Requirement | Version |
Windows | 10 or 11 (64-bit) |
Python | 3.10, 3.11 or 3.12 |
SolidWorks | Standard 2022 or newer (must be installed and licensed) |
Claude Desktop | latest |
SolidWorks must be installed and activated on the same machine as this server. The COM API requires the full application — SolidWorks PDM or Viewer are not sufficient.
Quick Install
REM 1. Clone the repository
git clone https://github.com/tmkaio/solidworks-mcp.git
cd solidworks-mcp
REM 2. Create a virtual environment
python -m venv .venv
.venv\Scripts\activate
REM 3. Install the package
pip install -e .
REM 4. (Optional) Install CadQuery for standalone STEP analysis
conda install -c cadquery cadqueryConfigure Claude Desktop
Copy claude_desktop_config.example.json and merge into your Claude config:
Location: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"solidworks": {
"command": "C:\\path\\to\\solidworks-mcp\\.venv\\Scripts\\python.exe",
"args": ["-m", "solidworks_mcp.server"],
"env": {
"PYTHONPATH": "C:\\path\\to\\solidworks-mcp\\src",
"LOG_LEVEL": "INFO"
}
}
}
}Restart Claude Desktop. A hammer icon (🔨) should appear in the chat toolbar.
See docs/INSTALL.md for a step-by-step guide.
Example conversation
You: Open C:\parts\door_hinge.step and give me a full analysis.
Claude: [calls open_file, get_part_info, analyze_holes, analyze_bends]
The door hinge is a sheet metal part:
- Thickness: 2.00 mm (K-factor: 0.44)
- Bounding box: 120 x 80 x 45 mm
- Mass: 312 g
- 12 holes: Ø6mm x 4, Ø8mm x 4, Ø12mm x 4
- 3 bends: 90° x R2mm (two) and 45° x R3mm (one)
- Complexity: medium
You: Export the flat pattern as DXF to C:\output\hinge_flat.dxf
Claude: [calls flatten_part, export_dxf, unflatten_part]
Flat pattern exported: C:\output\hinge_flat.dxf (18.4 KB)
Flat dimensions: 310 x 80 mmAvailable tools
Connection
Tool | Description |
| Connect to SolidWorks (start if not running) |
| Check connection state and active document |
| Release COM references |
Files
Tool | Description |
| Open STEP, SLDPRT, IGES, etc. |
| Close active document |
| Save / Save As |
| List all open files |
Analysis
Tool | Description |
| Mass, volume, material, sheet metal flag |
| L x W x H + diagonal |
| Feature histogram |
| All holes grouped by diameter |
| All bends with angle/radius/length |
| Executive summary + complexity rating |
| Full JSON + Markdown report |
| No SolidWorks needed — uses CadQuery |
| Ixx/Iyy/Izz + products of inertia |
| Face type breakdown (planar/cylindrical/etc.) |
Sheet Metal
Tool | Description |
| True/False check |
| Thickness, K-factor, bend radius |
| Convert imported solid to sheet metal |
| Activate flat pattern |
| Return to folded state |
Export
Tool | Description |
| Flat pattern -> DXF (for laser / NC) |
| Part -> STEP AP214 |
| Part -> STL |
| Document -> PDF |
| Viewport -> PNG |
Custom Properties & Materials
Tool | Description |
| Read all custom properties from active document |
| Read a single named property |
| Create or update a custom property |
| Remove a custom property |
| Assign a material from the SolidWorks library |
| List available .sldmat material databases |
Configurations
Tool | Description |
| List all configurations with active flag |
| Details of the current active configuration |
| Activate a different configuration |
| Create a new configuration (copy of existing) |
| Remove a configuration |
| Config-specific custom properties |
Measurements
Tool | Description |
| Distance between two named entities |
| Length/area/coordinates of a single entity |
| Area, normal, centroid of a face by index |
| Minimum clearance between two entities |
| Cross-section Ixx/Iyy/area/centroid |
Feature Management
Tool | Description |
| List FeatureManager tree (with type filter) |
| Type, suppression state, error for a feature |
| Suppress a feature in a configuration |
| Restore a suppressed feature |
| Parametric dimensions on a feature |
| Force rebuild (standard or full) |
| Describe a feature rebuild error |
Drawings
Tool | Description |
| Create new drawing from active part/assembly |
| Add standard/isometric view to drawing |
| List all views on the drawing |
| Sheet count, scale, paper size |
| Change drawing sheet scale |
Assemblies
Tool | Description |
| List all components (top-level or recursive) |
| Quick component count |
| Bill of Materials with quantities |
| List all mate constraints |
| Mass, path, bbox for a named component |
| Total assembly mass and centre of mass |
Limitations (v0.1)
Assembly support is read-only. Components, BOM, mates and mass can be read; creating mates or inserting components is not supported.
No parametric editing. Features can be listed, suppressed and unsuppressed, but dimensions cannot be driven.
STEP files import as "dumb" solids.
convert_to_sheet_metalmust run before bend analysis will return anything.No strip layout / progressive die design.
Windows only, and requires a licensed local SolidWorks install — the COM API needs the full application. The one exception is
analyze_step_standalone, which runs anywhere via CadQuery.
Roadmap
Version | Feature |
v0.2 | Strip layout tools — station configuration |
v0.3 | Force calculations (cut, bend, draw) |
Beyond that: formability and undercut detection, GD&T annotation on generated drawings, and nesting integration are all plausible directions, but nothing is committed.
Development
The test suite mocks the COM layer, so no SolidWorks licence is required to run it:
pip install -e ".[dev]"
ruff check src tests
pytest -vOn Windows that is the whole story: all 54 tests run. CI runs the same two
commands on Linux, installing the pure-Python dependencies directly rather
than via pip install -e ., because pywin32 has no Linux wheel.
Two groups skip themselves rather than fail when a dependency is absent:
the
connect()/disconnect()tests patchpythoncomandwin32com.clientby name, so they need pywin32 and run on Windows only;analyze_step_standaloneneeds CadQuery.
Everything else — the COM call contract, hole and bend extraction, unit conversion, feature traversal — runs everywhere.
Logs
Server logs: %USERPROFILE%\.solidworks-mcp\logs\server.log
Claude Desktop logs: %APPDATA%\Claude\logs\
License
MIT
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityDmaintenanceEnables users to control AutoCAD, GstarCAD, or ZWCAD through natural language via Claude Desktop. It provides tools for drawing geometric shapes, adding text and dimensions, and managing CAD files using the Windows COM interface.3MIT
- AlicenseNot gradedqualityDmaintenanceConnects Claude to a running Autodesk Civil 3D instance via COM automation to perform drawing, surface, alignment, COGO point, line, and corridor operations.7MIT
- FlicenseNot gradedqualityDmaintenanceEnables Claude to create and manipulate SolidWorks CAD models through natural language commands, automating part creation, sketching, and extrusion.9
- AlicenseBqualityCmaintenanceEnables connecting MCP clients to local SolidWorks for automated 3D part creation, template generation, file export, and basic review via natural language.101MIT
Related MCP Connectors
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Connect your team's living knowledge base — docs, data, issues, CRM — to Claude and ChatGPT.
Live SEO workflow tools for Claude Code, Codex, and AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/tmkaio/solidworks-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server