项目简介
SketchUp MCP Server 是一个基于模型上下文协议 (MCP) 的服务器实现,旨在连接 SketchUp 3D 建模软件与大型语言模型 (LLM),例如 Claude。通过此服务器,用户可以使用自然语言指令,让 LLM 操控 SketchUp 进行 3D 模型创建、编辑和场景管理,极大地提升了 3D 建模的智能化水平和操作效率。
主要功能点
- 双向通信: 通过 TCP 套接字实现 LLM 客户端与 SketchUp 之间的实时双向通信,确保指令和数据的高效传输。
- 组件和材质操作: 支持在 SketchUp 中创建、修改、删除和变换 3D 组件,以及应用和修改材质与颜色,实现精细的模型控制。
- 场景信息获取: 允许 LLM 获取当前 SketchUp 场景的详细信息,为智能决策提供上下文依据。
- Ruby 代码执行: 具备执行任意 SketchUp Ruby API 代码的能力,支持高级和定制化的模型操作需求。
- 资源管理: 能够列出 SketchUp 场景中的资源(如组件),为 LLM 提供可操作的对象信息。
- 工具注册与调用: 虽然仓库描述中工具列表是硬编码在文档中,但代码结构支持工具的扩展和调用机制,为未来功能扩展奠定基础。
安装步骤
- 安装 Python 环境和依赖: 推荐使用 'uv' 管理 Python 环境。如果尚未安装 'uv',请先安装:
brew install uv - 安装 SketchUp 扩展:
- 下载或构建最新的 '.rbz' 扩展文件 (仓库中 'su_mcp/package.rb' 可以用于构建 '.rbz' 文件)。
- 在 SketchUp 中,打开 窗口 (Window) > 扩展管理器 (Extension Manager)。
- 点击 安装扩展 (Install Extension) 按钮,选择下载的 '.rbz' 文件进行安装。
- 安装完成后,重启 SketchUp。
服务器配置
MCP 客户端(例如 Claude)需要配置以下 JSON 信息以连接 SketchUp MCP Server。这里的配置描述了如何启动和连接到 SketchUp MCP 服务器,客户端会根据这些配置与服务器建立连接,并发送符合 MCP 协议的请求。
{ "servers": { "sketchup": { "command": "uvx", "args": [ "sketchup-mcp" ] } } }
配置参数说明:
- '"sketchup"': 服务器名称,客户端用此名称标识和调用 SketchUp MCP Server。
- '"command"': 启动 MCP 服务器的命令。 '"uvx"' 表示使用 'uvx' (由 'uv' 包提供的执行器) 来运行 Python 包。
- '"args"': 传递给启动命令的参数,这里 '"sketchup-mcp"' 指示 'uvx' 执行 'sketchup-mcp' 这个 Python 包,即启动 'src/sketchup_mcp/main.py' 定义的服务器。
注意: 上述配置假设 MCP 客户端能够执行 Python 环境,并且 'sketchup-mcp' Python 包已安装。 实际使用时,MCP 客户端可能会有不同的配置方式,但核心的 'command' 和 'args' 参数的含义是类似的,即指定如何启动 SketchUp MCP Server 的 Python 后端。 仓库的 'README.md' 文件中描述的 Claude 配置示例,实际上是指示 Claude 如何找到并启动 Python MCP 服务器,从而实现与 SketchUp 扩展的联动。
基本使用方法
- 启动 SketchUp 扩展服务器: 在 SketchUp 软件中,选择 扩展程序 (Extensions) > SketchupMCP > 启动服务器 (Start Server)。SketchUp 扩展服务器默认会在 9876 端口监听连接。
- 启动 Python MCP 服务器: 在命令行终端中,导航到包含 'src' 目录的仓库根目录,并执行以下命令启动 Python MCP 服务器:
或者,如果直接运行 'src/sketchup_mcp/server.py' 文件:uv venv # (如果尚未创建虚拟环境,则创建) uv pip install . # 安装 sketchup-mcp 包 uvx sketchup-mcp # 启动服务器
确保 Python MCP 服务器成功启动,并显示 "SketchupMCP server starting up" 等日志信息。uv venv uv pip install -r requirements.txt # 如果有 requirements.txt 文件 uv python src/sketchup_mcp/server.py - 配置并连接 MCP 客户端: 根据 MCP 客户端 (例如 Claude) 的文档,配置上述服务器连接信息。客户端应能自动连接到 SketchUp MCP Server。
- 使用自然语言指令: 在 MCP 客户端中,使用自然语言向 SketchUp 发送指令,例如 "创建一个立方体", "将选中的组件变为红色", "导出场景为 OBJ 文件" 等。LLM 会解析这些指令,并通过 MCP 协议与 SketchUp MCP Server 通信,控制 SketchUp 执行相应的操作。
验证连接: 成功连接后,当 MCP 客户端发送指令时,可以在 SketchUp 的 Ruby 控制台 (窗口 > Ruby 控制台) 以及 Python MCP 服务器的终端中看到相应的日志输出,表明通信链路已建立且运行正常。
信息
分类
桌面与硬件