|

Codex 接入 Rhino MCP 教程:3 步实现 AI 自动建模

Codex 接入 Rhino MCP 教程:3 步实现 AI 自动建模

作者注:从零部署 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-ai-modeling-tutorial-image-0


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-ai-modeling-tutorial-image-1


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 端”两部分:

  1. 在 Rhino 中打开 Package Manager,搜索 rhinomcp 并安装插件,安装后重启 Rhino。
  2. 在 Rhino 命令行输入插件提供的启动命令(项目中为 mcpstart),让插件开始监听本地连接。
  3. 在终端执行 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 系列。下表给出的是定性对比,实际效果请以你自己的建模任务实测为准。

codex-rhino-mcp-ai-modeling-tutorial-image-2

模型系列 核心优势 适用建模场景 可用平台
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. 第 1 步部署 MCP Server:安装 Rhino 插件并启动监听,用 uvx rhinomcp 验证服务
  2. 第 2 步配置模型接口:在 Codex 配置文件中设置自定义提供方并注册 Rhino MCP
  3. 第 3 步跑通建模指令:从简单指令开始,逐步验证模型的工具调用与规划能力

整条链路跑通之后,真正决定建模效果的是模型选择和指令写法。建议用本文的对比脚本,拿自己常见的建模任务做实测。

推荐通过 API易 apiyi.com 快速验证效果,平台提供 OpenAI 兼容接口、免费测试额度和多模型统一接入,便于在 Codex 中灵活切换 GPT 与 Claude 系列。


📚 参考资料

  1. rhinomcp 开源项目:Rhino MCP 插件与 Server 实现
  2. 链接:github.com/jingcheng-chen/rhinomcp
  3. 说明:包含安装步骤、可用工具列表和版本兼容说明

  4. OpenAI Codex 项目仓库:Codex CLI 安装与配置说明

  5. 链接:github.com/openai/codex
  6. 说明:config.toml 中模型提供方与 MCP Server 配置项的权威说明

  7. Model Context Protocol 官方文档:MCP 协议规范

  8. 链接:modelcontextprotocol.io
  9. 说明:理解工具注册、调用与返回机制的基础资料

作者:APIYI 技术团队
技术交流:欢迎在 API易 官网首页联系我们,Codex、Claude Code 等使用场景的配置说明可访问 docs.apiyi.com 文档中心

延伸阅读

类似文章