项目简介
RhinoMCPServer 是一个 Rhinoceros 插件,它实现了 Model Context Protocol (MCP) 服务器。该插件允许大型语言模型 (LLM) 客户端通过标准化的 MCP 协议与 Rhinoceros 软件进行交互,利用 Rhino 强大的 3D 建模和绘图功能。它通过 Server-Sent Events (SSE) 协议实现高效的双向通信,并动态加载工具插件,方便功能扩展。
主要功能点
- MCP 服务器核心功能: 实现了 MCP 协议的关键部分,能够处理来自 MCP 客户端的请求,并按照 MCP 协议规范返回响应。
- Rhino 工具集成: 将 Rhino 的多种功能封装成 MCP 工具,例如创建几何体(球体、圆、矩形、polyline)、移动对象、获取几何信息、图层管理、对象属性编辑、视口捕捉、尺寸标注等。
- 动态工具扩展: 支持动态加载工具插件,用户可以通过添加新的 DLL 文件轻松扩展服务器的功能,无需修改核心服务器代码。
- 高效 SSE 通信: 采用 Server-Sent Events (SSE) 协议进行通信,相比 WebSocket 更加轻量高效。
- 详细日志记录: 提供完善的服务器日志,方便问题排查和功能调试。
- 丰富的工具集: 内置了 "RhinoMCPTools.Basic" 和 "RhinoMCPTools.Misc" 两个工具库,涵盖了基础几何操作、绘图和实用工具,开箱即用。
安装步骤
- 环境准备:
- 确保已安装 Rhinoceros 9 WIP 版本。
- 确保已安装 .NET 8.0 Runtime。
- 下载插件: 从 GitHub 仓库 https://github.com/4kk11/RhinoMCPServer 下载插件文件。通常,你需要下载编译好的插件文件(.rhp 文件),或者自行编译项目。
- 安装插件:
- 启动 Rhinoceros 9 WIP。
- 在 Rhino 命令行中输入 'PluginManager' 并回车。
- 在弹出的 "插件管理器" 窗口中,点击 "安装"。
- 浏览到下载或编译得到的 '.rhp' 插件文件,选择并点击 "打开"。
- 安装完成后,插件管理器中应该能看到 "RhinoMCPServer" 插件,并确保其状态为 "已启用"。
- 验证安装: 在 Rhino 命令行中输入 'MCPServer' 命令,如果插件安装成功,会显示服务器相关的提示信息。
服务器配置
MCP 服务器配置主要涉及启动命令和端口设置。对于 MCP 客户端,需要配置连接到 RhinoMCPServer 的信息。以下是典型的 MCP 客户端配置信息(JSON 格式),你需要根据实际情况进行配置:
{ "serverName": "RhinoMCPServer", "command": "MCPServer", "args": [], "host": "http://localhost:{port}/sse", "protocol": "SSE", "description": "连接到本地 RhinoMCPServer 的 MCP 服务器" }
参数注释:
- '"serverName"': MCP 服务器的名称,可以自定义,用于在客户端标识服务器连接。例如 '"RhinoMCPServer"'。
- '"command"': 启动 MCP 服务器的 Rhino 命令。固定为 '"MCPServer"',用于在 Rhino 内部启动 MCP 服务器。
- '"args"': 启动命令的参数,RhinoMCPServer 不需要额外的启动参数,所以配置为空数组 '[]'。
- '"host"': MCP 服务器的 SSE 连接地址。
- 'http://localhost:{port}/sse' 表示服务器运行在本地计算机 ('localhost'),端口号 '{port}' 需要替换为实际的服务器端口号(默认为 '3001'),连接协议为 'SSE'。
- '"protocol"': 客户端连接服务器使用的协议,必须设置为 '"SSE"'。
- '"description"': 服务器连接的描述信息,可以自定义,方便用户理解服务器的用途。
端口配置:
- 默认端口: RhinoMCPServer 默认使用 '3001' 端口。
- 自定义端口: 启动服务器时,可以在 Rhino 命令行输入 'StartMCPServer' 命令后,手动输入自定义端口号。
重要提示:
- 由于 Claude Desktop 的 MCP 客户端目前不支持直接 SSE 连接,如果使用 Claude Desktop,需要借助 mcp-server-and-gw 桥接工具将标准 I/O 转换为 SSE。 具体使用方法请参考仓库 README 文档中 "Connecting with MCP Clients" 章节。
- 确保 MCP 客户端能够访问到 RhinoMCPServer 运行的计算机和端口。
基本使用方法
- 启动 RhinoMCPServer:
- 启动 Rhinoceros 9 WIP 软件。
- 在 Rhino 命令行中输入 'MCPServer' 命令并回车。
- 如果服务器未运行,会提示输入端口号,直接回车使用默认端口 '3001',或者输入自定义端口号并回车。
- 启动成功后,命令行会显示 "MCP Server started on port {端口号}" 的信息,表示服务器已在指定端口监听连接。
- 连接 MCP 客户端:
- 配置 MCP 客户端,使其连接到 RhinoMCPServer 的地址(例如 'http://localhost:3001/sse',如果使用默认端口)。
- 启动 MCP 客户端,建立与 RhinoMCPServer 的连接。
- 使用 MCP 工具:
- 连接成功后,MCP 客户端可以发送 MCP 请求调用 RhinoMCPServer 提供的工具。
- 可用的工具列表可以通过客户端发送 'ListTools' 请求获取。
- 调用工具时,需要根据工具的 'InputSchema' 构造请求参数,并发送 'CallTool' 请求。
- 服务器会执行相应的 Rhino 功能,并将结果以 JSON 格式返回给客户端。
- 停止 RhinoMCPServer:
- 如果需要停止服务器,再次在 Rhino 命令行中输入 'MCPServer' 命令并回车。
- 当提示 "Server is running. Do you want to stop it? (Yes/No)" 时,输入 'Yes' 或 'Y' 并回车,即可停止服务器。
示例工具调用 (以 'sphere' 工具为例):
假设要创建一个球体,可以使用以下参数调用 'sphere' 工具:
{ "name": "sphere", "arguments": { "radius": 5, "x": 10, "y": 20, "z": 0 } }
将以上 JSON 数据作为 'CallTool' 请求的参数发送给 RhinoMCPServer,服务器会在 Rhino 中创建一个半径为 5,中心坐标为 (10, 20, 0) 的球体,并将操作结果返回给客户端。 其他工具的使用方法类似,请参考工具的 'Description' 和 'InputSchema' 了解工具的功能和参数要求。
信息
分类
桌面与硬件