Rhino MCP服务器
⚠️ 施工中⚠️\ 该项目目前正在积极开发中,尚未投入使用。Rhino插件在创建对象时遇到问题。 我们正在积极寻求社区的支持,以帮助解决这些问题。 如果您有Rhino API开发、C#插件或MCP集成方面的经验,请考虑贡献。 通过在GitHub上打开问题与我们联系。
Rhino 3D的模型上下文协议(MCP)服务器实现,允许Claude创建和操纵3D对象。
概述
该项目为Rhino 3D实现了一个MCP服务器,使Claude等AI助手能够通过模型上下文协议与Rhino进行交互。该服务器允许直接从AI界面创建和操作3D对象。
系统架构
该系统由实现MCP服务器的Python组件和与Rhino集成的C#组件组成。以下是系统组件如何交互的概述:
graph TD
%% Client Applications
client[Client Applications] --> socketProxy
%% Socket Proxy
subgraph "Python Socket Proxy"
socketProxy[socket_proxy.py] --> daemonServer
end
%% Daemon Server
subgraph "Python Daemon Server"
daemonServer[daemon_mcp_server.py] --> combinedServer
end
%% Combined MCP Server
subgraph "Python Combined MCP Server"
combinedServer[combined_mcp_server.py]
mcp[FastMCP] --> tools
combinedServer --> mcp
combinedServer --> rhinoConn
subgraph "MCP Tools"
tools[MCP Tool Methods]
end
rhinoConn[RhinoConnection]
end
%% Rhino Plugin Components
subgraph "C# Rhino Plugin"
rhinoPlugin[RhinoMcpPlugin.cs]
socketServer[RhinoSocketServer.cs]
utilities[RhinoUtilities.cs]
commands[RhinoMcpCommand.cs]
rhinoPlugin --> socketServer
rhinoPlugin --> commands
socketServer --> utilities
end
%% Connections between components
rhinoConn socketServer
%% Logger Components
subgraph "Logging System"
logManager[log_manager.py]
nlogConfig[NLog.config]
end
combinedServer --> logManager
rhinoPlugin --> nlogConfig
%% Connection to Rhino
rhino[Rhino 3D Software]
rhinoPlugin --> rhino
classDef pythonClass fill:#3572A5,color:white;
classDef csharpClass fill:#178600,color:white;
classDef rhinoClass fill:#555555,color:white;
class socketProxy,daemonServer,combinedServer,mcp,tools,rhinoConn,logManager pythonClass;
class rhinoPlugin,socketServer,utilities,commands csharpClass;
class rhino rhinoClass;有关系统架构的更多详细信息,包括组件描述和数据流,请参阅 code_architecture.md.
组件
有几种可用的实现:
- 组合式MCP服务器(推荐):
- combined_mcp_server.py -使用stdin/stdout进行通信的直接实现
- 基于套接字的服务器:
- daemon_mcp_server.py -通过套接字连接接收命令的后台服务器 - socket_proxy.py -将命令从stdin转发到守护进程服务器并返回的代理
- 独立服务器:
- standalone-mcp-server.py -原始独立实现
安装说明
1.设置克劳德桌面
- 如果您还没有安装Claude Desktop,请安装
- 在Claude Desktop设置中配置MCP服务器连接
2.运行服务器
我们现在有一个统一的服务器启动器,允许您运行任何服务器实现:
./server_launcher.sh [mode]可用模式:
combined(默认)-运行组合MCP服务器standalone-运行独立的MCP服务器daemon-运行守护程序MCP服务器socket-proxy-运行套接字代理direct-同时运行守护进程和套接字代理logs-查看最近的日志monitor-实时监控日志errors-查看最近的错误help-显示帮助消息
示例:
# Run the combined server (recommended)
./server_launcher.sh combined
# Or simply
./server_launcher.sh
# Run the socket-based approach (daemon + proxy)
./server_launcher.sh direct
# Monitor logs in real-time
./server_launcher.sh monitor可用工具
服务器提供了几种用于3D建模的工具:
- geometry_tools.create_sphere -创建具有指定中心和半径的球体
- geometry_tools.create_box -创建具有指定尺寸的长方体
- geometry_tools.create_clinder -使用指定参数创建圆柱体
- scene_tools.get_scene_info -获取当前场景的相关信息
- scene_tools.clear_scene -从场景中清除对象
- scene_tools.createlayer -在文档中创建新图层
故障排除
如果您遇到连接问题:
- 确保没有旧服务器正在运行:
./server_launcher.sh help # This will clean up existing processes- 检查日志文件:
./server_launcher.sh logs # View logs
./server_launcher.sh errors # View errors- 完全重新启动克劳德桌面
许可证
该项目在MIT许可证下发布。有关详细信息,请参阅LICENSE文件。
改进的日志记录系统
该系统具有一个统一的日志框架,可以集中所有组件的日志:
- 服务器日志
- 插件日志
- 克劳德AI日志
- 诊断日志
所有日志都遵循一致的格式,并存储在 logs/ 每个组件都有单独的子目录。
日志管理
提供了一个日志管理工具,它提供了查看、监视和分析日志的强大功能:
# View logs
./server_launcher.sh logs
# Monitor logs in real-time
./server_launcher.sh monitor
# View errors with context
./server_launcher.sh errors
# Generate error reports (using the log manager directly)
./log_manager.py report有关使用日志系统的详细信息,请参阅 LOGGING.md.
发展
项目结构
combined_mcp_server.py:主MCP服务器实现diagnose_rhino_connection.py:用于测试Rhino连接的诊断工具log_manager.py:用于管理和分析日志的工具server_launcher.sh:启动任何服务器实现的统一脚本logs/:包含所有日志的目录
添加新功能
- 在中添加新工具作为方法
combined_mcp_server.py文件 - 使用现有的日志框架进行一致的错误处理
- 必要时更新诊断工具
