Skip to main content
Glama
kguluzada
by kguluzada

Rhino MCP

面向 Codex、Claude 和 Cursor 的低摩擦 Rhino 与 Grasshopper 桥接器。

Windows 体验刻意保持简短:

  1. 下载并运行 RhinoMCP-Windows-Setup。

  2. 选择 Codex、Claude 或 Cursor。

  3. 打开 Rhino,打开 Grasshopper,然后开始提示。

正常设置不涉及 Rhino 包管理器、仓库克隆、Python 安装、uv、Conda 环境、Rhino Python 脚本、Grasshopper 文件、Python 路径更改、终端命令或手动编辑的 MCP 配置。

安装

需要 Rhino 8.0 或更高版本,以及你想使用的 AI 客户端。Rhino 8.1 无需更新 Rhino 即可支持。关闭 Rhino,从最新版本下载单个 RhinoMCP-Windows-Setup-*.exe 文件,然后双击它。安装程序会询问 AI 客户端,然后自动:

  • 使用 Rhino 自带的安装程序安装 Rhino 和 Grasshopper 桥接器;

  • 安装一个自带完整运行时的独立 MCP 服务器;

  • 安全地写入 Codex、Claude 或 Cursor 的 MCP 条目;

  • 选择安全的 Grasshopper 工具配置文件;

  • 运行 doctor 检查;以及

  • 在 Windows 已安装的应用中添加一个正常条目,以便干净卸载。

安装程序不需要 Rhino 在线,不下载依赖项,Rhino MCP 也从不自我更新。安装不同版本始终需要特意运行另一个安装程序。

当 Rhino 启动时,它会自动在 Windows 默认浏览器中打开一个本地连接仪表板。它无需互联网访问即可工作,也不需要单独的应用、服务或浏览器扩展。

Related MCP server: Grasshopper MCP

架构法规检查

Rhino MCP 包含一个紧凑的离线搜索索引,基于提供的 Google Drive 法规库构建。原始文件保留在此公共源代码仓库之外;捆绑的索引存储可搜索的页面文本、源元数据以及指向原始文件的链接。它是一个固定的快照,从不同步或自我更新。该快照包含 289 个源文件,其中 272 个可搜索文档和 7,896 个索引页面。阿塞拜疆语、俄语和英语 OCR 恢复了 553 个扫描的 PDF 页面和 66 个图像/TIFF 工作表,没有提取错误。

对于建筑、施工、无障碍、消防安全、结构、卫生、能源、排水、避难、场地规划或相关的 Grasshopper 请求,每个 MCP 客户端都会收到一个始终开启的工作流指令,要求:

  1. 确定司法管辖区、占用/项目类型、设计阶段和约束条件;

  2. 在提出受监管的尺寸或编辑模型之前搜索法规库;

  3. 为每项要求引用确切的文档标题、Drive 源 ID 和页面;

  4. 将已验证的源要求与建议和推断区分开来;以及

  5. 标记缺失的证据、冲突、不确定的适用性以及需要持牌本地审查的情况。

文档文本被视为不可信参考数据,而非可执行指令。AI 不得编造代码值,也不得将其审查描述为许可证、批准或法律合规证书。

始终可用的法规工具是:

  • regulation_library_status

  • search_regulations

  • get_regulation_page

  • architecture_regulation_checklist

搜索会将常见的英语建筑术语扩展为阿塞拜疆语和俄语,以便模型找到多语言源材料。检查已安装的快照或尝试使用以下命令进行搜索:

rhino-mcp regulations status
rhino-mcp regulations search "fire evacuation stairs"

源集合及其有效法律状态尚未经过独立认证。负责任的建筑师或工程师必须在施工前确认司法管辖区、适用性、修订、冲突和当前要求。

对于托管或静默部署,同一下载支持:

.\RhinoMCP-Windows-Setup-0.4.2.exe /CLIENT=codex /SILENT

有效的客户端值为 codex、claude 和 cursor。设置后重启所选的 AI 客户端。Codex 用户可以运行 /mcp 来确认 rhino-mcp 已启用。

连接仪表板

每次 Rhino 启动时,Rhino MCP 都会在 Windows 默认浏览器中打开一个仪表板标签页。它使用用户选择的任何浏览器;不需要 Chrome。该页面显示以下内容的实时状态:

  • Rhino 桥接器 — 已连接或已停止

  • Codex / Claude / Cursor — 已连接、等待中或未配置

  • Grasshopper — 已连接或未打开

  • 法规 — 已加载或未安装

页面每秒刷新一次状态。如果 Rhino 关闭,现有标签页会变为 Rhino 已离线 并持续重试;当 Rhino 重新打开时,它会自动重新连接。该标签页可以随时关闭。在 Rhino 中运行 RhinoMCPDashboard 可重新打开它。

默认地址是 http://127.0.0.1:9877/。它由 Rhino 插件直接提供,仅绑定到本机,只读,不加载任何 Web 资源,也不向互联网发送任何内容。如果该端口已被占用,Rhino MCP 会自动选择私有本地回退地址并打开正确的地址。

Rhino 中显示的内容

Rhino MCP 连接条会在每次 Rhino 启动时自动出现在活动建模视口的右上角。它保持可见而不占用侧面板空间,跟随活动视口,并且即使在上次会话中被隐藏,也会在下次 Rhino 启动时再次出现。

标题显示 已连接 — 就绪、等待 CODEX/CLAUDE/CURSOR、需要设置 或 桥接器已停止。四个实时圆点显示:

  • 桥接器 — 当 Rhino 正在监听时为绿色

  • Codex / Claude / Cursor — 当所选 AI 客户端已连接时为绿色

  • Grasshopper — 当 Grasshopper 打开且其桥接器可用时为绿色

  • 规则 — 当离线法规库已加载时为绿色

该条刻意不包含在返回给 AI 的视口图像中。运行 RhinoMCP 可隐藏或显示它。对于故障排除,Rhino 还提供:

  • RhinoMCPDashboard — 重新打开浏览器仪表板

  • RhinoMCPStatus — 显示该条并打印完整状态、端口和仪表板 URL

  • RhinoMCPRestart — 重启本地 Rhino 桥接器

  • RhinoMCPTest — 创建、验证并自动移除测试立方体

安装程序包含两个 Rhino 8 运行时构建。Rhino 自动使用 net7.0(正常运行时)或 net48(如果 Rhino 配置为旧版 .NET Framework 运行时);用户无需选择或配置。

连接测试会创建一个一单位立方体,验证它,然后移除它。如果禁用清理,测试立方体会保留在文档中。

高级命令

源代码和 Python 包安装可以使用:

rhino-mcp setup [codex|claude|cursor]
rhino-mcp doctor [--json]
rhino-mcp status [--json]
rhino-mcp update
rhino-mcp uninstall [--all]
rhino-mcp config [codex|claude|cursor]
rhino-mcp config --profile basic|grasshopper|developer

doctor 报告包、设置、每个 AI 客户端、Rhino、Grasshopper 和服务启动器的通过/失败/等待状态。Rhino 和 Grasshopper 关闭时显示为 WAIT,并给出确切的下一个操作,而不是套接字跟踪。

工具配置文件

基础(默认)

安全日常工具集:

  • rhino_status

  • get_scene_summary

  • list_layers

  • list_objects

  • get_scene_changes

  • create_geometry

  • modify_objects

  • delete_objects

  • organize_layers

  • batch_geometry

  • test_connection

  • capture_viewport

Grasshopper

添加分页定义上下文、选中/对象检查和重新计算工具。捆绑的 .gha 在 Grasshopper 打开时自动启动其桥接器;无需加载 .gh 定义或 Python 组件。

开发者

显式添加任意的 Rhino 和 Grasshopper Python 工具。它们不在基础版和 Grasshopper 工具架构中,因此 AI 客户端无法意外发现或调用它们。仍然优先使用安全的高级操作。

安全编辑行为

  • 每个修改请求都会获得一个命名的 Rhino 撤销记录。

  • 批处理在一个事务中执行所有操作并重绘一次。

  • 几何体和图层工具接受 dry_run: true 以进行验证和预览。

  • 删除需要显式的 Rhino 对象 ID。

  • 读取结果是结构化对象,而不是字符串中编码的 JSON。

  • 对象和 Grasshopper 列表经过过滤和分页。

  • get_scene_changes 仅发送自提供的场景版本以来的添加、编辑和删除。

示例提示:

Create a 10 × 8 × 3 box on a layer named Massing. Dry-run it first, then create it
and show me a compressed viewport capture.

可靠性和性能

  • 4 字节长度前缀消息取代了旧的巨大接收缓冲区。

  • 请求以有界的 64 KiB 块读取,硬限制为 64 MiB。

  • Rhino TCP 和 Grasshopper HTTP 连接保持活动并重复使用。

  • 失败的安全读取会自动重连一次。

  • 变更操作从不盲目重试,防止重复几何体。

  • 短期场景元数据被缓存,并在编辑后失效。

  • 场景更改和大文档进行分页,而不是反复完整返回。

  • Grasshopper 上下文默认简化。

  • 视图捕获默认使用压缩 JPEG,大小和质量可配置。

  • 套接字工作和图像编码在 Rhino 的 UI 线程之外运行;只有 Rhino API 调用被编组到该线程上。

  • 工具描述和正常响应刻意保持紧凑,以减少模型令牌使用。

使用以下命令更改图像默认值:

rhino-mcp config --image-size 1280 --image-quality 82

开发者构建

Python 包:

python -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/pytest -q
python -m build

Rhino 8 插件和包管理器存档:

./scripts/build-yak.sh Release

该脚本在 dist/ 下构建 RhinoMCP.rhp、RhinoMCP.Grasshopper.gha 和 .yak。

完整的 Windows 安装程序(在 Windows 上的 PowerShell 中运行):

python -m pip install -e ".[dev]" "pyinstaller==6.22.2"
choco install innosetup --yes
.\scripts\build-windows-installer.ps1

CI 编译并对捆绑的 Windows 可执行文件和单文件安装程序进行冒烟测试。标记的版本会附加安装程序、其 SHA-256 校验和以及手动开发者工件。

架构

Codex / Claude / Cursor
        │ MCP stdio
        ▼
bundled rhino-mcp.exe
        ├── offline regulation search index
        │
        │ framed, persistent localhost TCP
        ▼
RhinoMCP.rhp ── Rhino document + visible viewport status strip
        ├── read-only browser dashboard at 127.0.0.1
        │
        └── RhinoMCP.Grasshopper.gha (persistent localhost HTTP)

两个桥接器和仪表板仅绑定到 127.0.0.1;它们不暴露到网络。

许可证

MIT。此仓库是独立的,没有上游 Git 远程。

Related MCP Connectors

Related MCP Servers