3D建模服务

为Rhino 3D实现的模型上下文协议(MCP)服务器,允许AI助手创建和操作3D对象。

  • by always-tinkering
  • C#
  • 本地部署
  • 57 星标
  • 更新于
在 GitHub 查看 always-tinkering/rhinoMcpServer

使用说明

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.

组件

有几种可用的实现:

  1. 组合式MCP服务器(推荐):

    • combined_mcp_server.py -使用stdin/stdout进行通信的直接实现
  2. 基于套接字的服务器:

    • daemon_mcp_server.py -通过套接字连接接收命令的后台服务器
    • socket_proxy.py -将命令从stdin转发到守护进程服务器并返回的代理
  3. 独立服务器:

    • standalone-mcp-server.py -原始独立实现

安装说明

1.设置克劳德桌面

  1. 如果您还没有安装Claude Desktop,请安装
  2. 在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建模的工具:

  1. geometry_tools.create_sphere -创建具有指定中心和半径的球体
  2. geometry_tools.create_box -创建具有指定尺寸的长方体
  3. geometry_tools.create_clinder -使用指定参数创建圆柱体
  4. scene_tools.get_scene_info -获取当前场景的相关信息
  5. scene_tools.clear_scene -从场景中清除对象
  6. scene_tools.createlayer -在文档中创建新图层

故障排除

如果您遇到连接问题:

  1. 确保没有旧服务器正在运行:

    ./server_launcher.sh help  # This will clean up existing processes
    
  2. 检查日志文件:

    ./server_launcher.sh logs   # View logs
    ./server_launcher.sh errors # View errors
    
  3. 完全重新启动克劳德桌面

许可证

该项目在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/:包含所有日志的目录

添加新功能

  1. 在中添加新工具作为方法 combined_mcp_server.py 文件
  2. 使用现有的日志框架进行一致的错误处理
  3. 必要时更新诊断工具