通过 SSH,让 macOS 上的 Codex 安全调用局域网 Windows 交互式桌面会话中的 SolidWorks 2024。项目把上游 SolidWorks MCP 白名单工具封装成一条不暴露局域网端口的 通信链路:
Codex (macOS)
-> SSH STDIO
-> Windows OpenSSH raw proxy
-> 127.0.0.1 authenticated broker
-> interactive-session MCP server
-> pywin32/comtypes
-> SolidWorks 2024
本项目基于 wzyn20051216/solidworks-automation-skill。
- 原作者:
wzyn20051216、zuoliangyu(取自上游setup.py、package.json和project.yaml) - 原始版权:Copyright (c) 2026 SolidWorks Automation Skill Contributors
- 许可证:MIT
- 上游源码与原始许可证(Git submodule):
upstream/solidworks-automation/
详细来源和本地修改见 UPSTREAM.md 与 NOTICE.md。 本项目与 Dassault Systèmes 或 SOLIDWORKS 官方无隶属或背书关系。
Windows OpenSSH 进程通常不在 SolidWorks 所在的 RDP/console 会话。直接通过 SSH
启动 COM 脚本可能找不到活动实例,或启动一个隔离、不可见的 SolidWorks。这里使用
SolidWorksRemoteMCPBroker 计划任务,让真正的 MCP Server 始终运行在已登录用户的
交互式会话。
完整通信和生命周期说明见 docs/ARCHITECTURE.md。
.
├── .codex/config.toml # 项目级 Codex MCP 配置
├── bridge/
│ ├── interactive_mcp_broker.py # Windows 交互会话 Broker
│ ├── remote_stdio_proxy.py # SSH 会话原始字节代理
│ ├── probe_remote_mcp.py # 端到端健康/建模探针
│ ├── call_remote_mcp.py # 调用单个白名单 MCP 工具的 CLI
│ └── install_windows.ps1 # Windows 安装与计划任务注册
├── scripts/
│ ├── install_macos.sh # 安装 Skill 并注册全局 MCP
│ └── sync_to_windows.sh # 同步项目到 Windows
├── skill/solidworks-remote/ # macOS 控制端 Skill
├── tests/ # Broker/认证/STDIO 测试
├── patches/solidworks-automation/ # 尚未进入上游的可重放兼容补丁
└── upstream/solidworks-automation/ # 跟踪上游 main 的 Git submodule
Mac:
- Codex desktop/CLI
ssh windows可免密登录目标电脑
Windows:
- Windows 10/11
- SolidWorks 2024,并至少启动过一次
- 目标用户保持登录;RDP 可断开或锁定,但不可注销
克隆本项目时需要同时初始化 submodule:
git clone --recurse-submodules https://github.com/yedvvard/solidworks-remote-bridge.git若已经克隆了外层仓库:
git submodule update --init --recursive将 submodule 更新到上游 main 的最新提交:
./scripts/update_upstream.sh
git add upstream/solidworks-automation
git commit -m "Update SolidWorks automation upstream"需要基于上游其他远端分支开发时:
git -C upstream/solidworks-automation fetch origin
git -C upstream/solidworks-automation switch --track origin/<branch>完成迭代后,在 submodule 自己的远端分支中提交并推送,再由外层仓库记录新的
submodule commit。UPSTREAM.md 说明了分支、提交指针和本地补丁之间的关系。
当前保留了一份尚未进入上游的 Motion 兼容补丁。需要它时显式执行:
./scripts/apply_upstream_patches.sh补丁会使 submodule 工作区呈现修改状态;切换或拉取其他分支前,应先提交到你的 submodule 分支,或恢复到外层仓库记录的提交:
git submodule update --force --checkout -- upstream/solidworks-automation默认 SSH 主机名是 windows,Windows 用户目录是 C:\Users\shai:
./scripts/install_macos.sh自定义时使用:
SOLIDWORKS_REMOTE_HOST=my-windows \
SOLIDWORKS_REMOTE_PROXY='C:\Users\my-user\solidworks-remote\bridge\remote_stdio_proxy.py' \
./scripts/install_macos.sh./scripts/sync_to_windows.sh可通过 SOLIDWORKS_REMOTE_HOST 和 SOLIDWORKS_REMOTE_ROOT 覆盖默认目标。
若尚未安装 Python:
winget install --id Python.Python.3.12 --exact --scope user --accept-package-agreements --accept-source-agreements然后从 Mac 执行:
ssh windows powershell -NoProfile -ExecutionPolicy Bypass -File \
C:\Users\shai\solidworks-remote\bridge\install_windows.ps1安装器会安装最小 MCP/COM 依赖、生成当前用户专属密钥、注册交互式计划任务并运行 SolidWorks 预检。
重启后即可使用 solidworks_remote MCP 中的 solidworks_* 和 cadstudio_* 工具。
只检查 Broker:
ssh windows py -3.12 C:\Users\shai\solidworks-remote\bridge\remote_stdio_proxy.py --check检查完整 MCP 与实时 COM:
ssh windows py -3.12 C:\Users\shai\solidworks-remote\bridge\probe_remote_mcp.py --live运行 Mac 本地测试:
python3 -m unittest discover -s tests -v- 只使用上游 MCP 暴露的白名单工具,不开放任意 Python/VBA 执行。
- 所有 SolidWorks 写操作串行执行。
capabilities.yaml仍是能力等级唯一真源。- 每次模型修改都应保存原生文件、导出所需开放格式并调用
solidworks_review_active。 - 密钥、日志、模型输出和诊断状态不得提交到 Git。