内容
# SketchupMCP - Sketchup 模型上下文协议集成
SketchupMCP 通过模型上下文协议(MCP)将 Sketchup 连接到 Claude AI,允许 Claude 直接与 Sketchup 交互并控制它。此集成实现了在 Sketchup 中进行提示辅助的 3D 建模、场景创建和操作。
特别感谢 [Blender MCP](https://github.com/ahujasid/blender-mcp) 提供的灵感和结构。
## 功能
* **双向通信**:通过 TCP 套接字连接将 Claude AI 连接到 Sketchup
* **组件操作**:在 Sketchup 中创建、修改、删除和转换组件
* **材质控制**:应用和修改材质和颜色
* **场景检查**:获取当前 Sketchup 场景的详细信息
* **选择处理**:获取和操作选定的组件
* **Ruby 代码评估**:在 SketchUp 中执行任意 Ruby 代码以进行高级操作
## 组件
该系统由两个主要组件组成:
1. **Sketchup 扩展程序**:一个 Sketchup 扩展程序,在 Sketchup 中创建一个 TCP 服务器,以接收和执行命令
2. **MCP 服务器(`sketchup_mcp/server.py`)**:一个 Python 服务器,实现模型上下文协议并连接到 Sketchup 扩展程序
## 安装
### Python 打包
我们使用 uv,因此您需要执行 ```brew install uv```
### Sketchup 扩展程序
1. 下载或构建最新的 `.rbz` 文件
2. 在 Sketchup 中,前往 窗口 > 扩展程序管理器
3. 点击“安装扩展程序”并选择下载的 `.rbz` 文件
4. 重启 Sketchup
## 使用
### 启动连接
1. 在 Sketchup 中,前往 扩展程序 > SketchupMCP > 启动服务器
2. 服务器将在默认端口(9876)启动
3. 确保 MCP 服务器在您的终端中运行
### 与 Claude 一起使用
通过在 Claude 配置中添加以下内容来配置 Claude 使用 MCP 服务器:
```json
"mcpServers": {
"sketchup": {
"command": "uvx",
"args": [
"sketchup-mcp"
]
}
}
```
这将从 PyPI 拉取[最新版本](https://pypi.org/project/sketchup-mcp/)
连接后,Claude 可以使用以下功能与 Sketchup 交互:
#### 工具
* `get_scene_info` - 获取当前 Sketchup 场景的信息
* `get_selected_components` - 获取当前选定组件的信息
* `create_component` - 创建具有指定参数的新组件
* `delete_component` - 从场景中删除组件
* `transform_component` - 移动、旋转或缩放组件
* `set_material` - 将材质应用于组件
* `export_scene` - 将当前场景导出为各种格式
* `eval_ruby` - 在 SketchUp 中执行任意 Ruby 代码以进行高级操作
### 示例命令
以下是一些您可以要求 Claude 执行的示例:
* “创建一个带有屋顶和窗户的简单房屋模型”
* “选择所有组件并获取它们的信息”
* “使选定的组件变为红色”
* “将选定的组件向上移动 10 个单位”
* “将当前场景导出为 3D 模型”
* “使用 Ruby 代码创建一个复杂的工艺柜”
## 故障排除
* **连接问题**:确保 Sketchup 扩展服务器和 MCP 服务器都正在运行
* **命令失败**:在 Sketchup 中检查 Ruby 控制台中的错误消息
* **超时错误**:尝试简化您的请求或将它们分成较小的步骤
## 技术细节
### 通信协议
该系统使用基于 JSON 的简单协议通过 TCP 套接字:
* **命令**作为具有 `type` 和可选 `params` 的 JSON 对象发送
* **响应**作为具有 `status` 和 `result` 或 `message` 的 JSON 对象
## 贡献
欢迎贡献!请随时提交拉取请求。
## 许可证
MIT