内容
# SolidWorks MCP 服务器 🔧
> 通过Claude AI和模型上下文协议(MCP),使用自然语言自动控制SolidWorks
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://www.solidworks.com/)
[](https://modelcontextprotocol.io/)
---
## 🎯 什么是SolidWorks MCP服务器?
**SolidWorks MCP服务器**是一个生产就绪的[模型上下文协议](https://modelcontextprotocol.io/)服务器,允许Claude AI通过自然语言控制SolidWorks。您无需手动点击菜单,只需告诉Claude您要设计的内容,它就会为您构建。
**示例提示:**
- *"创建一个新零件,绘制一个半径为30mm的圆并将其拉伸15mm"*
- *"在所有边缘添加2mm的圆角"*
- *"绘制一个六边形并切除10mm"*
- *"列出当前零件中的所有特征"*
---
## ✨ 功能特点
- ✅ **22种工具**,涵盖零件、草图、特征和实用工具
- ✅ **兼容SolidWorks 2023–2025**,具有版本感知API回退
- ✅ **自动检测SolidWorks**安装,通过Windows注册表
- ✅ **多单位支持** — 毫米、厘米、英寸、米、英尺
- ✅ **模块化架构** — 清洁、可扩展的Python包
- ✅ **强大的错误处理** — COM API的级联回退链
- ✅ **JSON配置** — 轻松自定义,无需修改代码
- ✅ **全面的日志记录** — 完整的调试输出,用于故障排除
---
## 🛠️ 可用工具
| 类别 | 工具 | 描述 |
|----------|------|-------------|
| **连接** | `connect_solidworks` | 连接到正在运行的SolidWorks实例 |
| **连接** | `get_solidworks_info` | 获取版本和安装信息 |
| **文档** | `create_new_part` | 创建新的零件文档 |
| **文档** | `create_new_assembly` | 创建新的装配文档 |
| **文档** | `open_document` | 打开现有的SolidWorks文件 |
| **文档** | `close_document` | 关闭活动文档 |
| **文档** | `save_document` | 保存活动文档 |
| **文档** | `list_open_documents` | 列出所有打开的文档 |
| **草图** | `create_sketch` | 在平面(前/上/右)上创建草图 |
| **草图** | `close_sketch` | 退出活动草图 |
| **草图** | `draw_circle` | 通过中心和半径绘制圆 |
| **草图** | `draw_rectangle` | 通过两个角点绘制矩形 |
| **草图** | `draw_line` | 在两点之间绘制线 |
| **草图** | `draw_arc` | 通过中心和角度绘制弧 |
| **草图** | `draw_polygon` | 绘制正多边形(三角形、六边形等) |
| **特征** | `extrude_sketch` | 拉伸活动草图 |
| **特征** | `cut_extrude` | 切除以去除材料 |
| **特征** | `fillet_edges` | 在选定边缘上添加圆角 |
| **特征** | `chamfer_edges` | 在选定边缘上添加倒角 |
| **特征** | `list_features` | 列出模型中的所有特征 |
| **实用工具** | `set_units` | 更改默认单位(毫米/英寸/厘米/米/英尺) |
| **实用工具** | `execute_python` | 在SW上下文中执行自定义Python代码 |
---
## 📋 要求
- **操作系统:** Windows 10 或 Windows 11
- **SolidWorks:** 2023、2024 或 2025(必须安装并获得许可)
- **Python:** 3.10 或更高版本
- **Claude:** Claude 桌面应用程序或 Claude 代码
---
## ⚡ 快速入门
### 1. 克隆仓库
```bash
git clone https://github.com/alisamsam/solidworks-mcp.git
cd solidworks-mcp
```
### 2. 安装依赖项
```bash
pip install -r requirements.txt
```
### 3. 配置Claude桌面应用程序
将以下内容添加到您的 `claude_desktop_config.json`:
**位置:** `C:\Users\YOUR_NAME\AppData\Roaming\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"solidworks": {
"command": "python",
"args": ["C:\\path\\to\\solidworks-mcp\\solidworks_mcp_server.py"]
}
}
}
```
### 4. 启动
1. 首先打开 **SolidWorks**
2. 重新启动 **Claude 桌面应用程序**
3. 在Claude中输入: *"连接至SolidWorks"*
4. 开始设计! 🎉
---
## 📁 项目结构
```
solidworks-mcp/
├── solidworks_mcp_server.py # 入口点
├── solidworks_mcp/ # 主包
│ ├── __init__.py # 包导出(v3.0.0)
│ ├── server.py # MCP服务器和工具定义
│ ├── config.py # 配置管理
│ ├── config.json # 默认设置
│ ├── constants.py # SolidWorks常量和枚举
│ ├── automation/ # 核心自动化模块
│ │ ├── base.py # 连接管理
│ │ ├── documents.py # 文档操作
│ │ ├── sketches.py # 草图操作
│ │ └── features.py # 特征操作(SW 2025 固定)
│ └── utils/ # 实用模块
│ ├── units.py # 单位转换系统
│ └── sw_finder.py # 自动检测SolidWorks
├── requirements.txt
├── .gitignore
└── DEVELOPMENT_ROADMAP.md # 未来发展计划
```
---
## ⚙️ 配置
编辑 `solidworks_mcp/config.json` 以自定义行为:
```json
{
"exe_path": "auto",
"default_unit": "mm",
"startup_timeout": 120,
"log_level": "INFO",
"default_extrude_depth": 10.0,
"default_fillet_radius": 2.0
}
```
| 设置 | 默认值 | 描述 |
|---------|---------|-------------|
| `exe_path` | `"auto"` | SLDWORKS.exe的路径或自动检测 |
| `default_unit` | `"mm"` | 所有尺寸的默认单位 |
| `startup_timeout` | `120` | 等待SW启动的秒数 |
| `log_level` | `"INFO"` | 日志详细程度 |
---
## 🔧 SolidWorks 2025 兼容性
该服务器包含针对SolidWorks 2025 API更改的特殊处理:
- **挤出回退链:** `FeatureExtrusion3` → `FeatureExtrusion2` → `FeatureBossSimple`
- **安全属性访问** 用于 `feat.Name`、`feat.GetTypeName2()`、`IsSuppressed2()`
- **stdout捕获** 用于 `execute_python` 工具
- **基于注册表** 的SolidWorks自动检测
---
## 🤝 贡献
欢迎贡献!请:
1. 分叉仓库
2. 创建一个功能分支: `git checkout -b feature/my-feature`
3. 提交更改: `git commit -m "Add my feature"`
4. 推送到分支: `git push origin feature/my-feature`
5. 打开拉取请求
---
## 📄 许可证
该项目在 **MIT 许可证** 下获得许可 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
---
## 👤 作者
**Samsaam Ali Baig**
- GitHub: [@alisamsam](https://github.com/alisamsam)
---
## 🙏 致谢
- [Anthropic](https://anthropic.com) 提供Claude AI和MCP框架
- [SolidWorks](https://www.solidworks.com) COM API文档
- 灵感来自 [ros2-claude-code-template](https://github.com/harunkurt/ros2-claude-code-template) 由Harun KURT创建
---
⭐ **如果这个项目对您有帮助,请给它一个星标!**