使用说明
犀牛gh-mcp
MCP服务器+Rhino/Grashopper插件,让LLM读取和驱动 实时Rhino 8建模会议——用于参数化设计、建筑 研究和教学。
📖 项目新手?从 示例工作流指南 — 从首次连接到外观研究的常见工作流程的演练。
状态:v0.2.6--犀牛8 gh_write_script 修复
(IScriptComponent.Text新 facade-design 技能(七种类型
参考食谱 .gh 文件)和 rhino-gh-bridge-basics 技能,
加上五个场景画布表面(检查/调整/指导/执行/
作者)来自v0.2.x。通过单击安装
这个 .mcpb 桌面扩展
克劳德桌面和 牦牛包
Rhino软件包管理器。请参阅下面的快速入门。
它的作用
您安装了三件事——Python MCP服务器、Grasshopper插件和 Rhino插件——连接您最喜欢的MCP客户端(Claude Desktop,Claude 代码、游标等),然后您可以在 关于模型的自然语言: *“添加一个名为radius的滑块 范围0-50,然后用这个半径做一个圆,然后烤到 当前层”*LLM使用下面的工具来阅读你的画布,放置 以及连接Grasshopper组件,更改参数,捕获视口, 并运行Rhino命令。
v0.2通过单个控件控制AI可能接触到的内容 场景 下拉菜单
在画布组件上: 检查 (只读)→ 调谐 (参数
仅)→ 教练 (默认设置——精心策划的编辑,每个更改都突出显示)→
执行 (仅限于主动技能声明的内容)→ 作者 (免费)
手)。这 示例工作流指南
每种模式有一章,有真实的转录提示和截图。
您可以在对话中翻转场景;它在3秒内传播。
(v0.1组件在带状结构中保持不变 rhino-gh-mcp Server (v1)
为保存 .gh 使用它的文件。)
看 docs/architecture.md 对于全貌, docs/v0.2-redesign.md 对于场景设计, 和 docs/handoff.md 对于当前的状态。
快速入门——包管理器+一次下载
面向设计师和建筑专业的学生。不
git clone,没有uv, 不dotnet。您需要: 犀牛8 安装, Claude 桌面版 已安装,以及 Python 3.11+ 在你的路上。大约5分钟。
步骤0--下载Claude Desktop扩展
去 GitHub最新版本 并下载:
| 文件 | 它是什么 | 它去了哪里 |
|---|---|---|
rhino-gh-mcp-X.Y.Z.mcpb |
克劳德桌面扩展(捆绑Python MCP服务器) | 克劳德桌面 |
两个Rhino插件(.yak 文件)安装 Rhino内部 通过
步骤1中的包管理器——您不需要下载它们。(他们是
如果你想离线/拖放,也可以在发布页面上
退路。)
步骤1--安装Rhino+Grasshopper插件
启动Rhino 8,运行 _PackageManager 在命令行中,搜索
犀牛gh-mcp.安装两个软件包:
rhinogh-mcp-grasshopper--蚱蜢帆布桥(.gha)rhinogh-mcp-rhino--Rhino文档桥(.rhp)
重新启动Rhino。插件在 主控程序 中的功能区选项卡 蚱蜢。
离线/防火墙/老犀牛? 跳过包管理器:拖动每个
.yak 将最新GitHub版本的文件放到打开的Rhino 8上
窗口--相同的安装对话框,不需要网络。
步骤2——在Claude Desktop中安装Python MCP服务器
双击下载的 .mcpb.Claude Desktop打开
带有安装提示的扩展面板。确认。首次发射
pip安装了大约5个Python依赖项(大约30秒,一次性)。
扩展显示四个设置:控制级别预设
(parameter / curated / full)蚱蜢桥港口
(默认9999),Rhino网桥端口(默认9876),日志级别。
第三步——在Rhino内部架起两座桥
- 跑
_ToggleMcpService在Rhino的命令行中。你应该看看 “rhino-gh-mcp:mcp服务在127.0.0.1:9876上运行”. - 开放式蚱蜢(
_Grasshopper). - 找到 主控程序 功能区选项卡→ 服务器 群组→ 丢下 rhino-gh-mcp服务器(v2) 新画布上的组件。
- A. 布尔切换 (跑,跑)和a 值列表
(场景,选择Coach)显示为自动连接到左侧--翻转
切换到 真 和
Status应该阅读Server On 127.0.0.1:9999 | Scenario: Coach | Skill: (none).
步骤4--重新启动Claude Desktop并尝试提示
重新启动Claude Desktop,使其获取扩展名。在一次新的聊天中:
叫
gh_status和rhino_status确认两座桥 活着,然后gh_canvas_summary和rhino_get_scene_info看 那里有什么。然后添加一个名为的滑块radius范围为0-50 默认值10,放置aCircle从该滑块读取组件, 重新计算并捕获视口,以便我可以看到结果。
如果两个状态检查都成功并且画布上出现一个圆圈, 你完了。从这里开始 示例工作流指南 使用真实提示遍历所有五个场景——从以下内容开始 教练, 默认值。
替代快速启动——让AI从源代码安装
如果 .mcpb /上面的牦牛路径不适合你的设置——例如,你想要
破解桥接代码,或者你使用的Rhino版本没有
设置了包管理器——你仍然可以让人工智能助手来完成
完整源代码安装。你安装了一个助手应用程序,将仓库放在
磁盘,并要求AI完成其余的工作。
1.安装一个支持MCP的助手。 Claude 桌面版 (Mac或Windows)是最简单的。克劳德代码(VS代码内部)和 ChatGPT桌面应用程序的MCP支持也有效。
2.确保Rhino 8已经安装。 仅此项目 支持Rhino 8——Rhino 7无法运行。
3.将此仓库下载到稳定的位置 (例如。 Documents/rhino-gh-mcp).
没有Git的最简单方法:转到
GitHub页面 → green
代码 按钮→ 下载ZIP → 解压缩。
4.将助手指向解压缩的文件夹。
- 克劳德桌面: 打开文件夹选择器/“添加项目”面板 选择解压缩的repo。然后,助手可以从中读取文件。
- 克劳德代码: 在该文件夹中打开会话(
claude从一 终端在文件夹中,或用VS Code打开文件夹 克劳德扩展)。
5.粘贴下面的设置提示。 在指定位置填写您的操作系统。
请阅读
README.md和docs/handoff.md在这个项目中,那么 在我的机器上安装rhinogh-mcp。我在 macOS (或:Windows). 在没有我参与的情况下尽你所能:安装Python 依赖关系uv,建造蚱蜢.gha犀牛.rhp从源,复制.gha进入我的Grasshopper Libraries文件夹, 注册.rhp使用Rhino,并将此MCP服务器添加到我的Claude中 桌面配置,使其显示为工具源。当你完成时,告诉 我需要在Rhino中手动执行哪些步骤(例如启动 监听器,放下画布组件,重新启动助手)。
助理会跑 uv sync,使用构建这两个插件 dotnet build,将每个插件复制到其操作系统特定的安装路径,注册
通过Rhino的设置文件安装Rhino插件,并编辑您的MCP配置。然后
它会告诉你只有你能做的一小部分事情——和
两个步骤中的第3步和第4步单击上面的快速开始。
如果出现任何问题,请将助手的错误消息粘贴回去 并将其指向 故障排除 和 安装 下面的部分。
先决条件
- 犀牛8 (Mac或Windows)。犀牛7 不 支持——我们依赖 犀牛8。NET 7运行时。
- Python 3.11或3.12.
uvPython环境+运行。- 窗户:
winget install --id=astral-sh.uv - 雨衣:
brew install uv(或curl -LsSf https://astral.sh/uv/install.sh | sh)
- 窗户:
- .NET 7+SDK (用于从源代码构建C#插件)。
- 窗户:
winget install Microsoft.DotNet.SDK.8 - 雨衣:
brew install --cask dotnet-sdk
- 窗户:
- Git 用于克隆。
- MCP客户端。 克劳德桌面、克劳德代码或光标都可以工作。
安装——如果您具备先决条件,则需要5分钟
1.克隆
git clone https://github.com/GenEnv/rhino-gh-mcp.git
cd rhino-gh-mcp
2.设置Python服务器
cd server
uv sync # creates .venv, installs deps + dev deps
uv run pytest -q # 27 tests should pass — sanity check
cd ..
3.构建+安装Grasshopper插件
窗户:
cd plugins\grasshopper
.\reinstall.ps1
雨衣:
cd plugins/grasshopper
./reinstall.sh
两个脚本:如果运行,强制退出Rhino→ dotnet build -c Release →
复制结果 .gha 给你的蚱蜢 Libraries 文件夹。
首次使用PowerShell的用户可能需要运行
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
一次。
4.构建并安装Rhino插件
# Windows
cd plugins\rhino
.\reinstall.ps1
# Mac
cd plugins/rhino
./reinstall.sh
仅限第一次: Rhino之前需要明确注册
_ToggleMcpService 成为公认的命令。
- 窗户: 拖动已建
.rhp(脚本打印绝对值 路径)进入Rhino的主窗口——Rhino将提示加载和信任 插件。首次注册后,后续重建 自动更新到位。 - 雨衣: 拖动到窗口路径在Rhino 8 macOS上不可靠--
放入视口中会将文件作为三维几何体打开
插件管理器对话框没有安装按钮。可靠的路径是
(a)把
.rhp在~/Library/Application Support/McNeel/Rhinoceros/8.0/Plug-ins/RhinoGhMcpRhino (3f88bb55-3368-4204-9d0a-55911c9349ee)/RhinoGhMcpRhino.rhp以及(b)在<child key="PlugInRegistry"><child key="6">块~/Library/Application Support/McNeel/Rhinoceros/8.0/settings/settings-Scheme__Default.xml(与LoadMode=1,IsDotNETPlugIn=True,以及FileName指着 上面的绝对路径)。Quick中描述的AI安装路径 上面的开始为你做了这两件事。
5.连接客户端
Claude 代码 --已得到项目范围的支持
.mcp.json 在repo根目录中。启动Claude Code会话
在repo目录中,批准信任提示。这 rhino-gh
服务器将在该会话中可用。
Claude 桌面版 --添加一个 mcpServers 阻止您的配置文件:
{
"mcpServers": {
"rhino-gh": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/rhino-gh-mcp/server",
"run",
"rhino-gh-mcp",
"--policy",
"curated"
]
}
}
}
在Mac上, uv 应该是绝对路径(/Users/<you>/.local/bin/uv
或类似)——GUI应用程序并不总是继承你的shell PATH.
配置文件的位置取决于您安装的Claude版本:
| 构建 | Mac | Windows |
|---|---|---|
| 克劳德桌面(经典) | ~/Library/Application Support/Claude/claude_desktop_config.json |
%APPDATA%\Claude\claude_desktop_config.json |
| 统一的Anthropic-Claude应用程序(与Cowork/Claude Code集成) | ~/Library/Application Support/Claude-3p/claude_desktop_config.json |
%APPDATA%\Claude-3p\claude_desktop_config.json |
如果两个目录都存在,请使用 Claude-3p 一个
plain中的首选项文件 Claude/ 由应用程序重写
将删除未知密钥。编辑后重新启动助手。
游标/其他客户端 --将它们指向与相同的命令和参数 上面的克劳德桌面块。
6.在Rhino中架起两座桥
- 启动Rhino 8。
- 在Rhino的命令行中,键入
_ToggleMcpService然后按Enter键。 你应该看看 “rhino-gh-mcp:mcp服务在127.0.0.1:9876上运行”. - 开放式蚱蜢(
_Grasshopper). - 在蚱蜢带中,找到 主控程序 tab → 服务器 群组→ 丢下 rhino-gh-mcp服务器(v1) 将组件放在新画布上。
- 在组件上单击鼠标右键
Run输入→ 将持久数据设置为True(或将布尔切换设置为True)。这Status输出应 说Server On 127.0.0.1:9999.
7.从终端进行烟雾测试(可选但推荐)
cd server
uv run python ../examples/smoke_test_bridge.py # GH bridge
uv run python ../examples/smoke_test_rhino.py # Rhino bridge
uv run python ../examples/verify_capability_gate.py # the canvas flags
如果这些通过,您的MCP客户端也应该能够与网桥通信。
使用它
在与MCP客户的新聊天中,对其进行一次设置:
You have access to a Rhino 8 + Grasshopper session through the rhino-gh
MCP server. Before doing anything, call gh_status and rhino_status to
verify both bridges are up, then gh_canvas_summary and
rhino_get_scene_info to see what's there. Work in small steps; recompute
and capture the viewport between meaningful changes.
然后用通俗易懂的语言描述你想要什么——LLM会选择 正确的工具。这 示例工作流指南 有八个工作会话(包括提示、截图和观察运行 时间)从婴儿床。
有关指导工作流程(技能),请参阅 技能/README.md. 第一方技能:
landform--通过捆绑的MCP景观实现参数化地形 用户对象。ladybug-environmental--使用瓢虫进行环境分析 工具(太阳路径、日照时数、风向)。需要瓢虫 安装Grasshopper插件。facade-design--食谱第一代立面:七种类型 食谱(百叶窗、斜板、折叠、动态、镶板、, 穿孔吸引子(voronoi).gh文件夹。rhino-gh-bridge-basics--桥梁弯道接地 宿主几何体摄取图案。
存储库布局
rhino-gh-mcp/
├── server/ # Python MCP server (uv project)
│ ├── src/rhino_gh_mcp/
│ │ ├── server.py # FastMCP app + lifespan
│ │ ├── config.py # CLI + policy presets
│ │ ├── capabilities.py # Soft capability gate (v0.1.5+)
│ │ ├── bridges/ # HTTP→GH, TCP→Rhino
│ │ ├── policies/ # Legacy shim (back-compat)
│ │ └── tools/ # Tool implementations
│ ├── tests/ # pytest (no Rhino required)
│ └── pyproject.toml
├── plugins/
│ ├── grasshopper/ # .gha (C# / net7.0 + net7.0-windows)
│ └── rhino/ # .rhp (C# / net7.0)
├── examples/ # Bridge-level smoke + verify scripts
├── skills/ # Anthropic Agent Skills bundles
│ ├── landform/
│ ├── ladybug-environmental/
│ ├── facade-design/
│ └── rhino-gh-bridge-basics/
├── mcpb/ # .mcpb / .dxt Desktop Extension source
│ ├── manifest.json # MCPB v0.3 manifest
│ ├── bootstrap.py # First-launch dep installer
│ └── requirements.txt # Server runtime deps
├── scripts/
│ ├── build-mcpb.sh # → dist/rhino-gh-mcp-<v>.mcpb
│ ├── build-yak.sh # → dist/rhinogh-mcp-*-<v>-*.yak
│ └── sync.{sh,ps1} # One-shot dev sync after pulling
├── dist/ # Built install packages (.mcpb + .yak)
├── docs/
│ ├── architecture.md
│ ├── handoff.md # Status + session log
│ ├── packaging-status.md # .mcpb + Yak release status / next steps
│ ├── performance-notes.md
│ └── generalization.md
└── .mcp.json # Project-scoped Claude Code MCP config
故障排除
“蚱蜢桥无法到达http://127.0.0.1:9999"
MCP服务器组件未在GH画布上运行(无画布
打开,或 Run 是假的)。在新画布上放置一个,并设置Run=True。
“127.0.0.1:9876时无法到达犀牛桥”
你还没跑 _ToggleMcpService 启动Rhino后,或者你跑了
它响了两次,把听众关掉了。
“canvas拒绝功能:设置 AllowScripting 输入。.."
按预期工作——LLM要求的是一种关闭的能力
你的画布。要么翻转组件上的开关,要么告诉LLM
使用特权较低的路径。
工具无返回/挂起
检查 gh_get_runtime_messages 在相关组件上。大多数失败
接线问题(输入名称错误)是否会表现为运行时错误,但
也不例外。
Windows上的PowerShell“无法加载脚本”
一次性修复: Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned.
uv sync 不安装pytest
确保你在 uv ≥ 0.5 所以这 [dependency-groups] 桌子是
荣幸的。旧版本需要 uv sync --extra dev.
路线图
| 阶段 | 状态 | 范围 |
|---|---|---|
| P0 | ✅ | 干净的骨架,FastMCP服务器,所有15个GH命令都已移植, .gha 构建Mac+Windows |
| 第1页 | ✅ | 犀牛 .rhp 在Windows+Mac上通过干净的雕刻、视口捕获和烟雾测试 |
| 第2页 | ✅ | 软功能门,帆布侧控制,第一技能(landform) |
| 第3页 | ⏳ | Rhino 8脚本组件注入(将Python 3+C#注入到现代脚本组件中) |
| 第4页 | 🟡 | 表面扩展--完成:list_toggles/value_lists、canvas_summary、find_components、set_toggle、select_value_list、list_blocks、set_view。剩余:bake_to_rhino、group_components、measure_distance |
| 第5页 | 🟡 | 技能库——已完成:地形、瓢虫环境(草图)、立面设计、犀牛桥基础知识。规划:体量、结构网格、采光 |
| 第6页 | ⏳ | 流式HTTP传输+精简的web前端 |
| P7 | ✅ | .mcpb 桌面扩展+Yak包——请参阅 scripts/build-mcpb.sh, scripts/build-yak.sh, docs/packaging-status.md |
| 第8页 | ⏳ | 面向学生的教学包 |
许可证
麻省理工学院——见 许可证.
贡献
欢迎拉取请求,特别是:
- 架构工作流的新技能(请参见 技能/README.md 格式)。
- 针对特定Rhino 8版本的Bug报告(粘贴
rhino_version来自rhino_status). - 您希望存在的命令形状的桥处理程序。
