mcpField
R
Rhino

Rhino

ローカル
github.com/jingcheng-chenメディア・デザイン1.2k2 週間前に更新

Rhino について

RhinoMCP は、Rhino 3D と Grasshopper を AI アシスタントに接続し、チャットでジオメトリのモデリング、ドキュメントの読み取り、Grasshopper 定義の構築を行えるようにします。対象は Windows と macOS 上の Rhino 8 です。

主な機能

  1. 01自然言語によるジオメトリの作成とモデリング
  2. 02ドキュメントの読み取りとビューポートのキャプチャ
  3. 03Grasshopper コンポーネントの検索・接続・ソルブ
  4. 04ネイティブコマンドとスクリプトの実行
  5. 05名前・色・カテゴリによるオブジェクトの選択

活用シーン

  1. 01チャットによるRhinoジオメトリの一括作成や変更
  2. 02ビューポートのスクリーンショットによるビジュアルフィードバックの取得
  3. 03自然言語からのパラメトリックな Grasshopper 定義の構築

MCP 対応

本プロジェクトは MCP サーバーであり、Python サーバーを通じて Rhino と Grasshopper のツールを MCP クライアントに公開し、TCP 経由で Rhino プラグインへ処理を転送します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"rhinomcp": {
"command": "uvx",
"args": [
"rhinomcp"
]
}
}
}
起動コマンドuvx rhinomcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypirhinomcp

ツール

70

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
curve_idsarrayはい
nameanyいいえ
closedbooleanいいえ
loft_typeintegerいいえ

詳細

RhinoMCP のロゴ

RhinoMCP

自然な言葉で、AI を使って Rhino 3D と Grasshopper を操作できます。

RhinoMCP は、Model Context Protocol を介して Rhino と AI エージェントを接続します。 これにより、Claude や Cursor などのアシスタントは、会話するだけでジオメトリをモデリングしたり、ドキュメントを読み取ったり、 Grasshopper の定義を作成したりできます。

PyPI Rhino 8 Python 3.10+ MCP License: MIT

クイックスタート · できること · 使い方 · 例 · ツールリファレンス

English · 简体中文


特長

自律的な改善実験を開発する場合は、まず 継続ガイドをご覧ください。

  • 作りたいものを説明すると、アシスタントが Rhino で作成します。
  • ドキュメントを読み取り、ビューポートをキャプチャできるため、実際に画面に表示されている内容をもとに作業します。
  • Grasshopper のスクリプトを作成します。コンポーネントの検索、接続、スライダーの設定、ソルブまで行います。
  • 1 つのプラグインと 1 つの設定項目で、Rhino と Grasshopper の両方に対応します。
  • さらに細かく制御したい場合は、ネイティブの Rhino コマンド、RhinoScript-Python、または RhinoCommon C# を実行できます。

メモ

RhinoMCP は、Windows および macOS 上の Rhino 8 を対象としています。

デモ

双方向インタラクションのデモ

双方向インタラクション: AI がジオメトリの作成と読み取りの両方を行います。

カスタムスクリプトのデモ

カスタムスクリプト: AI が Rhino 内でスクリプトを作成して実行します。

手順を追った説明をご希望ですか?Nate が、紹介動画とインストール方法を解説するYouTube のチュートリアルを公開しています。

できること

rhinoceros-6 Rhino
領域AI でできること
ジオメトリの作成点、線、ポリライン、円、円弧、楕円、曲線、ボックス、球、円錐、円柱、サーフェスを、1 つずつ、または一括で作成します
変換と編集オブジェクトの移動、回転、スケーリング、色の変更、名前の変更、削除を行います
高度なモデリングロフト、押し出し、スイープ、オフセット、パイプ、ブール演算による和・差・積を行います
曲線操作曲線の投影、交差、分割を行います
レイヤーと属性レイヤーの作成、削除、切り替え、オブジェクト属性の読み取りと書き込みを行います
確認と選択ドキュメントの概要、オブジェクト情報、条件による絞り込み選択(名前、色、カテゴリによる指定、AND / OR ロジックに対応)
モデルの表示ビューポートをキャプチャして、AI に視覚的なフィードバックを提供します
分析長さ、面積、体積、バウンディングボックスなどを計測します
さらに詳しく任意の Rhino コマンドの実行、RhinoScript-Python の実行、RhinoCommon C# の実行ができます。RhinoScript のドキュメント検索機能も組み込まれています
grasshopper Grasshopper
領域AI でできること
コンポーネントを検索インストール済みのコンポーネントライブラリを検索し、配置する前にコンポーネントの入力と出力を確認します
キャンバスを構築コンポーネントの追加、配置、レイアウト、更新、削除を行います
配線するコンポーネント間のパラメーターを接続、切断します
値の設定と読み取りスライダー、トグル、パネル、値リストを操作し、出力から構造化データを読み取ります
ソルブソリューションを実行し、実行時の警告とエラーを表示します
一度に構築グラフ全体の構築と配線、または既存のグラフの変更を、1 回の一括操作で行います

クイックスタート

3 つの手順で完了します。Rhino プラグインをインストールし、AI クライアントを接続してから、Rhino でブリッジを起動します。

1. Rhino プラグインをインストールする

Rhino で Tools → Package Manager を開き、rhinomcp を検索して Install をクリックします。Rhino を再起動します。

2. AI クライアントを接続する
オプション A:AI アシスタントにインストールを依頼する(推奨)

エージェント型アシスタント(Codex、Claude Code、Cursor、Cline など)を使用している場合は、このプロンプトを貼り付けます。

Please install https://github.com/jingcheng-chen/rhinomcp as a local MCP server named `rhino`.
オプション B:MCP サーバーをインストールするか、設定を手動で編集する

Codex:次の 1 つのコマンドで設定します。

codex mcp add rhino --env RHINO_MCP_HOST=127.0.0.1 -- uvx rhinomcp@latest

Claude Code:次の 1 つのコマンドで設定します。

claude mcp add rhino -- uvx rhinomcp@latest

ChatGPT: 上記のローカルセットアップには Codex を使用してください。ChatGPT アプリ/MCP コネクターは現在、リモート MCP サーバーに接続します。uvx rhinomcp のようなローカルの stdio コマンドには接続しません。RhinoMCP を使った ChatGPT アプリを構築する場合は、リモートまたはトンネル経由の MCP エンドポイントを使用して、ChatGPT の開発者モードを利用してください。

設定を手動で編集することもできます。

{
  "mcpServers": {
    "rhino": {
      "command": "uvx",
      "args": ["rhinomcp@latest"],
      "env": {
        "RHINO_MCP_HOST": "127.0.0.1"
      }
    }
  }
}

重要

起動ツールの uvx は uv に含まれています。まだインストールしていない場合: macOS brew install uv · Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

一度に起動する RhinoMCP サーバーは 1 つだけにしてください(Codex、Claude、Cursor など。複数を同時に起動しないでください)。

AI クライアントと一緒にサーバーを自動再起動する(任意)

クライアントを起動するたびに、残っている rhinomcp プロセスを終了するには:

macOS / Linux

{
  "mcpServers": {
    "rhino": {
      "command": "sh",
      "args": ["-c", "killall rhinomcp 2>/dev/null; uvx rhinomcp@latest"]
    }
  }
}

Windows

{
  "mcpServers": {
    "rhino": {
      "command": "cmd",
      "args": ["/c", "taskkill /F /IM rhinomcp.exe 2>nul & uvx rhinomcp@latest"]
    }
  }
}
3. Rhino ブリッジを起動する

Rhino を起動した状態で、コマンドラインに mcpstart と入力します。これにより、サーバーが接続する TCP ブリッジが起動します(mcpstop で停止します)。Rhino セッションごとに 1 回実行してください。

最新の状態を維持する

RhinoMCP は、それぞれ個別に更新される 3 つの部分で構成されています。

  • Python サーバー。 uvx rhinomcp@latest は、クライアントがサーバーを起動するたびに PyPI から最新リリースを取得します。通常の uvx rhinomcp は、最初にダウンロードしたバージョンを使い続けます。オフラインで作業する場合は、uv tool install rhinomcp で一度インストールし、都合のよいときに uv tool upgrade rhinomcp を実行してください。
  • Rhino プラグイン。 パッケージマネージャーからインストールすると、「Rhino の起動時にパッケージを自動更新する」が有効な場合、Rhino は起動時に更新を確認してインストールします。新しいバージョンは次回の再起動時に読み込まれます。.rhp を Rhino にドラッグしてインストールしたプラグインは更新されません。
  • AI クライアント。 サーバーの起動時にツール一覧を読み込むため、更新後はクライアントを再起動するか、サーバーに再接続してください。

サーバーは接続時にプラグインのバージョンを読み取り、2 つのバージョンが異なる場合はログで警告します。新しいプラグインが必要なツールは、何もせず別の動作をするのではなく、更新を促すメッセージを表示して失敗します。また、describe_capabilities は両方のバージョンを報告します。

使用方法

ブリッジを起動し、クライアントを接続すると、RhinoMCP のツールが表示されます。あとはチャットで、何かをモデリングするよう依頼したり、シーンを確認したり、Grasshopper グラフを作成したりできます。

Rhino のコマンドラインでの mcpstart Claude での RhinoMCP ツール

Grasshopper を使う場合は、Rhino を起動して mcpstart を実行するだけです。アシスタントが Grasshopper ドキュメントを開いたり作成したりしてから、定義を構築できます。たとえば、「高さの異なる円柱で、ポイントアトラクターのパターンを作成して」 と依頼できます。

プロンプトの例

原点から 10 単位間隔のグリッド上に 6×6×6 個のボックスを作成し、サイズを 1 から 5 まで段階的に変えてください。サイズに基づいて青から赤へのグラデーションで色を付けてください。RhinoScript Python を使用してください。

立方体ブロックを使って、漫画風の色をしたサイを作成してください。次に、頭を赤に変更し、選択したオブジェクトを Z 軸の周りに 90° 回転してください。

Grasshopper でポイントアトラクターのパターンを作成してください。アトラクターポイントからの距離に応じて高さが変わる円柱のグリッドを作り、ポイントを移動するスライダーも付けてください。

ツールリファレンス

Rhino ツール | ツール | 目的 | | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | | `create_object` / `create_objects` | オブジェクトを1つまたは複数作成します | | `modify_object` / `modify_objects` | オブジェクトを1つまたは複数変換または編集します | | `delete_object` | オブジェクトを削除します | | `boolean_union` / `boolean_difference` / `boolean_intersection` | ブーリアン演算を実行します | | `loft` / `extrude_curve` / `sweep1` / `offset_curve` / `pipe` | 高度なサーフェスおよびソリッドモデリング | | `project_curve` / `intersect_curves` / `split_curve` | 曲線の操作 | | `analyze_objects` | 長さ、面積、体積、バウンディングボックスなどを測定します | | `select_objects` | フィルター(名前、色、カテゴリ、AND / OR)で選択します | | `get_objects` / `get_object_info` / `get_selected_objects_info` | オブジェクトを検索します | | `get_object_attributes` / `update_object_attributes` | オブジェクトの属性を読み取り、書き込みます | | `create_layer` / `delete_layer` / `get_or_set_current_layer` | レイヤーを管理します | | `get_document_summary` | 現在のドキュメントの概要を表示します | | `capture_viewport` | 視覚的なフィードバック用にビューポートのスクリーンショットを撮影します | | `run_command` | Rhino のネイティブコマンドを実行します | | `execute_rhinoscript_python_code` | RhinoScript-Python を実行します | | `execute_rhinocommon_csharp_code` | RhinoCommon C# を実行します | | `search_rhinoscript_functions` / `get_rhinoscript_docs` / `list_rhinoscript_modules` / `get_module_functions` | RhinoScript API のドキュメントを検索します | | `get_commands` | 使用可能なコマンドを一覧表示します | | `undo` / `redo` | 元に戻す/やり直す |
Grasshopper ツール | ツール | 用途 | | --------------------------------------------------------------------- | ------------------------------------------------- | | `gh_create_document` / `gh_get_document_info` / `gh_get_canvas_state` | ドキュメントとキャンバスの確認 | | `gh_search_components` / `gh_batch_search_components` | コンポーネントライブラリを検索 | | `gh_list_component_categories` / `gh_get_available_components` | インストール済みコンポーネントを閲覧 | | `gh_get_component_type_info` / `gh_get_component_info` | コンポーネントの種類またはインスタンスを確認 | | `gh_list_components` | キャンバス上のコンポーネントを一覧表示 | | `gh_add_component` / `gh_update_component` / `gh_delete_component` | コンポーネントを追加、更新、または削除 | | `gh_layout_components` | キャンバスを自動レイアウト | | `gh_clear_canvas` | キャンバスをクリア | | `gh_connect_components` / `gh_disconnect_components` | パラメーターを接続または切断 | | `gh_set_parameter_value` / `gh_get_parameter_value` | 入力を設定し、出力を読み取る | | `gh_run_solution` / `gh_expire_solution` | ソリューションを実行または期限切れにする | | `gh_build_graph` / `gh_mutate_graph` | 1 回のバッチ呼び出しでグラフ全体を構築または変更 | | `gh_get_graph` / `gh_clear_graph` | グラフ ID でオブジェクトを確認またはクリア |

仕組み

AI client ──MCP (stdio)──► rhinomcp (Python) ──TCP 127.0.0.1:1999──► Rhino plugin ──► Rhino + Grasshopper
  1. server/:各ツールを公開し、Rhino に転送する Python 製の MCP サーバー(公式 Python SDK 2.x)です。
  2. plugin/:Rhino 内で TCP リスナーを実行し、メインスレッド上でコマンドを実行する RhinoCommon C# プラグインです。Rhino コマンド mcpstart / mcpstop で起動・停止します。
  3. contracts/:2 つの階層間でワイヤープロトコルの同期を保つ JSON Schema 定義です。

コードの詳細については、IMPLEMENTATION.md をご覧ください。

セキュリティ

Python サーバーと Rhino プラグインは、認証されていない TCP ループバックリンク (127.0.0.1:1999)を介して通信します。run_command、execute_rhinoscript_python_code、 execute_rhinocommon_csharp_code などのツールを使うと、Rhino 内でモデルが自由にコードを実行できます。これはローカルでエージェントを使用する場合には問題ありません。認証を追加せずに、ループバックインターフェースの外部に公開しないでください。

オペレーター設定(環境変数)
変数デフォルト効果
RHINO_MCP_HOST127.0.0.1接続先。RHINO_MCP_ALLOW_REMOTE=1 を設定しない限り、ループバック以外のホストへの接続を拒否します。
RHINO_MCP_PORT1999TCP ポート。
RHINO_MCP_ENABLE_RUN_COMMAND10 に設定すると、run_command ツールを無効にします。
RHINO_MCP_ENABLE_RHINOSCRIPT10 に設定すると、RhinoScript-Python の実行を無効にします。
RHINO_MCP_ENABLE_CSHARP10 に設定すると、RhinoCommon C# の実行を無効にします。
RHINO_MCP_VALIDATEwarn実行前のスキーマ検証:off / warn / strict。
RHINO_MCP_TIMEOUT15.0ソケットのタイムアウト(秒)。
RHINO_MCP_DEBUG0詳細なログ出力。

開発者向け

ビルド、テスト、公開

Python サーバー(server/ から実行)

uv venv && uv pip install -e ".[dev]"   # set up
uv run pytest                            # run tests (no Rhino needed; uses a mock server)
uv run ruff check src/rhinomcp           # lint
uv run python ../contracts/test_schemas.py   # validate JSON schemas
uv build && uv publish                   # publish to PyPI

C# プラグイン

dotnet restore plugin/rhinomcp.sln
dotnet build plugin/rhinomcp.sln --configuration Release

プラグインを公開するには、Release 構成でビルドし、manifest.yml を bin/Release にコピーしてから、 yak build と yak push rhinomcp_xxxx.yak を実行します。

コントリビューション

コントリビューションを歓迎します。お気軽に Issue を作成するか、プルリクエストを送信してください。

免責事項

これはサードパーティ製の統合であり、McNeel によって開発されたものではありません。Jingcheng Chen が開発しました。

スター履歴

スター履歴チャート

サーバーに同梱されているモデリングガイダンス

Python パッケージには、変換、平面領域、整理、検証、復旧に関する再利用可能なガイダンスが含まれています。get_modeling_guidance("overview")、asset_general_strategy MCP プロンプト、または rhinomcp://guidance/{topic} リソースを使用してください。ツールの基本的な動作は、ツールの説明に記載されています。ローカルの実験用フォルダーや、別途スキルを用意する必要はありません。利用可能なトピックとリリースの詳細については、同梱されているガイダンスをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。