Skip to main content
Glama
tmkaio

solidworks-mcp

by tmkaio

solidworks-mcp

CI License: MIT Python 3.10+

MCP 服务器,通过 COM API 将 Claude Desktop 连接至 SolidWorks,为工装和冲压行业实现钣金零件的自动化分析。

它能做什么

模具工程师可以打开 Claude Desktop 并说:

"打开 bracket.step,告诉我厚度、所有孔的直径、折弯数量,并将展开图导出为 DXF。"

Claude 调用 MCP 工具来:

  1. 在 SolidWorks 中打开 STEP 文件

  2. 检测钣金,读取厚度 + K 因子

  3. 枚举并按直径对所有孔进行分组

  4. 统计并描述每个折弯(角度、半径、长度)

  5. 展开零件并将展开图导出为 DXF

  6. 返回结构化的分析报告

节省的时间: 60–90 分钟的人工检查 → 约 60 秒。

Related MCP server: Civil3D MCP Server

无需 SolidWorks 即可试用

这个项目的大部分功能需要已授权的 SolidWorks 安装,但 analyze_step_standalone 可以在任何支持 CadQuery 的环境中运行。以本仓库中的测试夹具为例:

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))
"

sample_part.step 的实际输出——一块 100 x 60 x 2 毫米的板材,带有四个 Ø6 毫米通孔(已删节;完整结果还包含 file_path、各个包围盒范围以及单位说明):

{
  "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
}

四个孔显示为四个圆柱面,厚度通过最小的包围盒尺寸推断得出。

先决条件

要求

版本

Windows

10 或 11(64 位)

Python

3.10、3.11 或 3.12

SolidWorks

Standard 2022 或更新版本(必须已安装并获得许可)

Claude Desktop

最新版本

SolidWorks 必须与这台服务器安装在同一台机器上并已激活。COM API 需要完整的应用程序——SolidWorks PDM 或 Viewer 是不够的。

快速安装

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 cadquery

配置 Claude Desktop

复制 claude_desktop_config.example.json 并合并到你的 Claude 配置中:

位置: %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"
      }
    }
  }
}

重新启动 Claude Desktop。聊天工具栏中应出现锤子图标(🔨)。

有关分步指南,请参阅 docs/INSTALL.md

示例对话

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 mm

可用工具

连接

工具

描述

solidworks_connect

连接到 SolidWorks(如果未运行则启动)

solidworks_status

检查连接状态和活动文档

solidworks_disconnect

释放 COM 引用

文件

工具

描述

open_file

打开 STEP、SLDPRT、IGES 等文件

close_file

关闭活动文档

save_file

保存 / 另存为

list_open_documents

列出所有打开的文件

分析

工具

描述

get_part_info

质量、体积、材料、钣金标志

get_bounding_box

长 x 宽 x 高 + 对角线

count_features_by_type

特征直方图

analyze_holes

所有孔按直径分组

analyze_bends

所有折弯及角度/半径/长度

get_geometry_stats

执行摘要 + 复杂度评级

generate_part_report

完整 JSON + Markdown 报告

analyze_step_standalone

无需 SolidWorks —— 使用 CadQuery

get_moments_of_inertia

Ixx/Iyy/Izz + 惯性积

analyze_faces

面类型细分(平面/圆柱面/等)

钣金

工具

描述

is_sheet_metal

True/False 检查

get_sheet_metal_properties

厚度、K 因子、折弯半径

convert_to_sheet_metal

将导入的实体转换为钣金

flatten_part

激活展开图

unflatten_part

返回折弯状态

导出

工具

描述

export_dxf

展开图 -> DXF(用于激光 / 数控)

export_step

零件 -> STEP AP214

export_stl

零件 -> STL

export_pdf

文档 -> PDF

take_screenshot

视口 -> PNG

自定义属性与材料

工具

描述

get_custom_properties

从活动文档读取所有自定义属性

get_custom_property

读取单个命名属性

set_custom_property

创建或更新自定义属性

delete_custom_property

删除自定义属性

set_material

从 SolidWorks 库分配材料

get_material_databases

列出可用的 .sldmat 材料数据库

配置

工具

描述

list_configurations

列出所有配置及其活动标志

get_active_configuration

当前活动配置的详细信息

switch_configuration

激活另一个配置

add_configuration

创建新配置(复制现有配置)

delete_configuration

删除配置

get_configuration_properties

配置特定的自定义属性

测量

工具

描述

measure_distance

两个命名实体之间的距离

measure_entity

单个实体的长度/面积/坐标

get_face_properties

按索引获取面的面积、法线、质心

measure_minimum_distance

两个实体之间的最小间隙

get_section_properties

横截面的 Ixx/Iyy/面积/质心

特征管理

工具

描述

list_features

列出 FeatureManager 设计树(带类型过滤器)

get_feature_info

特征的类型、压缩状态、错误

suppress_feature

在配置中压缩特征

unsuppress_feature

恢复被压缩的特征

get_feature_dimensions

特征上的参数化尺寸

rebuild_model

强制重建(标准或完全)

get_feature_error

描述特征重建错误

工程图

工具

描述

create_drawing_from_part

从活动零件/装配体创建新工程图

add_drawing_view

向工程图添加标准/等轴测视图

list_drawing_views

列出工程图上的所有视图

get_drawing_info

图纸数量、比例、纸张大小

set_drawing_scale

更改工程图图纸比例

装配体

工具

描述

get_assembly_components

列出所有零部件(顶层或递归)

get_component_count

快速零部件计数

get_assembly_bom

带数量的材料明细表(BOM)

list_assembly_mates

列出所有配合约束

get_component_info

指定名称的零部件的质量、路径、包围盒

get_assembly_mass

装配体总质量和质心

限制(v0.1)

  • 装配体支持是只读的。 可以读取零部件、BOM、配合和质量;不支持创建配合或插入零部件。

  • 不支持参数化编辑。 可以列出、压缩和取消压缩特征,但不能驱动尺寸。

  • STEP 文件以“哑”实体导入。 必须先运行 convert_to_sheet_metal,折弯分析才会返回任何结果。

  • 不支持条带排样 / 级进模设计。

  • 仅支持 Windows,并且需要已授权的本地 SolidWorks 安装——COM API 需要完整的应用程序。唯一的例外是 analyze_step_standalone,它可以通过 CadQuery 在任何环境运行。

路线图

版本

功能

v0.2

条带排样工具——工位配置

v0.3

力计算(冲裁、折弯、拉深)

除此之外:成形性和底切检测、在生成的工程图上标注 GD&T、以及排样集成都是可能的方向,但尚未承诺任何内容。

开发

测试套件模拟了 COM 层,因此运行它不需要 SolidWorks 许可证:

pip install -e ".[dev]"
ruff check src tests
pytest -v

在 Windows 上就是如此:全部 54 个测试都能运行。CI 在 Linux 上运行同样的两个命令,直接安装纯 Python 依赖,而不是通过 pip install -e .,因为 pywin32 没有 Linux wheel。

当缺少依赖时,两组测试会跳过自身而不是失败:

  • connect() / disconnect() 测试按名称模拟 pythoncomwin32com.client,因此它们需要 pywin32,并且只在 Windows 上运行;

  • analyze_step_standalone 需要 CadQuery。

其他所有内容——COM 调用契约、孔和折弯提取、单位转换、特征遍历——都可以在任何环境运行。

日志

服务器日志:%USERPROFILE%\.solidworks-mcp\logs\server.log

Claude Desktop 日志:%APPDATA%\Claude\logs\

许可证

MIT

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

UpdatingMaintainers
UpdatingResponse time
Release cycle
0Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects Claude to a running Autodesk Civil 3D instance via COM automation to perform drawing, surface, alignment, COGO point, line, and corridor operations.
    7
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to create and manipulate SolidWorks CAD models through natural language commands, automating part creation, sketching, and extrusion.
    9
  • A
    license
    B
    quality
    C
    maintenance
    Enables connecting MCP clients to local SolidWorks for automated 3D part creation, template generation, file export, and basic review via natural language.
    10
    1
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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