返回市场
犀牛MCP

犀牛MCP

作者:a011109469 星标更新:2025-03-15

项目介绍

RhinoMCP

RhinoMCP通过模型上下文协议(MCP)将Rhino3D与Claude AI连接起来,使Claude能够直接与Rhino3D交互并控制它,从而实现AI辅助的3D建模、分析和设计工作流程。

项目概述

此集成由两个主要组件构成:

  1. Rhino插件:运行在Rhino Python编辑器内的套接字服务器,提供与Rhino功能通信的接口。
  2. MCP服务器:实现模型上下文协议,将Claude AI与Rhino插件连接起来,支持AI控制的操作。

特性

  • Python与Rhino之间的基于套接字的双向通信
  • 支持Claude AI集成的模型上下文协议服务器
  • 支持NURBS曲线创建(初始测试特性)
  • 在Rhino环境中执行Python脚本
  • 兼容Claude Desktop和Windsurf作为客户端

安装

要求

  • Rhinoceros 3D(版本7或8)
  • Python 3.10或更高版本
  • Windows 10或11

使用uv安装(推荐)

# 创建并激活虚拟环境
mkdir -p .venv
uv venv .venv
source .venv/Scripts/activate  # 在Windows上使用Git Bash

# 安装包
uv pip install -e .

使用pip安装

# 创建并激活虚拟环境
python -m venv .venv
.venv\Scripts\activate  # 在Windows上

# 安装包
pip install -e .

使用方法

第一步:启动Rhino桥接服务器

  1. 打开Rhino
  2. 在命令行中键入EditPythonScript以打开Rhino的Python编辑器
  3. src/rhino_plugin/rhino_server.py打开Rhino服务器脚本
  4. 运行脚本(F5或点击运行按钮)
  5. 验证输出面板中显示“Rhino Bridge started!”

第二步:启动MCP服务器

# 激活你的虚拟环境
source .venv/Scripts/activate  # 在Windows上使用Git Bash

# 启动MCP服务器
rhinomcp

或者使用自定义设置运行:

rhinomcp --host 127.0.0.1 --port  5000 --rhino-host 127.0.0.1 --rhino-port 8888 --debug

第三步:使用Claude Desktop或Windsurf连接

配置Claude Desktop或Windsurf连接到MCP服务器:

ws://127.0.0.1:5000

示例:创建NURBS曲线

当连接到Claude时,你可以请求它在Rhino中创建一个NURBS曲线,提示如下:

使用点(0,0,0),(5,10,0),(10,0,0)和(15,10,0)在Rhino中创建一个NURBS曲线。

开发

设置开发环境

# 克隆仓库
git clone https://github.com/FernandoMaytorena/RhinoMCP.git
cd RhinoMCP

# 创建并激活虚拟环境
uv venv .venv
source .venv/Scripts/activate  # 在Windows上使用Git Bash

# 安装开发依赖项
uv pip install -e ".[dev]"

运行测试

pytest

代码风格

该项目使用Ruff进行代码检查和格式化:

ruff check .
ruff format .

项目结构

RhinoMCP/
├── src/
│   ├── rhino_plugin/  # 在Rhino内部运行的代码
│   │   └── rhino_server.py
│   └── rhino_mcp/     # MCP服务器实现
│       ├── rhino_client.py
│       └── mcp_server.py
├── tests/             # 测试模块
├── docs/              # 文档
├── config/            # 配置文件
├── ai/                # AI文档和提示
├── setup.py           # 包安装
├── requirements.txt   # 包依赖项
└── README.md          # 项目文档

许可证

MIT许可证

贡献

欢迎贡献!请随时提交Pull Request。