RhinoMCP

by reer-ide
MIT License

RhinoMCP - Rhino 模型上下文协议集成

该项目由 REER, INC. 开发,并向社区公开使用和测试。我们欢迎贡献者帮助改进和扩展 RhinoMCP 的功能。RhinoMCP 通过模型上下文协议 (MCP) 将 Rhino、Grasshopper 等软件连接到 Claude AI,使 Claude 能够直接与 Rhino 交互并控制 Rhino。此集成支持快速辅助 3D 建模、场景创建和操作。(灵感来自blender_mcp

该项目提供了两种服务器实现:

  • 用于 Claude Desktop 集成的标准 Stdio 协议 MCP 服务器
  • 用于自定义 Web 客户端集成的 SSE(服务器端事件)协议服务器

特征

犀牛
  • 双向通信:通过基于套接字的服务器将 Claude AI 连接到 Rhino
  • 对象操作和管理:在 Rhino 中创建和修改 3D 对象(包括元数据)
  • 图层管理:查看并与 Rhino 图层交互
  • 场景检查:获取有关当前 Rhino 场景的详细信息(包括屏幕截图)
  • 代码执行:通过 Claude 在 Rhino 中运行任意 Python 代码
  • 对象选择:获取有关 Rhino 中当前选定对象的信息
  • RhinoScriptSyntax 文档:查找 RhinoScriptSyntax 的文档
Grasshopper(正在开发中)

重要提示:虽然 Claude 中似乎提供了 Grasshopper 集成工具,但它们仍在积极开发中,尚未完全可用。我们正在努力在未来的版本中实现完整的 Grasshopper 功能。

成分

该系统由两个主要组件组成:

  1. Rhino 端脚本( rhino_script.py :在 Rhino 内部运行的 Python 脚本,用于创建接收和执行命令的套接字服务器
  2. MCP 服务器 ( rhino_mcp/server.py ) :一个实现模型上下文协议 (MCP Protocol) 并连接到 Rhino 脚本的 Python 服务器

安装

先决条件

  • Rhino 7 或更新版本
  • Python 3.10 或更高版本
  • uv 包管理器
  • Conda(用于环境管理)或现有的 Python 安装

安装选项

安装 uv

如果您使用的是 Mac,请打开终端并运行:

wget -qO- https://astral.sh/uv/install.sh | sh

在 Windows 上打开 Powershell 并运行

irm https://astral.sh/uv/install.ps1 | iex

否则,安装说明在其网站上:安装 uv

⚠️ 在安装 UV 之前请勿继续

选项 1:使用 uvx/pip 快速安装(推荐)

首先,您需要与 Claude Desktop 集成:

  1. 前往 Claude Desktop > 设置 > 开发者 > 编辑配置
  2. 打开claude_desktop_config.json文件,添加以下配置:
{ "mcpServers": { "rhino": { "command": "uvx", "args": ["reer-rhino-mcp"] } } }
  1. 保存文件

或者,如果您想使用 Cursor:对于 Mac 用户,请转到“设置”>“MCP”并粘贴以下内容

  • 要用作全局服务器,请使用“添加新的全局 MCP 服务器”按钮并粘贴
  • 要用作项目特定服务器,请在项目根目录中创建.cursor/mcp.json并粘贴
{ "mcpServers": { "rhino": { "command": "uvx", "args": [ "reer-rhino-mcp" ] } } }

对于 Windows 用户,请转到“设置”>“MCP”>“添加服务器”,使用以下设置添加新服务器:

{ "mcpServers": { "rhino": { "command": "cmd", "args": [ "/c", "uvx", "reer-rhino-mcp" ] } } }

然后安装Rhino端脚本:

  1. 从存储库下载rhino_script.py文件
  2. 打开 Rhino
  3. 对于 Rhino 7:
    • 打开 Python 编辑器:
      • 点击“工具”菜单
      • 选择“Python 编辑器”(或按 Ctrl+Alt+P / Cmd+Alt+P)
    • 在 Python 编辑器中:
      • 点击“文件”>“打开”
      • 导航到并选择rhino_script.py
      • 单击“运行”(或按 F5)
  4. 对于 Rhino 8:
    • 点击“工具”菜单
    • 选择“RhinoScript”>“运行”
    • 导航到并选择rhino_script.py
  5. 脚本将自动启动,您应该在 Python 编辑器中看到这些消息:
    RhinoMCP script loaded. Server started automatically. To stop the server, run: stop_server()

最后,重新启动 Claude Desktop,它将自动启动 MCP 服务器并连接到 Rhino

对于只想使用 RhinoMCP 而不修改其源代码的大多数用户,建议使用此方法。

您还可以观看此方法的视频教程:

选项 2:本地开发安装

如果您想修改源代码或者为项目做出贡献,您可以以开发模式安装它:

克隆存储库

使用 Conda
  1. 使用 Python 3.10 创建一个新的 conda 环境:
    conda create -n rhino_mcp python=3.10 conda activate rhino_mcp
  2. 安装uv包管理器:
    pip install uv
  3. 以开发模式安装包:
    uv pip install -e .
使用现有的 Python 安装

如果您已经安装了 Python,则可以将 MCP 服务器直接安装到您的基础环境中:

  1. 以开发模式安装包:
    pip install -e .
  2. 请注意,对于 Claude Desktop 配置,您需要找到 Python 安装的正确系统路径。您可以通过运行以下命令找到它:
    which python # On macOS/Linux where python # On Windows
Claude 桌面集成

与选项 1 相同,但您需要在claude_desktop_config.json文件中指定 Python 解释器的完整路径:

{ "mcpServers": { "rhino": { "command": "/your/python/path", "args": ["-m", "rhino_mcp.server"] } } }

Python 路径示例:

  • Windows: C:\\Users\\username\\anaconda3\\envs\\rhino_mcp\\python.exe
  • macOS: /Users/username/anaconda3/envs/rhino_mcp/bin/python

请确保:

  • 如果使用第二种方法,请将 Python 路径替换为 conda 环境中的 Python 路径或系统 Python 路径
  • 保存文件并重新启动Claude Desktop

**重要提示:**如果您使用的是 conda 环境,则必须指定 Python 解释器的完整路径,如上所示。

SSE(服务器端事件)协议 Rhino MCP 服务器

SSE 服务器是 Rhino MCP 服务器的替代实现,它使用服务器端事件进行实时通信。该服务器运行在127.0.0.1:8080上,旨在与自定义 Web 客户端配合使用。它提供与标准 MCP 服务器相同的功能,但使用更适合 Web 应用程序的不同传输协议。

要使用 SSE 服务器:

  1. 使用以下命令运行服务器: python -m rhino_mcp.server_sse
  2. 将您的 Web 客户端连接到ws://127.0.0.1:8080/sse
  3. 发送消息到http://127.0.0.1:8080/messages/

SSE 服务器支持与标准 MCP 服务器相同的所有 Rhino 操作,使其成为构建用于 Rhino 控制的自定义 Web 界面的理想选择。

用法

与 Claude 一起使用

一旦连接,Claude 或其他 LLM 可以使用以下 MCP 工具:

  • get_rhino_scene_info() :获取以图层和示例对象为重点的简化场景信息
  • get_rhino_layers() :获取 Rhino 场景中所有图层的信息
  • execute_code(code)任意 Python 代码
  • get_rhino_objects_with_metadata(filters, metadata_fields) :获取场景中对象的详细信息及其元数据,并可选择进行过滤
  • capture_rhino_viewport(layer, show_annotations, max_size) :使用可选注释和图层过滤捕获视口
  • get_rhino_selected_objects(include_lights, include_grips) :获取有关 Rhino 视口中当前选定对象的信息
  • look_up_RhinoScriptSyntax(function_name) :直接从 Rhino3D 开发者网站查找 RhinoScriptSyntax 函数的文档

示例命令

以下是您可以要求克劳德做的事情的一些示例:

  • “获取有关当前 Rhino 场景的信息”
  • “在原点处创建一个立方体”
  • “获取 Rhino 文档中的所有图层”
  • “在 Rhino 中执行此 Python 代码:...”
  • “你能告诉我在 Rhino 中选择的墙的尺寸吗?”
  • “帮我计算 Rhino 中选定楼层的表面积”
  • “显示 SelectedObjects 函数的文档”
  • “如何在 Rhino Script 中使用 AddCylinder 函数?”
  • ...

贡献

我们欢迎大家为 RhinoMCP 项目做出贡献!如果您有兴趣提供帮助,可以通过以下方式贡献:

  1. 错误报告:如果您发现错误,请创建一个问题,其中包含问题的详细描述和重现步骤。
  2. 功能请求:对新功能有什么想法?提交问题进行讨论。
  3. 代码贡献:想要添加功能或修复错误?
    • 分叉存储库
    • 为你的更改创建新的分支
    • 提交拉取请求,并清晰描述你的更改

请确保您的代码遵循现有风格并包含适当的文档。

免责声明

本软件按“原样”提供,不提供任何明示或暗示的保证。REER, INC. 不就本软件提供任何保证、陈述或担保,包括但不限于质量、可靠性、兼容性或特定用途的适用性。

通过使用该软件,您承认并同意 REER, INC. 对因使用或无法使用该软件而产生的任何直接、间接、偶然、特殊或结果性损害不承担任何责任。

该项目正在积极开发中,可能存在错误或功能不完整。尽管我们力求质量和可靠性,但在生产环境中实施时仍请谨慎操作。

相关文档和资源

-
security - not tested
-
license - not tested
-
quality - not tested

模型上下文协议服务器将 Rhino 和 Grasshopper 连接到 Claude AI,通过与 Rhino 环境的直接 AI 交互实现快速辅助 3D 建模、场景创建和操作。

  1. 特征
    1. 犀牛
    2. Grasshopper(正在开发中)
  2. 成分
    1. 安装
      1. 先决条件
      2. 安装选项
    2. 安装 uv
      1. 选项 1:使用 uvx/pip 快速安装(推荐)
      2. 选项 2:本地开发安装
      3. SSE(服务器端事件)协议 Rhino MCP 服务器
    3. 用法
      1. 与 Claude 一起使用
      2. 示例命令
    4. 贡献
      1. 免责声明
        1. 相关文档和资源
          ID: d0aebegt2e