⚠️ 正在建设中 ⚠️
该项目正处于积极开发阶段,尚未完全运行。Rhino 插件在创建对象时遇到了问题。 我们正在积极寻求社区的支持来解决这些问题。 如果您有使用 Rhino API 开发、C# 插件或 MCP 集成的经验,请考虑贡献您的力量。 请通过在 GitHub 上打开一个 Issue 来联系我们。
这是一个针对 Rhino 3D 的 Model Context Protocol (MCP) 服务器实现,允许 Claude 创建和操作 3D 对象。
本项目实现了用于 Rhino 3D 的 MCP 服务器,使像 Claude 这样的 AI 助手能够通过 Model Context Protocol 与 Rhino 进行交互。该服务器允许从 AI 接口直接创建和操作 3D 对象。
系统由实现 MCP 服务器的 Python 组件和与 Rhino 集成的 C# 组件组成。以下是系统组件如何交互的概述:
graph TD
%% 客户端应用
client[客户端应用] --> socketProxy
%% Socket 代理
subgraph "Python Socket 代理"
socketProxy[socket_proxy.py] --> daemonServer
end
%% 守护进程服务器
subgraph "Python 守护进程服务器"
daemonServer[daemon_mcp_server.py] --> combinedServer
end
%% 组合 MCP 服务器
subgraph "Python 组合 MCP 服务器"
combinedServer[combined_mcp_server.py]
mcp[FastMCP] --> tools
combinedServer --> mcp
combinedServer --> rhinoConn
subgraph "MCP 工具"
tools[MCP 工具方法]
end
rhinoConn[RhinoConnection]
end
%% Rhino 插件组件
subgraph "C# Rhino 插件"
rhinoPlugin[RhinoMcpPlugin.cs]
socketServer[RhinoSocketServer.cs]
utilities[RhinoUtilities.cs]
commands[RhinoMcpCommand.cs]
rhinoPlugin --> socketServer
rhinoPlugin --> commands
socketServer --> utilities
end
%% 组件之间的连接
rhinoConn <==> socketServer
%% 日志组件
subgraph "日志系统"
logManager[log_manager.py]
nlogConfig[NLog.config]
end
combinedServer --> logManager
rhinoPlugin --> nlogConfig
%% 连接到 Rhino
rhino[Rhino 3D 软件]
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 - 直接实现,使用标准输入/输出进行通信基于 Socket 的服务器:
daemon_mcp_server.py - 后台服务器,通过套接字连接接收命令socket_proxy.py - 代理,将来自标准输入的命令转发到守护进程服务器并返回独立服务器:
standalone-mcp-server.py - 原始独立实现我们现在有一个统一的服务器启动器,可以运行任何服务器实现:
./server_launcher.sh [模式]
可用模式:
combined(默认) - 运行组合 MCP 服务器standalone - 运行独立 MCP 服务器daemon - 运行守护进程 MCP 服务器socket-proxy - 运行套接字代理direct - 运行守护进程和套接字代理logs - 查看最近的日志monitor - 实时监控日志errors - 查看最近的错误help - 显示帮助信息示例:
# 运行组合服务器(推荐)
./server_launcher.sh combined
# 或者简单地
./server_launcher.sh
# 运行基于套接字的方法(守护进程 + 代理)
./server_launcher.sh direct
# 实时监控日志
./server_launcher.sh monitor
服务器提供了几个用于 3D 建模的工具:
如果您遇到连接问题:
确保没有旧服务器正在运行:
./server_launcher.sh help # 这将清理现有进程
检查日志文件:
./server_launcher.sh logs # 查看日志
./server_launcher.sh errors # 查看错误
完全重启 Claude Desktop
本项目发布在 MIT 许可证下。详情请参阅 LICENSE 文件。
系统具有一个统一的日志框架,集中了所有组件的日志:
所有日志遵循一致的格式,并存储在 logs/ 目录中,每个组件都有单独的子目录。
提供了一个日志管理工具,具有强大的查看、监控和分析日志的能力:
# 查看日志
./server_launcher.sh logs
# 实时监控日志
./server_launcher.sh monitor
# 查看带上下文的错误
./server_launcher.sh errors
# 生成错误报告(直接使用日志管理器)
./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 文件中