Token导航 LogoToken导航TokenDH.com
aag25 MCP logo
设计创作stdio官方级别未说明来源级核验

aag25 MCP

MCP Server

一个基于Model Context Protocol (MCP)的服务,提供30多种工具,通过自然语言与Rhino 3D和Grasshopper交互,支持参数化几何生成、跨文件工作流和智能几何传输。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
3D建模Python设计

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

makais

提供方

makais

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

工作坊1:使用MCP进行代理AI设计编排

AAG2025:建筑几何进展-麻省理工学院 | 2025年11月16日至17日 | 工作坊页面

Rhino Grasshopper MCP服务器

一个模型上下文协议(MCP)服务器,提供30多种工具,用于通过自然语言与Rhino 3D和Grasshopper进行交互。功能包括参数化几何图形生成、跨文件工作流、智能几何图形传输和自动化工作流建议。使用HTTP桥架构来处理MCP(Python 3.10+)和Rhino的IronPython之间的Python版本兼容性。

建筑

┌─────────────────┐         ┌──────────────────┐         ┌─────────────┐
│   MCP Client    │ ◄─────► │   MCP Server     │ ◄─────► │   Rhino     │
│                 │   MCP   │ (Python 3.10+)   │  HTTP   │   Bridge    │
└─────────────────┘         └──────────────────┘         └─────────────┘
                                                              ▲
                                                              │
                                                         Rhino API
                                                         Grasshopper API

主要特点

  • 30+工具 -Rhino 3D和Grasshopper自动化的综合工具集
  • 智能几何传输 -自动转换和验证文件之间的几何图形(直线、曲线、曲面、网格、Breps)
  • EML公约 -使用自动参数发现 eml_ 跨文件工作流的前缀
  • 工作流建议 -JSON元数据系统建议文件序列和参数连接
  • 文件管理 -自动启动Grasshopper,批量文件操作,文件验证
  • DEBUG_MODE -通过以下方式切换详细输出 .env 申请在生产中节省60-80%的代币
  • 自定义脚本 -在Grasshopper中执行Python代码,并完全访问组件数据
  • 几何烘焙 -Rhino的用户控制烘焙,具有层管理和确认功能
  • 自动发现 -基于装饰器的工具注册-无需手动配置

项目结构

MCP/

MCP服务器和客户端集成:

  • main.py -带自动发现功能的MCP服务器
  • bridge_client.py -Rhino通信的HTTP客户端
  • config/ -配置模板
  • requirements.txt -Python 3.10+依赖项

犀牛/

Rhino内部运行的HTTP网桥服务器:

  • rhino_bridge_server.py -HTTP服务器(IronPython 2.7/3.9)
  • start_rhino_bridge.py -启动脚本

工具/

基于装饰器的自动发现工具定义:

  • rhino_tools.py -Rhino 3D工具
  • gh_tools.py -蚱蜢工具
  • tool_registry.py -自动发现系统
  • Grasshopper File Library/ -.gh文件存储

快速开始

1.安装MCP服务器依赖项

cd MCP/
pip install -r requirements.txt

2.启动Rhino Bridge服务器

  1. 打开Rhino 8
  2. 打开Python脚本编辑器: Tools > Script > Edit
  3. 加载并运行:
   exec(open(r'C:\path\to\rhino_gh_mcp\Rhino\start_rhino_bridge.py').read())
  1. 验证:访问 http://localhost:8080/status

3.配置MCP客户端

添加到MCP客户端配置文件中(可选:如果在虚拟环境中运行,您可以将命令指向该python可执行文件):

{
  "mcpServers": {
    "rhino_gh": {
      "command": "python",
      "args": ["C:\\path\\to\\rhino_gh_mcp\\MCP\\main.py"]
    }
  }
}

4.重新启动MCP客户端

重新启动MCP客户端以加载服务器。

配置

调试模式(可选)

控制工具响应冗长度以优化令牌使用:

  1. 复制 .env.example.env 在项目根中
  2. DEBUG_MODE=true 发展或 DEBUG_MODE=false 用于生产
  3. 重新启动Rhino桥服务器以应用更改

优点:

  • DEBUG_MODE=false -通过删除详细的调试日志节省60-80%的令牌(建议用于生产)
  • DEBUG_MODE=true -用于故障排除的完整诊断输出

Tools/README.md 以获取详细示例。

工作流元数据(可选)

添加JSON元数据来描述Grasshopper文件并启用工作流建议:

  1. 创建 metadata.jsonTools/Grasshopper File Library/
  2. 定义文件输入、输出、依赖关系和工作流
  3. 使用 suggest_grasshopper_workflow 智能文件序列建议工具

元数据结构示例可在 Tools/Grasshopper File Library/metadata.json.

可用工具

犀牛工具(5)

  • draw_line_rhino -在三维空间中绘制线条
  • get_rhino_info -获取会话信息
  • typical_roof_truss_generator -生成参数化桁架
  • get_selected_rhino_objects -获取选定对象数据
  • get_rhino_object_geometry -提取几何图形

蚱蜢档案管理(5)

  • list_gh_files -列出可用的.gh文件
  • open_gh_file -打开文件(自动启动Grasshopper)
  • open_all_gh_files -一次打开所有文件
  • get_active_gh_files -获取当前打开的文件
  • close_gh_file -关闭特定文件

EML参数工具(4)

基于公约的工具使用 eml_ 自动化工作流的前缀:

  • list_eml_parameters -发现eml_前缀组件
  • get_eml_parameter_value -提取参数值
  • set_eml_parameter_value -设置参数值
  • suggest_eml_connections -建议数据流连接

跨文件工作流工具(2)

  • transfer_eml_geometry_between_files -直接几何转换
  • execute_eml_workflow -多文件工作流编排

传统蚱蜢工具(16)

  • list_grasshopper_sliders / set_grasshopper_slider
  • set_multiple_grasshopper_sliders
  • analyze_grasshopper_sliders
  • analyze_grasshopper_inputs_with_context
  • analyze_grasshopper_outputs_with_context
  • get_grasshopper_overview
  • get_grasshopper_components
  • list_grasshopper_valuelist_components
  • set_grasshopper_valuelist_selection
  • list_grasshopper_panels / set_grasshopper_panel_text
  • get_grasshopper_panel_data
  • set_grasshopper_geometry_input
  • extract_grasshopper_geometry_output
  • debug_grasshopper_state

高级工具(5)

  • bake_grasshopper_geometry -使用层控制将几何体烘焙到Rhino
  • execute_custom_grasshopper_script -在GH上下文中运行Python
  • suggest_grasshopper_workflow -从元数据中获取工作流建议
  • set_active_gh_file -切换活动文档
  • predict_truss_tonnage -基于样本数据多项式回归模型的大跨度特拉斯吨位预测

使用Grasshopper文件

重要: 在将Grasshopper文件与MCP工具一起使用之前,请确保它们已正确配置:

Grasshopper文件的先决条件:

  1. 首先手动测试文件 -直接在Grasshopper中打开每个.gh文件,以验证其是否正确加载
  2. 安装所需插件 -确保Rhino/Grasshopper中安装了所有插件依赖项
  3. 检查文件引用 -验证是否可以访问任何外部文件引用或链接资源
  4. 正确保存文件 -确保文件以稳定状态保存,没有错误

常见问题:

  • 无法通过MCP打开文件 -通常表示缺少插件或文件错误。在Grasshopper中手动打开以查看特定的错误消息。
  • 超时错误 -文件可能太大或具有循环引用,导致解决方案速度较慢。简化或禁用重型组件。

只有在验证文件在Grasshopper中正常工作后,您才能将其与MCP工具一起用于自动化。

将已验证的.gh文件存储在 Tools/Grasshopper File Library/ 用于文件管理工具。

EML公约

eml_ (外部ML)前缀可在Grasshopper中实现自动组件发现:

支持的组件:

类型示例目的
数字滑块eml_panel_count数字输入
面板eml_output_data文本显示
布尔切换eml_enable_feature开/关开关
价值清单eml_material_type下拉菜单
几何参数eml_input_curve几何I/O

工作流示例:

1. Open generator.gh with eml_output_curve
2. Extract geometry using list_eml_parameters
3. Open processor.gh with eml_input_curve
4. Transfer using transfer_eml_geometry_between_files

这实现了跨文件自动化,而无需手动重新布线。

添加新工具

工具使用基于装饰器的自动发现。将两个装饰器添加到同一个文件中:

# MCP tool (client-side)
@rhino_tool(name="create_circle", description="Create a circle...")
async def create_circle(center_x: float, center_y: float, radius: float):
    return call_bridge_api("/create_circle", {
        "center_x": center_x,
        "center_y": center_y,
        "radius": radius
    })

# Bridge handler (server-side)
@bridge_handler("/create_circle")
def handle_create_circle(data):
    import rhinoscriptsyntax as rs
    center = [data['center_x'], data['center_y'], 0]
    radius = data['radius']
    circle_id = rs.AddCircle(center, radius)
    return {"success": True, "circle_id": str(circle_id)}

重新启动两台服务器以激活新工具。

故障排除

网桥服务器没有响应:

  • 检查Rhino是否打开,桥接脚本是否正在运行
  • 访问 http://localhost:8080/status 验证
  • 检查端口8080是否未被防火墙阻止

工具未出现:

  • 验证MCP客户端配置路径是否正确
  • 配置更改后重新启动MCP客户端
  • 检查 MCP/main.py 路径使用绝对路径

蚱蜢工具故障:

  • 确保Grasshopper插件已加载到Rhino中
  • 代码更改后重新启动网桥服务器
  • 检查Rhino Python控制台是否有错误

桥中的类型错误:

  • IronPython不支持所有类型提示
  • 在桥处理程序中使用简单类型或省略类型提示

测试

  1. 桥梁状态: curl http://localhost:8080/status
  2. 列出端点: curl http://localhost:8080/info
  3. 测试工具: 使用MCP客户端执行工具
  4. 调试: 检查Rhino Python控制台是否存在桥接错误

需求

  • Rhino 8支持Python
  • MCP服务器的Python 3.10+
  • Grasshopper(可选,用于参数化工具)
  • MCP兼容客户端

许可证

MIT许可证

作者

侯赛因·扎尔加(赛义德·侯赛因·扎尔加)

目录标签

目录标签

3D建模Python设计本地部署参数化设计自动化工具几何处理Grasshopper集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP