RhinoMCP

by reer-ide
MIT License

RhinoMCP - Rhino モデルコンテキストプロトコル統合

このプロジェクトはREER, INC.によって開発され、コミュニティが利用およびテストできるように公開されています。RhinoMCPの機能改善と拡張にご協力いただける貢献者を歓迎します。RhinoMCPは、Model Context Protocol(MCP)を介してRhino、GrasshopperなどをClaude AIに接続し、ClaudeがRhinoを直接操作できるようにします。この統合により、プロンプトによる支援を受けた3Dモデリング、シーン作成、および操作が可能になります。( blender_mcpに触発されました)

このプロジェクトでは、次の 2 つのサーバー実装が提供されます。

  • Claude Desktop 統合用の標準 Stdio プロトコル MCP サーバー
  • カスタム Web クライアント統合用の SSE (サーバー側イベント) プロトコル サーバー

特徴

ライノ
  • 双方向通信: ソケットベースのサーバーを介してClaude AIをRhinoに接続します
  • オブジェクトの操作と管理:メタデータを含む Rhino での 3D オブジェクトの作成と変更
  • レイヤー管理: Rhino レイヤーの表示と操作
  • シーン検査: 現在の Rhino シーンの詳細情報を取得します (スクリーンキャプチャを含む)
  • コード実行: Claude の Rhino で任意の Python コードを実行する
  • オブジェクトの選択: Rhinoで現在選択されているオブジェクトに関する情報を取得します
  • RhinoScriptSyntaxドキュメント: RhinoScriptSyntaxのドキュメントを参照します
グラスホッパー(開発中)

重要事項:Claude では Grasshopper 統合ツールが利用可能のように見えますが、現在開発中であり、完全にはご利用いただけません。今後のリリースで Grasshopper の完全な機能を実装できるよう取り組んでいます。

コンポーネント

このシステムは、次の 2 つの主要コンポーネントで構成されています。

  1. Rhino 側スクリプト ( rhino_script.py ) : Rhino 内で実行され、コマンドを受信して実行するソケット サーバーを作成する Python スクリプト
  2. MCP サーバー ( rhino_mcp/server.py ) : モデルコンテキストプロトコルを実装し、Rhino スクリプトに接続する Python サーバー

インストール

前提条件

  • Rhino 7以降
  • Python 3.10以降
  • UVパッケージマネージャー
  • Conda(環境管理用)または既存のPythonインストール

インストールオプション

uvをインストールする

Mac を使用している場合は、ターミナルを開いて次のコマンドを実行します。

wget -qO- https://astral.sh/uv/install.sh | sh

WindowsではPowershellを開いて実行します

irm https://astral.sh/uv/install.ps1 | iex

それ以外の場合、インストール手順はウェブサイトに掲載されています: Install uv

⚠️UVをインストールする前に続行しないでください

オプション 1: uvx/pip を使用したクイックインストール (推奨)

まず、Claude Desktop と統合する必要があります。

  1. Claude Desktop > 設定 > 開発者 > 設定の編集に移動します
  2. claude_desktop_config.jsonファイルを開き、次の構成を追加します。
{ "mcpServers": { "rhino": { "command": "uvx", "args": ["reer-rhino-mcp"] } } }
  1. ファイルを保存する

カーソルを使用する場合:Macユーザーの場合は、「設定」>「MCP」に移動し、次のコードを貼り付けます。

  • グローバルサーバーとして使用するには、「新しいグローバルMCPサーバーを追加」ボタンを使用して貼り付けます。
  • プロジェクト固有のサーバーとして使用するには、プロジェクトのルートに.cursor/mcp.jsonを作成し、貼り付けます。
{ "mcpServers": { "rhino": { "command": "uvx", "args": [ "reer-rhino-mcp" ] } } }

Windows ユーザーの場合は、[設定] > [MCP] > [サーバーの追加] に移動し、次の設定で新しいサーバーを追加します。

{ "mcpServers": { "rhino": { "command": "cmd", "args": [ "/c", "uvx", "reer-rhino-mcp" ] } } }

次に、Rhino 側のスクリプトをインストールします。

  1. リポジトリからrhino_script.pyファイルをダウンロードします。
  2. オープンライノ
  3. Rhino 7の場合:
    • Python エディターを開きます。
      • 「ツール」メニューをクリックします
      • 「Pythonエディタ」を選択します(またはCtrl+Alt+P / Cmd+Alt+Pを押します)。
    • Python エディターの場合:
      • 「ファイル」>「開く」をクリックします
      • rhino_script.pyに移動して選択します。
      • 「実行」をクリック(またはF5キーを押す)
  4. Rhino 8の場合:
    • 「ツール」メニューをクリックします
    • 「RhinoScript」>「実行」を選択
    • rhino_script.pyに移動して選択します。
  5. スクリプトは自動的に開始され、Python エディターに次のメッセージが表示されます。
    RhinoMCP script loaded. Server started automatically. To stop the server, run: stop_server()

最後に、Claude Desktopを再起動すると、MCPサーバーが自動的に起動し、Rhinoに接続します。

この方法は、ソース コードを変更せずに RhinoMCP を使用したいほとんどのユーザーに推奨されます。

この方法については、ビデオ チュートリアルもご覧ください。

オプション2: ローカル開発インストール

ソースコードを変更したり、プロジェクトに貢献したりしたい場合は、開発モードでインストールできます。

リポジトリをクローンする

Condaの使用
  1. Python 3.10 で新しい conda 環境を作成します。
    conda create -n rhino_mcp python=3.10 conda activate rhino_mcp
  2. uvパッケージ マネージャーをインストールします。
    pip install uv
  3. 開発モードでパッケージをインストールします。
    uv pip install -e .
既存のPythonインストールの使用

Python がすでにインストールされている場合は、MCP サーバーをベース環境に直接インストールできます。

  1. 開発モードでパッケージをインストールします。
    pip install -e .
  2. Claude Desktop の設定では、Python インストールへの正しいシステムパスを見つける必要があります。これは次のコマンドで確認できます。
    which python # On macOS/Linux where python # On Windows
クロードデスクトップ統合

オプション 1 と同じですが、 claude_desktop_config.jsonファイルで Python インタープリターへのフル パスを指定する必要があります。

{ "mcpServers": { "rhino": { "command": "/your/python/path", "args": ["-m", "rhino_mcp.server"] } } }

Python パスの例:

  • Windows: C:\\Users\\username\\anaconda3\\envs\\rhino_mcp\\python.exe
  • macOS: /Users/username/anaconda3/envs/rhino_mcp/bin/python

必ず次の点に注意してください:

  • Python パスを、conda 環境の Python へのパス、または 2 番目の方法を使用する場合はシステム Python へのパスに置き換えます。
  • ファイルを保存し、Claude Desktopを再起動します。

重要な注意: conda 環境を使用している場合は、上記のように Python インタープリターへのフルパスを指定する必要があります。

SSE (サーバー側イベント) プロトコル Rhino MCP サーバー

SSEサーバーは、Rhino MCPサーバーの代替実装であり、サーバーサイドイベントを使用してリアルタイム通信を行います。このサーバーは127.0.0.1:8080で動作し、カスタムWebクライアントと連携するように設計されています。標準のMCPサーバーと同じ機能を提供しますが、Webベースのアプリケーションに適した異なるトランスポートプロトコルを使用します。

SSE サーバーを使用するには:

  1. python -m rhino_mcp.server_sseを使用してサーバーを実行します。
  2. Webクライアントをws://127.0.0.1:8080/sseに接続します。
  3. http://127.0.0.1:8080/messages/にメッセージを送信します

SSE サーバーは、標準の MCP サーバーと同じ Rhino 操作をすべてサポートしているため、Rhino コントロール用のカスタム Web インターフェイスの構築に最適です。

使用法

クロードと一緒に使う

接続すると、Claude または他の LLM は次の MCP ツールを使用できるようになります。

  • get_rhino_scene_info() : レイヤーとサンプルオブジェクトに焦点を当てた簡略化されたシーン情報を取得します。
  • get_rhino_layers() : Rhinoシーン内のすべてのレイヤーに関する情報を取得します
  • execute_code(code) : Rhinoで任意のPythonコードを実行する
  • get_rhino_objects_with_metadata(filters, metadata_fields) : シーン内のオブジェクトに関する詳細情報をメタデータとともに取得します。オプションでフィルタリングも可能です。
  • capture_rhino_viewport(layer, show_annotations, max_size) : オプションの注釈とレイヤーフィルタリングを使用してビューポートをキャプチャします。
  • get_rhino_selected_objects(include_lights, include_grips) : Rhinoビューポートで現在選択されているオブジェクトに関する情報を取得します。
  • look_up_RhinoScriptSyntax(function_name) : Rhino3D開発者ウェブサイトからRhinoScriptSyntax関数のドキュメントを直接参照します。

コマンド例

クロードに依頼できる作業の例をいくつか示します。

  • 「現在のRhinoシーンに関する情報を入手する」
  • 「原点に立方体を作成する」
  • 「Rhinoドキュメント内のすべてのレイヤーを取得する」
  • 「この Python コードを Rhino で実行します: ...」
  • 「Rhino で選択した壁の寸法を教えていただけますか?」
  • 「Rhinoで選択したフロアの表面積を計算するのを手伝ってください」
  • 「SelectedObjects関数のドキュメントを表示してください」
  • 「Rhino スクリプトで AddCylinder 関数を使用するにはどうすればよいですか?」
  • ...

貢献

RhinoMCPプロジェクトへの貢献を歓迎します!ご興味をお持ちいただけましたら、以下の方法で貢献いただけます。

  1. バグレポート: バグを見つけた場合は、問題の詳細な説明と再現手順を記載した問題を作成してください。
  2. 機能リクエスト: 新しい機能のアイデアをお持ちですか? 問題を開いて議論しましょう。
  3. コードの貢献: 機能を追加したり、バグを修正したりしたいですか?
    • リポジトリをフォークする
    • 変更用の新しいブランチを作成する
    • 変更内容を明確に記述したプルリクエストを送信します

コードが既存のスタイルに従っており、適切なドキュメントが含まれていることを確認してください。

免責事項

本ソフトウェアは、明示的または黙示的を問わず、いかなる種類の保証もなく、「現状のまま」提供されます。REER, INC. は、品質、信頼性、互換性、特定目的への適合性など、本ソフトウェアに関して一切の保証、表明、または保証を行いません。

このソフトウェアを使用することにより、お客様は、REER, INC. が、ソフトウェアの使用または使用不能から生じる直接的、間接的、偶発的、特別、または結果的な損害に対して責任を負わないことを認め、同意するものとします。

このプロジェクトは現在開発中であり、バグや不完全な機能が含まれている可能性があります。品質と信頼性の向上に努めておりますが、本番環境での実装には十分な注意を払ってください。

関連ドキュメントとリソース

-
security - not tested
-
license - not tested
-
quality - not tested

Rhino と Grasshopper を Claude AI に接続し、Rhino 環境との直接的な AI 対話を通じてプロンプト支援による 3D モデリング、シーン作成、および操作を可能にするモデル コンテキスト プロトコル サーバー。

  1. 特徴
    1. ライノ
    2. グラスホッパー(開発中)
  2. コンポーネント
    1. インストール
      1. 前提条件
      2. インストールオプション
    2. uvをインストールする
      1. オプション 1: uvx/pip を使用したクイックインストール (推奨)
      2. オプション2: ローカル開発インストール
      3. SSE (サーバー側イベント) プロトコル Rhino MCP サーバー
    3. 使用法
      1. クロードと一緒に使う
      2. コマンド例
    4. 貢献
      1. 免責事項
        1. 関連ドキュメントとリソース
          ID: d0aebegt2e