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 功能。
成分
该系统由两个主要组件组成:
- Rhino 端脚本(
rhino_script.py
) :在 Rhino 内部运行的 Python 脚本,用于创建接收和执行命令的套接字服务器 - MCP 服务器 (
rhino_mcp/server.py
) :一个实现模型上下文协议 (MCP Protocol) 并连接到 Rhino 脚本的 Python 服务器
安装
先决条件
- Rhino 7 或更新版本
- Python 3.10 或更高版本
- uv 包管理器
- Conda(用于环境管理)或现有的 Python 安装
安装选项
安装 uv
如果您使用的是 Mac,请打开终端并运行:
在 Windows 上打开 Powershell 并运行
否则,安装说明在其网站上:安装 uv
⚠️ 在安装 UV 之前请勿继续
选项 1:使用 uvx/pip 快速安装(推荐)
首先,您需要与 Claude Desktop 集成:
- 前往 Claude Desktop > 设置 > 开发者 > 编辑配置
- 打开
claude_desktop_config.json
文件,添加以下配置:
- 保存文件
或者,如果您想使用 Cursor:对于 Mac 用户,请转到“设置”>“MCP”并粘贴以下内容
- 要用作全局服务器,请使用“添加新的全局 MCP 服务器”按钮并粘贴
- 要用作项目特定服务器,请在项目根目录中创建
.cursor/mcp.json
并粘贴
对于 Windows 用户,请转到“设置”>“MCP”>“添加服务器”,使用以下设置添加新服务器:
然后安装Rhino端脚本:
- 从存储库下载
rhino_script.py
文件 - 打开 Rhino
- 对于 Rhino 7:
- 打开 Python 编辑器:
- 点击“工具”菜单
- 选择“Python 编辑器”(或按 Ctrl+Alt+P / Cmd+Alt+P)
- 在 Python 编辑器中:
- 点击“文件”>“打开”
- 导航到并选择
rhino_script.py
- 单击“运行”(或按 F5)
- 打开 Python 编辑器:
- 对于 Rhino 8:
- 点击“工具”菜单
- 选择“RhinoScript”>“运行”
- 导航到并选择
rhino_script.py
- 脚本将自动启动,您应该在 Python 编辑器中看到这些消息:Copy
最后,重新启动 Claude Desktop,它将自动启动 MCP 服务器并连接到 Rhino
对于只想使用 RhinoMCP 而不修改其源代码的大多数用户,建议使用此方法。
您还可以观看此方法的视频教程:
选项 2:本地开发安装
如果您想修改源代码或者为项目做出贡献,您可以以开发模式安装它:
克隆存储库
使用 Conda
- 使用 Python 3.10 创建一个新的 conda 环境:Copy
- 安装
uv
包管理器:Copy - 以开发模式安装包:Copy
使用现有的 Python 安装
如果您已经安装了 Python,则可以将 MCP 服务器直接安装到您的基础环境中:
- 以开发模式安装包:Copy
- 请注意,对于 Claude Desktop 配置,您需要找到 Python 安装的正确系统路径。您可以通过运行以下命令找到它:Copy
Claude 桌面集成
与选项 1 相同,但您需要在claude_desktop_config.json
文件中指定 Python 解释器的完整路径:
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 服务器:
- 使用以下命令运行服务器:
python -m rhino_mcp.server_sse
- 将您的 Web 客户端连接到
ws://127.0.0.1:8080/sse
- 发送消息到
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 项目做出贡献!如果您有兴趣提供帮助,可以通过以下方式贡献:
- 错误报告:如果您发现错误,请创建一个问题,其中包含问题的详细描述和重现步骤。
- 功能请求:对新功能有什么想法?提交问题进行讨论。
- 代码贡献:想要添加功能或修复错误?
- 分叉存储库
- 为你的更改创建新的分支
- 提交拉取请求,并清晰描述你的更改
请确保您的代码遵循现有风格并包含适当的文档。
免责声明
本软件按“原样”提供,不提供任何明示或暗示的保证。REER, INC. 不就本软件提供任何保证、陈述或担保,包括但不限于质量、可靠性、兼容性或特定用途的适用性。
通过使用该软件,您承认并同意 REER, INC. 对因使用或无法使用该软件而产生的任何直接、间接、偶然、特殊或结果性损害不承担任何责任。
该项目正在积极开发中,可能存在错误或功能不完整。尽管我们力求质量和可靠性,但在生产环境中实施时仍请谨慎操作。
相关文档和资源
- MCP官方文档:
- 开源 MCP 文档: https://github.com/cyanheads/model-context-protocol-resources
- 用于构建AI代理界面的开放式Web UI: https://github.com/open-webui/open-webui
- 在 Stdio 服务器和 SSE 服务器之间切换: https://github.com/supercorp-ai/supergateway
This server cannot be installed
模型上下文协议服务器将 Rhino 和 Grasshopper 连接到 Claude AI,通过与 Rhino 环境的直接 AI 交互实现快速辅助 3D 建模、场景创建和操作。