Rhino MCP Server

Rhino MCP Server

RhinoMCP 通过模型上下文协议 (MCP) 将 Rhino 连接到 Claude AI,从而实现 AI 辅助的 3D 建模和建筑设计。

always-tinkering

研究与数据
访问服务器

README

Rhino MCP 服务器

⚠️ 正在开发中 ⚠️ 本项目目前正在积极开发中,尚未完全可用。Rhino 插件在创建对象时遇到问题。 我们正在积极寻求社区的支持,以帮助解决这些问题。 如果您有 Rhino API 开发、C# 插件或 MCP 集成方面的经验,请考虑贡献您的力量。 请通过在 GitHub 上开启 issue 与我们联系。

一个用于 Rhino 3D 的模型上下文协议 (MCP) 服务器实现,允许 Claude 创建和操作 3D 对象。

概述

本项目为 Rhino 3D 实现了一个 MCP 服务器,使像 Claude 这样的人工智能助手可以通过模型上下文协议与 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. 基于 Socket 的服务器

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

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

安装说明

1. 设置 Claude Desktop

  1. 如果您尚未安装 Claude Desktop,请安装它
  2. 在 Claude Desktop 设置中配置 MCP 服务器连接

2. 运行服务器

我们现在有一个统一的服务器启动器,允许您运行任何服务器实现:

./server_launcher.sh [mode]

可用模式:

  • combined(默认)- 运行组合 MCP 服务器
  • standalone - 运行独立 MCP 服务器
  • daemon - 运行守护程序 MCP 服务器
  • socket-proxy - 运行 socket 代理
  • direct - 同时运行守护程序和 socket 代理
  • logs - 查看最近的日志
  • monitor - 实时监控日志
  • errors - 查看最近的错误
  • help - 显示帮助消息

例子:

# 运行组合服务器(推荐)
./server_launcher.sh combined

# 或者简单地
./server_launcher.sh

# 运行基于 socket 的方法(守护程序 + 代理)
./server_launcher.sh direct

# 实时监控日志
./server_launcher.sh monitor

可用工具

服务器提供了一些用于 3D 建模的工具:

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

故障排除

如果您遇到连接问题:

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

    ./server_launcher.sh help  # 这将清理现有进程
    
  2. 检查日志文件:

    ./server_launcher.sh logs   # 查看日志
    ./server_launcher.sh errors # 查看错误
    
  3. 完全重启 Claude Desktop

许可证

本项目根据 MIT 许可证发布。有关详细信息,请参阅 LICENSE 文件。

改进的日志记录系统

该系统具有统一的日志记录框架,可集中来自所有组件的日志:

  • 服务器日志
  • 插件日志
  • Claude AI 日志
  • 诊断日志

所有日志都遵循一致的格式,并存储在 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/: 包含所有日志的目录

添加新功能

  1. 将新工具作为方法添加到 combined_mcp_server.py 文件中
  2. 使用现有的日志记录框架进行一致的错误处理
  3. 如果需要,更新诊断工具

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python