项目简介

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 提供可操作的对象信息。
  • 工具注册与调用: 虽然仓库描述中工具列表是硬编码在文档中,但代码结构支持工具的扩展和调用机制,为未来功能扩展奠定基础。

安装步骤

  1. 安装 Python 环境和依赖: 推荐使用 'uv' 管理 Python 环境。如果尚未安装 'uv',请先安装:
    brew install uv
  2. 安装 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 扩展的联动。

基本使用方法

  1. 启动 SketchUp 扩展服务器: 在 SketchUp 软件中,选择 扩展程序 (Extensions) > SketchupMCP > 启动服务器 (Start Server)。SketchUp 扩展服务器默认会在 9876 端口监听连接。
  2. 启动 Python MCP 服务器: 在命令行终端中,导航到包含 'src' 目录的仓库根目录,并执行以下命令启动 Python MCP 服务器:
    uv venv  # (如果尚未创建虚拟环境,则创建)
    uv pip install . # 安装 sketchup-mcp 包
    uvx sketchup-mcp # 启动服务器
    或者,如果直接运行 'src/sketchup_mcp/server.py' 文件:
    uv venv
    uv pip install -r requirements.txt # 如果有 requirements.txt 文件
    uv python src/sketchup_mcp/server.py
    确保 Python MCP 服务器成功启动,并显示 "SketchupMCP server starting up" 等日志信息。
  3. 配置并连接 MCP 客户端: 根据 MCP 客户端 (例如 Claude) 的文档,配置上述服务器连接信息。客户端应能自动连接到 SketchUp MCP Server。
  4. 使用自然语言指令: 在 MCP 客户端中,使用自然语言向 SketchUp 发送指令,例如 "创建一个立方体", "将选中的组件变为红色", "导出场景为 OBJ 文件" 等。LLM 会解析这些指令,并通过 MCP 协议与 SketchUp MCP Server 通信,控制 SketchUp 执行相应的操作。

验证连接: 成功连接后,当 MCP 客户端发送指令时,可以在 SketchUp 的 Ruby 控制台 (窗口 > Ruby 控制台) 以及 Python MCP 服务器的终端中看到相应的日志输出,表明通信链路已建立且运行正常。

信息

分类

桌面与硬件