作者注:从零部署 Rhino MCP Server,在 Codex 中配置 API易 接口,3 步跑通第一条自然语言建模指令,并对比 GPT Codex 与 Claude 系列的建模表现。
用一句话让 Rhino 自动建模,是很多 3D 设计师和参数化建模工程师的需求。这件事的难点不在 Rhino,而在于大模型、MCP 协议和客户端三者怎么连起来。本文介绍 Codex + Rhino MCP + API易 接口 的完整接入方案,帮助你掌握 Codex 接入 Rhino MCP 的实操方法。
这不是一篇概念科普,而是按照“部署 MCP Server → 配置 Codex 接口 → 跑通第一条指令”的顺序写成的落地指南。我们在支持用户的过程中发现,大家通常卡在三个地方:环境从零怎么搭、Codex 怎么接入第三方 API、哪个模型建模效果更好。本文会逐一给出答案。
核心价值:读完本文,你将能在本机用自然语言驱动 Rhino 创建几何体,并知道如何科学地对比不同模型的建模表现。

Codex 接入 Rhino MCP 核心要点
在动手之前,先弄清楚整条链路由哪几部分组成,以及各部分由谁负责。很多接入失败,其实是把“模型接口问题”和“MCP Server 问题”混在一起排查导致的。
| 组件 | 作用 | 由谁提供/部署 |
|---|---|---|
| Rhino 插件 | 在 Rhino 内部监听指令,执行建模操作 | 用户本机安装 |
| Rhino MCP Server | 把 Rhino 能力封装为 MCP 工具,供 AI 客户端调用 | 用户本机部署 |
| Codex 客户端 | 加载 MCP 工具,负责与大模型对话和任务调度 | 用户本机安装配置 |
| 大模型 API | 理解指令、规划步骤、生成工具调用参数 | 通过 API易 接入 |
Rhino MCP 工作原理详解
MCP(Model Context Protocol)是一种让 AI 客户端以统一方式调用外部工具的协议。Rhino MCP Server 会把“创建立方体”“获取当前文档对象”“执行 Python 脚本”等能力注册成一组工具,Codex 启动时读取这些工具的名称、说明和参数结构,再把它们一起发给大模型。
当你输入“在原点画一个 100×50×20 的立方体”,模型不会直接操作 Rhino,而是返回一个结构化的工具调用请求。Codex 把这个请求转发给 MCP Server,Server 再通过本地连接通知 Rhino 插件执行,结果原路返回给模型。所以,建模质量本质上取决于模型的工具调用能力和多步任务规划能力,这也是选型时最需要关注的指标。

Codex 接入 Rhino MCP 环境准备
正式开始之前,请确认本机满足以下条件。Rhino MCP 是社区开源项目,不同版本的安装方式可能有细微差别,具体请以项目 README 为准。
| 环境项 | 要求 | 检查方式 |
|---|---|---|
| Rhino | Rhino 7 或 Rhino 8(以项目说明为准) | 打开 Rhino 查看版本号 |
| Python 环境 | 推荐安装 uv,用于运行 MCP Server | 终端执行 uv --version |
| Node.js | Codex CLI 通过 npm 安装 | 终端执行 node -v |
| Codex 客户端 | 命令行版、IDE 插件或桌面端均可 | 终端执行 codex --version |
| API Key | 一个可调用 Codex/Claude 系列模型的 Key | 在 API易 控制台创建 |
如果你所在的网络环境无法稳定访问海外官方接口,建议优先解决模型接口这一环。MCP Server 和 Rhino 都运行在本机,真正需要联网的只有模型推理请求。
Codex 接入 Rhino MCP 快速上手:3 步实现 AI 自动建模
第 1 步:部署 Rhino MCP Server
以社区开源的 rhinomcp 项目为例,部署分为“Rhino 端插件”和“MCP Server 端”两部分:
- 在 Rhino 中打开 Package Manager,搜索
rhinomcp并安装插件,安装后重启 Rhino。 - 在 Rhino 命令行输入插件提供的启动命令(项目中为
mcpstart),让插件开始监听本地连接。 - 在终端执行
uvx rhinomcp,确认 MCP Server 能够正常启动、没有报错。
第 2 步之后,Codex 会自动拉起 MCP Server,所以这里的手动启动只用于验证环境。如果 uvx 提示找不到命令,通常是 uv 没有加入系统 PATH,重新打开终端或按 uv 官方说明配置即可。
第 2 步:在 Codex 中配置 API易 接口
Codex 的配置文件位于用户目录下的 ~/.codex/config.toml。我们需要在这里同时完成两件事:声明自定义模型提供方,以及注册 Rhino MCP Server。
# ~/.codex/config.toml
model = "gpt-5-codex" # 以 API易 控制台中实际可用的模型名为准
model_provider = "apiyi"
[model_providers.apiyi]
name = "APIYI"
base_url = "https://api.apiyi.com/v1" # API易 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 的取值需要与所选模型支持的协议一致。如果配置后出现协议相关报错,可以切换为另一种取值再试,具体以 API易 文档中 Codex 使用场景的说明为准。
第 3 步:跑通第一条自然语言建模指令
保持 Rhino 打开且插件处于监听状态,在终端输入 codex 启动客户端。可以先问一句“你现在有哪些 Rhino 工具可用”,如果模型能列出建模相关的工具,说明 MCP 已经加载成功。
建议从简单指令开始,逐步增加任务复杂度,这样出问题时更容易定位:
| 难度 | 示例指令 | 考察的模型能力 |
|---|---|---|
| 入门 | 在原点创建一个 100×50×20 的立方体 | 单次工具调用、参数准确性 |
| 进阶 | 画一张 1200×600 的桌面,四角各加一条直径 40、高 720 的桌腿 | 多步规划、坐标计算 |
| 复杂 | 生成一个 5 层螺旋楼梯,每级台阶旋转 15 度并逐级升高 | 循环逻辑、生成 Python 脚本 |
| 修改 | 把场景中所有立方体改成红色并放到新图层 | 读取文档状态后再操作 |
复杂任务中,模型通常会选择调用“执行 Python 脚本”这类工具,一次性生成 RhinoScript 代码完成建模。此时模型的代码生成能力会直接决定成功率。
极简示例:用 Python 验证模型的工具调用能力
在接入 Codex 之前,也可以先用一段脚本,确认模型能否针对建模工具返回正确的调用参数。这一步能快速排除“模型接口不可用”的问题:
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,且桌腿位于四个角
🚀 快速开始:推荐先通过 API易 apiyi.com 领取新用户免费测试额度,用上面的脚本验证模型的工具调用是否正常,再接入 Codex 与 Rhino。这样遇到问题时,能清楚区分是模型接口的问题还是本地 MCP 环境的问题。
Codex 接入 Rhino MCP 如何选择模型
AI 自动建模对模型的要求集中在三点:代码生成、工具调用和复杂任务规划。根据我们的支持经验,建议优先测试 GPT Codex 系列和 Claude Sonnet/Opus 系列。下表给出的是定性对比,实际效果请以你自己的建模任务实测为准。

| 模型系列 | 核心优势 | 适用建模场景 | 可用平台 |
|---|---|---|---|
| GPT Codex 系列 | 为 Codex 客户端深度优化,代码生成稳定 | 脚本化建模、参数化批量生成 | API易、官方 API |
| Claude Sonnet 系列 | 工具调用准确,速度与质量平衡 | 日常建模指令、多步操作 | API易、官方 API |
| Claude Opus 系列 | 复杂推理与长任务规划能力强 | 复杂结构、需要反复读取场景状态的任务 | API易、官方 API |
GPT Codex 对标分析:GPT Codex 系列与 Codex 客户端的配合最为原生,配置简单,生成 RhinoScript Python 脚本时风格稳定。但面对需要多轮读取场景、再做判断的修改类任务,表现会因提示词写法而有波动。对于以脚本生成为主的参数化建模,它是很稳妥的起点。
Claude 系列对标分析:Claude Sonnet/Opus 在工具调用的参数准确性和长链路规划上口碑较好。如果你更习惯 Claude,也可以使用 Claude Code 加载同一个 Rhino MCP Server 作为替代客户端。相比之下,在 Codex 内通过 OpenAI 兼容接口调用 Claude,更方便在同一套环境中横向对比。
💡 选择建议:模型表现与你的建模类型高度相关,没有绝对的最优解。建议通过 API易 apiyi.com 用同一个 Key 分别测试 GPT Codex 与 Claude 系列,用前文的对比脚本跑相同的指令,根据成功率和成本做决定。
Codex 接入 Rhino MCP 常见报错排查
接入过程中的报错,大多可以按“模型接口 → Codex 配置 → MCP Server → Rhino 插件”的顺序逐层排查。
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
| Codex 启动后提示 401 | 环境变量未生效或 Key 填写错误 | 重开终端,检查 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:API易 会帮我部署 Rhino MCP Server 吗?
不会。API易 提供的是模型 API 接口,Rhino MCP Server 和 Codex 客户端需要在你的本机自行部署和配置。好在两者都是本地组件,按本文第 1、2 步操作即可完成。
Q4:Codex 接入 Rhino MCP 最适合哪些场景?
– **方案草模**:快速生成建筑体块、家具框架等初步模型
– **参数化批量生成**:按规则生成阵列、螺旋、渐变尺寸的构件
– **场景批量修改**:统一修改图层、颜色、命名等重复性操作
Q5:如何通过 API 快速为 Codex 接入可用的模型?
1. 访问 API易 apiyi.com 注册账号并创建 API Key
2. 领取新用户免费测试额度
3. 在 `config.toml` 中把 `base_url` 设为 `https://api.apiyi.com/v1`,填写模型名即可
同一个 Key 可以调用 GPT 与 Claude 等主流模型,切换模型只需修改配置中的模型名。
Q6:为什么模型经常调错工具或参数不对?
工具调用的准确性取决于两点:工具描述是否清晰,以及模型本身的规划能力。建议在指令中写明单位、坐标原点和具体尺寸,复杂任务拆成多轮执行。如果同一条指令反复失败,可以换用 Claude Opus 等规划能力更强的模型对比测试。
Q7:Codex 接入 Rhino MCP 有哪些已知限制?
– **成本**:复杂任务会产生多轮工具调用,token 消耗明显高于普通对话
– **精度**:模型偶尔会算错坐标,关键尺寸仍需人工复核
– **兼容性**:社区插件随 Rhino 版本更新,可能出现短期不兼容,需关注项目更新
Codex 接入 Rhino MCP 核心要点 Key Takeaways
- 链路组成:Rhino 插件、MCP Server、Codex 客户端、大模型 API 四部分缺一不可
- 本地部署:Rhino MCP Server 和 Codex 均在本机运行,只有模型推理需要联网
- 关键配置:在
config.toml中同时声明模型提供方和mcp_servers - 循序渐进:从单个立方体开始,逐步增加到多步规划和脚本生成任务
- 模型选型:优先测试 GPT Codex 系列和 Claude Sonnet/Opus 系列
- 上手方式:用 API易 的一个 Key 即可在同一套环境中横向对比多个模型
总结
Codex 接入 Rhino MCP 的核心要点:
- 第 1 步部署 MCP Server:安装 Rhino 插件并启动监听,用
uvx rhinomcp验证服务 - 第 2 步配置模型接口:在 Codex 配置文件中设置自定义提供方并注册 Rhino MCP
- 第 3 步跑通建模指令:从简单指令开始,逐步验证模型的工具调用与规划能力
整条链路跑通之后,真正决定建模效果的是模型选择和指令写法。建议用本文的对比脚本,拿自己常见的建模任务做实测。
推荐通过 API易 apiyi.com 快速验证效果,平台提供 OpenAI 兼容接口、免费测试额度和多模型统一接入,便于在 Codex 中灵活切换 GPT 与 Claude 系列。
📚 参考资料
- rhinomcp 开源项目:Rhino MCP 插件与 Server 实现
- 链接:
github.com/jingcheng-chen/rhinomcp -
说明:包含安装步骤、可用工具列表和版本兼容说明
-
OpenAI Codex 项目仓库:Codex CLI 安装与配置说明
- 链接:
github.com/openai/codex -
说明:
config.toml中模型提供方与 MCP Server 配置项的权威说明 -
Model Context Protocol 官方文档:MCP 协议规范
- 链接:
modelcontextprotocol.io - 说明:理解工具注册、调用与返回机制的基础资料
作者:APIYI 技术团队
技术交流:欢迎在 API易 官网首页联系我们,Codex、Claude Code 等使用场景的配置说明可访问 docs.apiyi.com 文档中心
