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 つの主要コンポーネントで構成されています。
- Rhino 側スクリプト (
rhino_script.py
) : Rhino 内で実行され、コマンドを受信して実行するソケット サーバーを作成する Python スクリプト - MCP サーバー (
rhino_mcp/server.py
) : モデルコンテキストプロトコルを実装し、Rhino スクリプトに接続する Python サーバー
インストール
前提条件
- Rhino 7以降
- Python 3.10以降
- UVパッケージマネージャー
- Conda(環境管理用)または既存のPythonインストール
インストールオプション
uvをインストールする
Mac を使用している場合は、ターミナルを開いて次のコマンドを実行します。
WindowsではPowershellを開いて実行します
それ以外の場合、インストール手順はウェブサイトに掲載されています: Install uv
⚠️UVをインストールする前に続行しないでください
オプション 1: uvx/pip を使用したクイックインストール (推奨)
まず、Claude Desktop と統合する必要があります。
- Claude Desktop > 設定 > 開発者 > 設定の編集に移動します
claude_desktop_config.json
ファイルを開き、次の構成を追加します。
- ファイルを保存する
カーソルを使用する場合:Macユーザーの場合は、「設定」>「MCP」に移動し、次のコードを貼り付けます。
- グローバルサーバーとして使用するには、「新しいグローバルMCPサーバーを追加」ボタンを使用して貼り付けます。
- プロジェクト固有のサーバーとして使用するには、プロジェクトのルートに
.cursor/mcp.json
を作成し、貼り付けます。
Windows ユーザーの場合は、[設定] > [MCP] > [サーバーの追加] に移動し、次の設定で新しいサーバーを追加します。
次に、Rhino 側のスクリプトをインストールします。
- リポジトリから
rhino_script.py
ファイルをダウンロードします。 - オープンライノ
- Rhino 7の場合:
- Python エディターを開きます。
- 「ツール」メニューをクリックします
- 「Pythonエディタ」を選択します(またはCtrl+Alt+P / Cmd+Alt+Pを押します)。
- Python エディターの場合:
- 「ファイル」>「開く」をクリックします
rhino_script.py
に移動して選択します。- 「実行」をクリック(またはF5キーを押す)
- Python エディターを開きます。
- Rhino 8の場合:
- 「ツール」メニューをクリックします
- 「RhinoScript」>「実行」を選択
rhino_script.py
に移動して選択します。
- スクリプトは自動的に開始され、Python エディターに次のメッセージが表示されます。Copy
最後に、Claude Desktopを再起動すると、MCPサーバーが自動的に起動し、Rhinoに接続します。
この方法は、ソース コードを変更せずに RhinoMCP を使用したいほとんどのユーザーに推奨されます。
この方法については、ビデオ チュートリアルもご覧ください。
オプション2: ローカル開発インストール
ソースコードを変更したり、プロジェクトに貢献したりしたい場合は、開発モードでインストールできます。
リポジトリをクローンする
Condaの使用
- Python 3.10 で新しい conda 環境を作成します。Copy
uv
パッケージ マネージャーをインストールします。Copy- 開発モードでパッケージをインストールします。Copy
既存のPythonインストールの使用
Python がすでにインストールされている場合は、MCP サーバーをベース環境に直接インストールできます。
- 開発モードでパッケージをインストールします。Copy
- Claude Desktop の設定では、Python インストールへの正しいシステムパスを見つける必要があります。これは次のコマンドで確認できます。Copy
クロードデスクトップ統合
オプション 1 と同じですが、 claude_desktop_config.json
ファイルで Python インタープリターへのフル パスを指定する必要があります。
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 サーバーを使用するには:
python -m rhino_mcp.server_sse
を使用してサーバーを実行します。- Webクライアントを
ws://127.0.0.1:8080/sse
に接続します。 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プロジェクトへの貢献を歓迎します!ご興味をお持ちいただけましたら、以下の方法で貢献いただけます。
- バグレポート: バグを見つけた場合は、問題の詳細な説明と再現手順を記載した問題を作成してください。
- 機能リクエスト: 新しい機能のアイデアをお持ちですか? 問題を開いて議論しましょう。
- コードの貢献: 機能を追加したり、バグを修正したりしたいですか?
- リポジトリをフォークする
- 変更用の新しいブランチを作成する
- 変更内容を明確に記述したプルリクエストを送信します
コードが既存のスタイルに従っており、適切なドキュメントが含まれていることを確認してください。
免責事項
本ソフトウェアは、明示的または黙示的を問わず、いかなる種類の保証もなく、「現状のまま」提供されます。REER, INC. は、品質、信頼性、互換性、特定目的への適合性など、本ソフトウェアに関して一切の保証、表明、または保証を行いません。
このソフトウェアを使用することにより、お客様は、REER, INC. が、ソフトウェアの使用または使用不能から生じる直接的、間接的、偶発的、特別、または結果的な損害に対して責任を負わないことを認め、同意するものとします。
このプロジェクトは現在開発中であり、バグや不完全な機能が含まれている可能性があります。品質と信頼性の向上に努めておりますが、本番環境での実装には十分な注意を払ってください。
関連ドキュメントとリソース
- MCP 公式ドキュメント:
- オープンソース MCP ドキュメント: https://github.com/cyanheads/model-context-protocol-resources
- AI エージェント インターフェースを構築するためのオープン Web UI: https://github.com/open-webui/open-webui
- Stdio サーバーと SSE サーバーを切り替える: https://github.com/supercorp-ai/supergateway
This server cannot be installed
Rhino と Grasshopper を Claude AI に接続し、Rhino 環境との直接的な AI 対話を通じてプロンプト支援による 3D モデリング、シーン作成、および操作を可能にするモデル コンテキスト プロトコル サーバー。