SketchUp MCP 中文本地化 Skill
概述
本 Skill 将 SketchUp 与支持 MCP 协议的 AI 助手通过模型上下文协议(Model Context Protocol, MCP)连接起来,实现 AI 直接控制 SketchUp 进行 3D 建模、场景操控和木工设计。
灵感来源于 Blender MCP 开源项目。
功能特性
- 双向通信:通过 TCP 套接字连接 AI 助手与 SketchUp
- 组件操作:在 SketchUp 中创建、修改、删除和变换组件
- 材质控制:应用和修改材质及颜色(支持中文颜色名称)
- 场景查看:获取当前 SketchUp 场景的详细信息
- 选择处理:获取和操作已选中的组件
- Ruby 代码执行:在 SketchUp 中执行任意 Ruby 代码,实现高级操作
- 木工榫卯:支持燕尾榫、指接榫、榫卯等传统木工连接方式
- 布尔运算:并集、差集、交集等几何运算
系统组成
本系统包含两个主要组件:
- SketchUp 扩展:在 SketchUp 内部创建 TCP 服务器,接收并执行命令
- MCP 服务器(
sketchup_mcp/server.py):Python 服务器,实现 MCP 协议并连接 SketchUp 扩展
安装说明
Python 环境准备
本 Skill 已包含完整的 MCP 服务器源码,在 Skill 根目录下本地安装即可:
pip install .
SketchUp 扩展安装
- 下载最新的
.rbz扩展文件 - 在 SketchUp 中,进入 窗口 > 扩展管理器
- 点击 安装扩展,选择下载的
.rbz文件 - 重启 SketchUp
AI 助手配置
在支持 MCP 的 AI 助手配置中添加以下内容:
{
"mcpServers": {
"sketchup": {
"command": "python",
"args": [
"-m",
"sketchup_mcp"
]
}
}
}
使用方法
启动连接
- 在 SketchUp 中,进入 扩展 > SketchUp MCP > 启动服务器
- 服务器将在默认端口 9876 上启动
- 确保 MCP 服务器在终端中已运行
可用工具
| 工具名称 | 说明 |
|---|---|
get_scene_info |
获取当前 SketchUp 场景信息 |
get_selected_components |
获取当前选中的组件信息 |
create_component |
创建新组件(支持立方体、圆柱体、球体、圆锥体) |
delete_component |
删除指定组件 |
transform_component |
移动、旋转或缩放组件 |
set_material |
为组件应用材质 |
export_scene |
导出当前场景(支持 skp/obj/dae/stl/png 等格式) |
eval_ruby |
在 SketchUp 中执行任意 Ruby 代码 |
create_mortise_tenon |
创建榫卯连接 |
create_dovetail |
创建燕尾榫连接 |
create_finger_joint |
创建指接榫(箱榫) |
boolean_operation |
执行布尔运算(并集/差集/交集) |
示例指令
以下是您可以向 AI 助手发出的示例指令:
- "创建一个带屋顶和窗户的简单房屋模型"
- "选中所有组件并获取它们的信息"
- "将选中的组件设为红色"
- "将选中的组件向上移动 10 个单位"
- "将当前场景导出为 3D 模型"
- "使用 Ruby 代码创建一个复杂的新艺术风格橱柜"
- "在两个木板之间创建燕尾榫连接"
技术细节
通信协议
系统使用基于 TCP 套接字的简单 JSON 协议:
- 命令:以 JSON 对象发送,包含
type和可选的params - 响应:JSON 对象,包含
status和result或message
支持的材质颜色(中文名称)
系统支持以下中文颜色名称,AI 可直接使用:
| 中文名称 | 英文名称 | RGB 值 |
|---|---|---|
| 红色 | red | 255, 0, 0 |
| 绿色 | green | 0, 255, 0 |
| 蓝色 | blue | 0, 0, 255 |
| 黄色 | yellow | 255, 255, 0 |
| 青色/ turquoise | cyan / turquoise | 0, 255, 255 |
| 品红/紫色 | magenta / purple | 255, 0, 255 |
| 白色 | white | 255, 255, 255 |
| 黑色 | black | 0, 0, 0 |
| 棕色 | brown | 139, 69, 19 |
| 橙色 | orange | 255, 165, 0 |
| 灰色 | gray / grey | 128, 128, 128 |
同时也支持十六进制颜色代码(如 #FF0000)。
单位说明
本 Skill 默认使用毫米(mm)作为建模单位,适合中国用户的使用习惯。所有尺寸参数均按毫米处理。
故障排除
- 连接问题:确保 SketchUp 扩展服务器和 MCP 服务器都在运行
- 命令失败:检查 SketchUp 的 Ruby 控制台中的错误信息
- 超时错误:尝试简化请求或将其拆分为多个步骤
许可证
MIT 许可证