项目简介

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" 两个工具库,涵盖了基础几何操作、绘图和实用工具,开箱即用。

安装步骤

  1. 环境准备:
    • 确保已安装 Rhinoceros 9 WIP 版本。
    • 确保已安装 .NET 8.0 Runtime
  2. 下载插件: 从 GitHub 仓库 https://github.com/4kk11/RhinoMCPServer 下载插件文件。通常,你需要下载编译好的插件文件(.rhp 文件),或者自行编译项目。
  3. 安装插件:
    • 启动 Rhinoceros 9 WIP。
    • 在 Rhino 命令行中输入 'PluginManager' 并回车。
    • 在弹出的 "插件管理器" 窗口中,点击 "安装"。
    • 浏览到下载或编译得到的 '.rhp' 插件文件,选择并点击 "打开"。
    • 安装完成后,插件管理器中应该能看到 "RhinoMCPServer" 插件,并确保其状态为 "已启用"。
  4. 验证安装: 在 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 运行的计算机和端口。

基本使用方法

  1. 启动 RhinoMCPServer:
    • 启动 Rhinoceros 9 WIP 软件。
    • 在 Rhino 命令行中输入 'MCPServer' 命令并回车。
    • 如果服务器未运行,会提示输入端口号,直接回车使用默认端口 '3001',或者输入自定义端口号并回车。
    • 启动成功后,命令行会显示 "MCP Server started on port {端口号}" 的信息,表示服务器已在指定端口监听连接。
  2. 连接 MCP 客户端:
    • 配置 MCP 客户端,使其连接到 RhinoMCPServer 的地址(例如 'http://localhost:3001/sse',如果使用默认端口)。
    • 启动 MCP 客户端,建立与 RhinoMCPServer 的连接。
  3. 使用 MCP 工具:
    • 连接成功后,MCP 客户端可以发送 MCP 请求调用 RhinoMCPServer 提供的工具。
    • 可用的工具列表可以通过客户端发送 'ListTools' 请求获取。
    • 调用工具时,需要根据工具的 'InputSchema' 构造请求参数,并发送 'CallTool' 请求。
    • 服务器会执行相应的 Rhino 功能,并将结果以 JSON 格式返回给客户端。
  4. 停止 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' 了解工具的功能和参数要求。

信息

分类

桌面与硬件