著者注:Rhino MCP Serverをゼロからデプロイし、CodexでAPIYIのインターフェースを設定して、3ステップで最初の自然言語モデリング指示を実行します。さらに、GPT CodexとClaudeシリーズのモデリング性能を比較します。
一言伝えるだけでRhinoに自動モデリングさせることは、多くの3Dデザイナーやパラメトリックモデリングエンジニアが求めていることです。難しいのはRhinoの操作ではなく、大規模言語モデル、MCPプロトコル、クライアントの3つをどう連携させるかです。この記事では、Codex + Rhino MCP + APIYIインターフェースの接続方法を詳しく解説し、CodexをRhino MCPに接続する実践的な手順をご紹介します。
この記事は概念を解説するだけの内容ではありません。「MCP Serverのデプロイ → Codexインターフェースの設定 → 最初の指示を実行」という流れに沿った、実践ガイドです。ユーザーサポートを通じて、環境をゼロからどう構築するか、CodexをサードパーティAPIにどう接続するか、どのモデルのモデリング性能が優れているかという3つの点で、つまずく方が多いことがわかりました。この記事では、それぞれに答えていきます。
この記事で得られること:読み終えるころには、ローカル環境で自然言語からRhinoのジオメトリを作成できるようになり、異なるモデルのモデリング性能を適切に比較する方法もわかります。

CodexとRhino MCPを連携する際の重要ポイント
作業を始める前に、連携全体がどのような要素で構成され、それぞれを誰が担当するのかを確認しておきましょう。連携に失敗したとき、原因の切り分けでつまずくケースの多くは、「モデルのAPIの問題」と「MCP Serverの問題」を混同していることにあります。
| コンポーネント | 役割 | 提供元/配置先 |
|---|---|---|
| Rhinoプラグイン | Rhino内で指示を受け取り、モデリング操作を実行する | ユーザーのローカルPCにインストール |
| Rhino MCP Server | Rhinoの機能をMCPツールとして提供し、AIクライアントから呼び出せるようにする | ユーザーのローカルPCに配置 |
| Codexクライアント | MCPツールを読み込み、大規模言語モデルとの対話やタスクの実行を管理する | ユーザーのローカルPCにインストール・設定 |
| 大規模言語モデルのAPI | 指示を理解し、手順を計画して、ツール呼び出しのパラメーターを生成する | APIYI経由で接続 |
Rhino MCPの仕組みを詳しく解説
MCP(Model Context Protocol)は、AIクライアントが外部ツールを共通の方法で呼び出すためのプロトコルです。Rhino MCP Serverは、「立方体の作成」「現在のドキュメント内のオブジェクト取得」「Pythonスクリプトの実行」などの機能をツールとして登録します。Codexは起動時に、ツール名や説明、パラメーターの構造を読み込み、それらをまとめて大規模言語モデルに送信します。
「原点に100×50×20の立方体を描いて」と入力しても、モデルがRhinoを直接操作するわけではありません。モデルは構造化されたツール呼び出しリクエストを返し、CodexがそのリクエストをMCP Serverに転送します。次に、Serverがローカル接続を通じてRhinoプラグインに指示を送り、プラグインが操作を実行します。結果は同じ経路をたどってモデルに返されます。そのため、モデリングの品質は、基本的にモデルのツール呼び出し能力と、複数ステップのタスクを計画する能力に左右されます。モデルを選ぶ際に、特に注目したい指標です。

CodexでRhino MCPを使うための環境準備
始める前に、使用するPCが以下の条件を満たしていることを確認してください。Rhino MCPはコミュニティによるオープンソースプロジェクトです。バージョンによってインストール方法が多少異なる場合があるため、詳しくはプロジェクトのREADMEを確認してください。
| 環境項目 | 要件 | 確認方法 |
|---|---|---|
| Rhino | Rhino 7 または Rhino 8(プロジェクトの説明に従ってください) | Rhinoを開いてバージョンを確認 |
| Python環境 | MCPサーバーの実行にはuvのインストールを推奨 | ターミナルで uv --version を実行 |
| Node.js | Codex CLIのインストールに使用 | ターミナルで node -v を実行 |
| Codexクライアント | コマンドライン版、IDEプラグイン、デスクトップ版のいずれでも可 | ターミナルで codex --version を実行 |
| APIキー | CodexまたはClaudeシリーズのモデルを呼び出せるキー | APIYIのコンソールで作成 |
海外の公式APIに安定してアクセスできないネットワーク環境の場合は、まずモデルのインターフェースを利用できる状態にしておきましょう。MCPサーバーとRhinoはローカルで動作するため、インターネット接続が必要なのはモデルの推論リクエストだけです。
CodexでRhino MCPを使う方法:3ステップでAIによる自動モデリングを実現
第 1 步:Rhino MCP Server のデプロイ
コミュニティーが公開しているオープンソースプロジェクト「rhinomcp」を例にすると、デプロイは「Rhino 側のプラグイン」と「MCP Server 側」の2つに分かれます。
- Rhino で Package Manager を開き、
rhinomcpを検索してプラグインをインストールします。インストール後、Rhino を再起動してください。 - Rhino のコマンドラインにプラグインが提供する起動コマンド(プロジェクトでは
mcpstart)を入力し、プラグインがローカル接続の待ち受けを開始するようにします。 - ターミナルで
uvx rhinomcpを実行し、MCP Server が正常に起動してエラーが発生しないことを確認します。
第 2 步以降は Codex が MCP Server を自動的に起動するため、ここでの手動起動は環境の確認用です。uvx コマンドが見つからないというメッセージが表示される場合は、通常、uv がシステムの PATH に追加されていません。ターミナルを開き直すか、uv の公式ドキュメントに従って設定してください。
第 2 步:Codex で APIYI の接続を設定する
Codex の設定ファイルは、ユーザーディレクトリ内の ~/.codex/config.toml にあります。ここで、カスタムモデルプロバイダーの宣言と Rhino MCP Server の登録を行います。
# ~/.codex/config.toml
model = "gpt-5-codex" # 以 APIYI 控制台中实际可用的模型名为准
model_provider = "apiyi"
[model_providers.apiyi]
name = "APIYI"
base_url = "https://api.apiyi.com/v1" # APIYI OpenAI 兼容接口
env_key = "APIYI_API_KEY" # 从环境变量读取 Key
wire_api = "responses" # 若使用 Chat Completions 协议则改为 "chat"
[mcp_servers.rhino]
command = "uvx"
args = ["rhinomcp"]
次に、ターミナルで環境変数を設定します。Windows ユーザーは、システム環境変数に追加してください。
export APIYI_API_KEY="sk-你的密钥"
wire_api の値は、選択したモデルが対応するプロトコルに合わせる必要があります。設定後にプロトコル関連のエラーが発生した場合は、もう一方の値に切り替えて試してください。詳しくは、APIYI のドキュメントにある Codex の利用方法を確認してください。
第 3 ステップ:最初の自然言語によるモデリング指示を実行する
Rhinoを起動したまま、プラグインがリッスン状態になっていることを確認し、ターミナルで codex と入力してクライアントを起動します。まず「現在、どのようなRhinoツールが使えますか?」と尋ねてみましょう。モデルがモデリング関連のツールを一覧表示できれば、MCPの読み込みは成功しています。
簡単な指示から始めて、少しずつタスクを複雑にしていくのがおすすめです。問題が起きたときに、原因を特定しやすくなります。
| 難易度 | 指示の例 | 確認するモデルの能力 |
|---|---|---|
| 入門 | 原点に100×50×20の直方体を作成する | 1回のツール呼び出し、パラメーターの正確さ |
| 応用 | 1200×600の天板を作成し、四隅に直径40、高さ720の脚を1本ずつ追加する | 複数ステップの計画、座標計算 |
| 複雑 | 5層のらせん階段を作成する。各段を15度回転させ、1段ずつ高さを上げる | ループ処理、Pythonスクリプトの生成 |
| 変更 | シーン内のすべての直方体を赤色に変更し、新しいレイヤーに移動する | ドキュメントの状態を読み取ってから操作する |
複雑なタスクでは、モデルは通常、「Pythonスクリプトを実行する」といったツールを呼び出し、RhinoScriptコードを一度に生成してモデリングを行います。この場合、成功率はモデルのコード生成能力に大きく左右されます。
最小限の例:Pythonでモデルのツール呼び出し機能を検証する
Codexに接続する前に、スクリプトを使って、モデリングツールに対してモデルが正しい呼び出しパラメーターを返せるか確認できます。この手順で「モデルのAPIが利用できない」という問題をすばやく切り分けられます。
import openai, json
client = openai.OpenAI(api_key="YOUR_API_KEY", base_url="https://api.apiyi.com/v1")
tools = [{"type": "function", "function": {
"name": "create_box",
"description": "在 Rhino 中创建立方体",
"parameters": {"type": "object", "properties": {
"origin": {"type": "array", "items": {"type": "number"}},
"size": {"type": "array", "items": {"type": "number"}}},
"required": ["origin", "size"]}}}]
resp = client.chat.completions.create(
model="gpt-5-codex", # 以控制台实际模型名为准
messages=[{"role": "user", "content": "在原点画一个 100x50x20 的立方体"}],
tools=tools)
call = resp.choices[0].message.tool_calls[0]
print(call.function.name, json.loads(call.function.arguments))
完全な実装コードを見る:複数モデルによるモデリング指示の比較テスト
import openai
import json
from typing import List, Dict
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1" # 同一个 Key 可调用 GPT 与 Claude 系列
)
# 待测试的模型,请替换为控制台中实际可用的模型名
MODELS = ["gpt-5-codex", "claude-sonnet-4-5"]
TOOLS = [
{"type": "function", "function": {
"name": "create_box",
"description": "创建立方体,origin 为角点坐标,size 为长宽高",
"parameters": {"type": "object", "properties": {
"origin": {"type": "array", "items": {"type": "number"}},
"size": {"type": "array", "items": {"type": "number"}}},
"required": ["origin", "size"]}}},
{"type": "function", "function": {
"name": "create_cylinder",
"description": "创建圆柱,base 为底面圆心,radius 为半径,height 为高度",
"parameters": {"type": "object", "properties": {
"base": {"type": "array", "items": {"type": "number"}},
"radius": {"type": "number"},
"height": {"type": "number"}},
"required": ["base", "radius", "height"]}}},
]
PROMPT = "画一张 1200x600x30 的桌面,桌面底部在 z=720,四角各加一条直径 40、高 720 的桌腿"
def run_test(model: str) -> List[Dict]:
"""返回模型规划出的全部工具调用"""
try:
resp = client.chat.completions.create(
model=model,
messages=[
{"role": "system", "content": "你是 Rhino 建模助手,请一次性规划所有工具调用。"},
{"role": "user", "content": PROMPT},
],
tools=TOOLS,
)
calls = resp.choices[0].message.tool_calls or []
return [{"name": c.function.name,
"args": json.loads(c.function.arguments)} for c in calls]
except Exception as e:
return [{"error": str(e)}]
if __name__ == "__main__":
for m in MODELS:
result = run_test(m)
print(f"\n===== {m}:共 {len(result)} 个调用 =====")
for item in result:
print(item)
# 期望:1 个 create_box + 4 个 create_cylinder,且桌腿位于四个角
🚀 すぐに始めるには:まずAPIYI apiyi.comで新規ユーザー向けの無料テストクレジットを受け取り、上記のスクリプトでモデルのツール呼び出しが正常に動作するか確認してから、CodexとRhinoに接続することをおすすめします。問題が発生したときに、モデルAPI側の問題か、ローカルのMCP環境側の問題かを明確に切り分けられます。
CodexでRhino MCPに接続する際のモデル選び
AIによる自動モデリングでモデルに求められるのは、主にコード生成、ツール呼び出し、複雑なタスクの計画立案の3点です。これまでのサポート経験を踏まえると、まずはGPT CodexシリーズとClaude Sonnet/Opusシリーズを試すことをおすすめします。以下は定性的な比較です。実際の効果は、ご自身のモデリングタスクで検証してください。

| モデルシリーズ | 主な強み | 適したモデリングシーン | 利用可能なプラットフォーム |
|---|---|---|---|
| GPT Codexシリーズ | Codexクライアント向けに最適化されており、安定したコード生成が可能 | スクリプトによるモデリング、パラメトリックな一括生成 | APIYI、公式API |
| Claude Sonnetシリーズ | ツール呼び出しの精度が高く、速度と品質のバランスが良い | 日常的なモデリング指示、複数ステップの操作 | APIYI、公式API |
| Claude Opusシリーズ | 複雑な推論や長いタスクの計画立案に強い | 複雑な構造、シーンの状態を繰り返し読み取る必要があるタスク | APIYI、公式API |
GPT Codexの比較分析:GPT CodexシリーズはCodexクライアントとの親和性が最も高く、設定も簡単です。RhinoScriptのPythonスクリプトを生成する際も、安定したスタイルで出力できます。一方、シーンの状態を何度も読み取って判断する必要がある修正タスクでは、プロンプトの書き方によって結果にばらつきが出ることがあります。スクリプト生成が中心のパラメトリックモデリングなら、堅実な出発点になります。
Claudeシリーズの比較分析:Claude Sonnet/Opusは、ツール呼び出しのパラメーター精度や、長い処理手順の計画立案に定評があります。Claudeを使い慣れている場合は、Claude Codeで同じRhino MCP Serverを読み込んで、代替クライアントとして利用することもできます。一方、Codex内からOpenAI互換インターフェースを通じてClaudeを呼び出せば、同じ環境でモデルを比較しやすくなります。
💡 選び方のポイント:モデルの性能はモデリングの種類に大きく左右されるため、絶対的な最適解はありません。APIYI(apiyi.com)で同じAPIキーを使い、GPT CodexとClaudeシリーズをそれぞれ試してみることをおすすめします。前述の比較スクリプトで同じ指示を実行し、成功率とコストを比べて選びましょう。
CodexとRhino MCPの接続時によくあるエラーと対処法
接続時のエラーは、「モデルAPI → Codexの設定 → MCP Server → Rhinoプラグイン」の順に確認すると、原因を段階的に切り分けられます。
| 現象 | 考えられる原因 | 対処方法 |
|---|---|---|
| Codexの起動後に401エラーが表示される | 環境変数が反映されていない、またはAPIキーの入力ミス | ターミナルを開き直し、APIYI_API_KEYが設定されているか確認します |
| モデルが見つからないと表示される | モデル名がプラットフォーム上の正式名称と一致していない | コンソールから正確なモデル名をコピーします |
| Rhinoのツールがないとモデルに言われる | MCP Serverが読み込まれていない | config.tomlのmcp_serversセクションの記述を確認します |
| ツール呼び出しがタイムアウトする | Rhinoプラグインが待ち受け状態になっていない | Rhinoで起動コマンドを再度実行します |
| モデルが誤ったツールを呼び出す、またはパラメーターが不足する | 指示が曖昧、またはモデルの計画能力が不十分 | 寸法、座標、単位を明確にするか、別のモデルで試します |
よくある質問(FAQ)
Q1:Rhino MCPとは何ですか?
Rhino MCPは、MCPプロトコルに基づくRhino向けのツールサービスです。Rhinoのモデリング機能を、AIから呼び出せるツールとして提供します。CodexやClaude Codeなど、MCPに対応したクライアントと組み合わせることで、大規模言語モデルが自然言語の指示に応じてRhino上でジオメトリを直接作成・編集できるようになります。
Q2:CodexをRhino MCPに接続する方法は、AIにGrasshopperのコードを書かせる方法とどう違いますか?
AIにコードを書かせて手動で貼り付ける方法では、コードの実行や確認を人が行う必要があります。一方、CodexをRhino MCPに接続すると、モデルが自らツールを呼び出し、実行結果を確認して次の処理に進めるため、一連の作業を完結できます。複数の手順を含むモデリングや、繰り返し修正する場面に向いています。一方、長期的に保守するパラメトリックなロジックにはGrasshopperが適しています。
Q3:APIYIはRhino MCP Serverのデプロイをサポートしていますか?
いいえ。APIYIが提供するのはモデルAPIです。Rhino MCP ServerとCodexクライアントは、ご自身のPCにインストールして設定する必要があります。どちらもローカルで動作するコンポーネントなので、この記事の手順1、2に沿って進めれば設定できます。
Q4:CodexをRhino MCPに接続するのは、どのような場面に適していますか?
– **プラン検討用のラフモデル作成**:建築のボリュームや家具のフレームなど、初期モデルをすばやく生成
– **パラメトリックな一括生成**:ルールに沿って、配列・螺旋・サイズが段階的に変化する部材を生成
– **シーンの一括編集**:レイヤー、色、名前など、繰り返し行う操作をまとめて変更
Q5:API経由でCodexに利用可能なモデルをすばやく設定するには?
1. APIYI(apiyi.com)にアクセスしてアカウントを登録し、APIキーを作成します
2. 新規ユーザー向けの無料テストクレジットを受け取ります
3. `config.toml` の `base_url` を `https://api.apiyi.com/v1` に設定し、モデル名を入力します
同じAPIキーで、GPTやClaudeなどの主要モデルを利用できます。モデルを切り替えるときは、設定内のモデル名を変更するだけです。
Q6:モデルが誤ったツールを呼び出したり、パラメーターを間違えたりするのはなぜですか?
ツール呼び出しの精度は、ツールの説明が明確かどうかと、モデル自体の計画能力に左右されます。指示には単位、座標の原点、具体的な寸法を明記し、複雑なタスクは複数回に分けて実行するのがおすすめです。同じ指示で何度も失敗する場合は、Claude Opusなど、計画能力の高いモデルに切り替えて比較してみてください。
Q7:CodexをRhino MCPに接続する際の既知の制限はありますか?
– **コスト**:複雑なタスクではツール呼び出しが何度も発生するため、通常の会話よりトークン消費量が大幅に増えることがあります
– **精度**:モデルが座標を誤って計算することがあるため、重要な寸法は人が確認する必要があります
– **互換性**:コミュニティ製プラグインはRhinoのバージョン更新に伴い、一時的に互換性の問題が発生する場合があります。プロジェクトの更新情報を確認してください
CodexとRhino MCPを連携する際の要点
- 構成要素:Rhinoプラグイン、MCP Server、Codexクライアント、大規模言語モデルのAPIの4つが必要です
- ローカル環境での実行:Rhino MCP ServerとCodexはどちらもローカルで動作し、モデルの推論時のみインターネットに接続します
- 重要な設定:
config.tomlにモデルプロバイダーとmcp_serversの両方を記述します - 段階的に試す:まずは立方体1つから始め、複数ステップの計画やスクリプト生成タスクへと進めます
- モデルの選定:まずはGPT CodexシリーズとClaude Sonnet/Opusシリーズを試しましょう
- 手軽な始め方:APIYIのAPIキー1つで、同じ環境内から複数のモデルを比較できます
まとめ
CodexとRhino MCPを連携する際の要点は次のとおりです。
- ステップ1:MCP Serverをデプロイする:Rhinoプラグインをインストールして待ち受けを開始し、
uvx rhinomcpでサービスが動作することを確認します - ステップ2:モデルのAPIを設定する:Codexの設定ファイルでカスタムプロバイダーを設定し、Rhino MCPを登録します
- ステップ3:モデリングの指示を試す:簡単な指示から始め、モデルのツール呼び出しと計画能力を段階的に確認します
一連の連携ができたら、モデリングの仕上がりを左右するのはモデルの選択と指示の書き方です。この記事の比較用スクリプトを使い、普段よく行うモデリングタスクで実際に試してみましょう。
APIYI(apiyi.com)を利用すれば、効果をすばやく検証できます。OpenAI互換のAPI、無料のテスト枠、複数モデルの一元的な接続に対応しているため、Codex上でGPTシリーズとClaudeシリーズを柔軟に切り替えられます。
📚 参考資料
- rhinomcp オープンソースプロジェクト:Rhino MCP プラグインとサーバーの実装
- リンク:
github.com/jingcheng-chen/rhinomcp -
説明:インストール手順、利用可能なツール一覧、バージョン互換性に関する説明が含まれています
-
OpenAI Codex プロジェクトリポジトリ:Codex CLI のインストールと設定に関する説明
- リンク:
github.com/openai/codex -
説明:
config.tomlのモデルプロバイダーと MCP サーバーの設定項目について、公式の情報を確認できます -
Model Context Protocol 公式ドキュメント:MCP プロトコルの仕様
- リンク:
modelcontextprotocol.io - 説明:ツールの登録、呼び出し、結果の返却の仕組みを理解するための基礎資料です
著者:APIYI 技術チーム
技術に関するお問い合わせ:APIYI 公式サイトのトップページからお気軽にお問い合わせください。Codex や Claude Code などの利用シーンに応じた設定方法は、docs.apiyi.com のドキュメントセンターでご覧いただけます。
