☰
AI 应用开发(二):Blender 建模助手接入 TaoToken 的 MCP 配置实践
2026/10/1 6:42:13 网站建设 项目流程

1. Blender 建模助手为什么要接统一大模型通道

BlenderMCP 这套东西本质上把 Blender 变成了一个能被自然语言驱动的 3D 工具:Blender 里跑一个插件开 TCP 端口,外面跑一个 MCP 服务器把大模型的意图翻译成bpy操作。链路里最容易被忽略、也最容易卡住的一环,其实是「大模型从哪来」。很多教程默认你已经在用某个海外模型服务,但真到自己搭的时候,Key 怎么管、Base URL 填什么、模型 ID 写哪个,一步错就整条链路不通。

这篇聚焦的就是这一段:在已经有 Blender 和 MCP 环境的前提下,把建模助手背后的大模型调用切到 TaoToken 的统一通道上,给出可复制的 MCP 服务端配置片段,并完整走一遍「Blender 发起建模指令 → 模型返回结果 → 场景里出现物体」的验证动作。适合已经装好 Blender、摸过 MCP 配置、但被模型接入参数卡住的开发者。

先说清楚 BlenderMCP 的组成,不然后面配置会晕。它由两块拼起来:

  • Blender 插件(addon.py):跑在 Blender 内部,开一个本地 socket 服务(默认端口常见 9876 或 5000,看版本),负责接收外部命令并在 Blender 里执行,比如bpy.ops.mesh.primitive_cube_add(),同时把场景信息回传。
  • MCP 服务器(server.py 或编辑器 MCP 市场里的现成插件):独立进程,实现 MCP 协议,和 Blender 插件用 TCP 通信,同时对外连接大模型,把自然语言转成结构化指令。

关键点在于:MCP 服务器是唯一同时接触「大模型」和「Blender」的组件。所以你要换模型通道,改的是 MCP 服务器这一侧的配置,而不是 Blender 插件。Blender 插件只管收命令、执行、回结果,它不关心背后是哪个模型。

那为什么要把模型通道统一到 TaoToken?我自己的几个实际理由:

第一,Key 管理。BlenderMCP 场景里你可能会同时跑建模助手、贴图助手、甚至一个专门做重拓扑建议的 Agent,如果每个都单独配一家模型服务的 Key,散落在不同配置文件里,换一次就得翻一遍。统一到一个 Base URL + 一个 Key,改一处全生效。

第二,模型切换成本。建模指令对模型能力要求不低——要理解「创建一把带四条腿、靠背略微后倾的椅子」这种带空间关系的描述,还要输出合法的工具调用参数。不同模型在这类任务上表现差异明显,统一通道后换 Model ID 就能对比,不用重配整套环境。

第三,协议兼容。TaoToken 提供的是 OpenAI 兼容接口,而大多数 MCP 服务器(包括 BlenderMCP 的 server.py 派生版本)本身就是按 OpenAI 的chat/completions格式写的,改base_url和model两个字段就能接上,改动量极小。

这里要提醒一句:MCP 服务器连的是模型 API,不是直连生产数据库或 Blender 主进程之外的东西。配置时只动模型接入部分,别去改 Blender 插件的 socket 逻辑,否则容易把本来能用的链路搞坏。

2. TaoToken 前置准备:Key、Base URL 与模型 ID 三件套

在动 MCP 配置之前,先把「三件套」拿到手:Base URL、API Key、Model ID。这三个东西贯穿后面所有配置,缺一个链路就断。

Base URL用https://taotoken.net/api。注意这里不要加任何多余路径,OpenAI 兼容客户端通常会自动拼/v1/chat/completions或/chat/completions,具体看你用的 SDK。如果你用的是原生requests手写请求,那就要自己拼完整路径,后面配置片段里我会写清楚。

API Key在控制台的 API Keys 页面创建。建议按用途分开建:给 BlenderMCP 单独建一个,命名成blender-mcp之类,方便以后排查是哪个应用在调用、也方便单独吊销。Key 只在创建时完整显示一次,复制后存到安全的地方,别直接硬编码进会提交到 Git 的server.py。

创建入口在这里:

API Keys 管理:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=blender_mcp&utm_campaign=rewrite

Model ID是很多人踩坑的地方。Model ID 不是随便写的名字,必须和通道里实际可用的模型标识一致。你可以在模型对话页面先手动发一条消息,确认某个模型能正常返回,再把它填进配置。选模型时给个参考:建模指令解析属于「结构化输出 + 空间理解」任务,优先选指令遵循强、支持工具调用(function calling / tool use)的模型,因为 BlenderMCP 的指令分发本质就是工具调用。

模型对话验证入口:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=blender_mcp&utm_campaign=rewrite

如果你打算长期跑编码类、Agent 类任务(BlenderMCP 的智能体其实就属于 Agent 范畴),可以看下 Coding Plan,它在高频调用场景下更划算:

Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=blender_mcp&utm_campaign=rewrite

接入文档在这里,配置字段有疑问时对照着看:

接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=blender_mcp&utm_campaign=rewrite

拿到三件套后,先别急着改 MCP,用一条 curl 命令验证 Key 和 Base URL 是通的。这一步能省掉后面大量「到底是 MCP 配错了还是 Key 错了」的排查时间:

curl https://taotoken.net/api/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer 你的_API_KEY" \ -d '{ "model": "你的_MODEL_ID", "messages": [ {"role": "user", "content": "回复两个字:通了"} ] }'

如果返回里能看到choices[0].message.content是「通了」,说明 Key、Base URL、Model ID 三件套没问题,可以进入下一步。如果返回 401,看第 5 节的排查表。

3. 可复制的 MCP 服务端配置片段

这一节是核心。BlenderMCP 的 MCP 服务器配置方式取决于你用的是哪种形态,我分三种常见情况给片段,你对号入座。

3.1 情况一:server.py 里直接写模型客户端

如果你用的是下载下来的server.py,它内部通常有一段初始化 OpenAI 客户端的代码,类似:

from openai import OpenAI client = OpenAI( api_key="sk-xxxx", base_url="https://api.openai.com/v1" )

把它改成:

from openai import OpenAI client = OpenAI( api_key="你的_TAOTOKEN_API_KEY", base_url="https://taotoken.net/api" )

然后在真正发起请求的地方,把model字段换成你的 Model ID:

response = client.chat.completions.create( model="你的_MODEL_ID", messages=messages, tools=blender_tools, tool_choice="auto" )

注意base_url结尾不要带/v1,OpenAI Python SDK 会自己处理路径拼接。如果你写成了https://taotoken.net/api/v1,有些版本会拼成/api/v1/v1/chat/completions导致 404。

3.2 情况二:编辑器 MCP 市场插件,走 JSON 配置

如果你用的是编辑器(比如 TRAE、Cline 这类)MCP 市场里现成的 Blender 插件,配置一般是一个 JSON 文件,路径通常在编辑器的 MCP 配置目录下。片段长这样:

{ "mcpServers": { "blender": { "command": "uvx", "args": ["blender-mcp"], "env": { "BLENDER_HOST": "localhost", "BLENDER_PORT": "9876", "OPENAI_API_KEY": "你的_TAOTOKEN_API_KEY", "OPENAI_BASE_URL": "https://taotoken.net/api", "OPENAI_MODEL": "你的_MODEL_ID" } } } }

这里的关键是env里的三个变量。不同插件的变量名可能不一样,有的叫LLM_API_KEY、LLM_BASE_URL,有的叫MODEL_API_KEY。以你实际插件的文档为准,但值都是同一套:Key 用 TaoToken 的,Base URL 用https://taotoken.net/api,Model 用你的 Model ID。

3.3 情况三:Cline / CC Switch 类工具的 settings 片段

如果你是在 Cline 或类似工具里挂 BlenderMCP,模型接入部分通常在工具的 settings 里单独配,和 MCP 服务器配置分开。Cline 的模型配置片段:

{ "apiProvider": "openai", "openAiApiKey": "你的_TAOTOKEN_API_KEY", "openAiBaseUrl": "https://taotoken.net/api", "openAiModelId": "你的_MODEL_ID" }

如果你用的是 Claude Code 生态、通过 CC Switch 管理多套配置,那settings.json里对应的是:

{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "你的_TAOTOKEN_API_KEY", "ANTHROPIC_MODEL": "你的_MODEL_ID" } }

这里要强调三件套必须齐全:Base URL + Key + Model ID,少任何一个都会在请求阶段报错。我见过有人只改了 Base URL 和 Key,Model ID 还留着默认的gpt-4,结果通道里没这个模型,直接 404 或 model not found。

3.4 配置完的检查清单

改完配置后,按这个清单过一遍:

检查项正确值常见错误
Base URLhttps://taotoken.net/api多写/v1、写成首页地址
API KeyTaoToken 控制台创建用了别家的 Key、Key 复制不全
Model ID通道内实际可用凭感觉写、用了已下线的名字
Blender 端口与插件面板一致插件开 9876,配置写 5000
插件已启用Blender 里勾选装了没启用

4. 从 Blender 发起建模指令到模型返回的完整验证

配置改完,重启 MCP 服务器进程(改server.py的话直接重启;改 JSON 配置的话在编辑器里重载 MCP),然后开始验证。这一步的目标是确认「Blender → MCP 服务器 → TaoToken → 模型 → 返回 → Blender 执行」整条链路通。

第一步,确认 Blender 侧 socket 服务在跑。打开 Blender,按N调出侧边栏,找到 BlenderMCP 面板,确认端口(假设 9876)已勾选启用。用系统命令看端口是否监听:

netstat -ano | findstr "9876"

有LISTENING就对了。再确认进程:

tasklist | findstr "blender"

第二步,确认 MCP 服务器连上了 Blender。在编辑器的 MCP 面板里看 blender 这一项,如果是绿勾或 connected 状态,说明 MCP 服务器和 Blender 插件的 TCP 通道通了。这一步不通的话,问题在 socket 层,和模型无关,先别怀疑 Key。

第三步,发一条最小建模指令。在建模助手对话框里输入:

创建一个半径为 1 的立方体,放在原点

这条指令足够简单,模型只需要输出一个create_object类的工具调用,参数明确。观察三个地方:

  1. 编辑器里 MCP 调用日志是否显示发出了tools/call;
  2. Blender 视口里是否出现了一个立方体;
  3. 如果失败,看返回的 error 信息。

第四步,看模型返回的原始结构。如果链路通了但 Blender 没反应,多半是模型返回的工具调用参数格式和 BlenderMCP 期望的不一致。正常的返回结构大致是:

{ "choices": [ { "message": { "role": "assistant", "tool_calls": [ { "function": { "name": "create_object", "arguments": "{\"type\": \"cube\", \"radius\": 1, \"location\": [0,0,0]}" } } ] } } ] }

如果arguments是空字符串、或者name不在 BlenderMCP 注册的工具列表里,Blender 就不会执行。这时候要么换指令遵循更强的模型,要么在系统提示词里把工具 schema 描述得更明确。

第五步,跑一条稍复杂的指令确认多轮能力。比如:

创建一把椅子,四条腿,靠背略微后倾

这条会触发模型拆解成多个操作:创建座面、创建四条腿、创建靠背、调整角度。如果模型能连续输出多个工具调用并依次执行,说明通道不仅通,而且模型能力够用。

实测下来,链路通的那一刻,Blender 视口里凭空出现一个物体,还是挺有成就感的。但别高兴太早,AI 生成的模型布线问题后面再说。

5. 本篇常见报错排查

这一节按真实报错来,遇到哪个查哪个。

401 Unauthorized / invalid api key

最常见。原因通常是 Key 复制不全(前后有空格)、Key 已吊销、或者把别家的 Key 填进来了。排查:用第 2 节的 curl 命令单独测 Key,如果 curl 也 401,就是 Key 本身的问题,去控制台重新建一个。注意 curl 里Bearer后面有一个空格,别漏。

local proxy failed / connection refused

这个报错和模型无关,是 MCP 服务器连不上 Blender 的 socket。排查顺序:Blender 插件是否启用 → 端口是否一致 → 防火墙是否拦了本地回环。Windows 上偶尔会有安全软件拦本地端口,临时关掉测一下。注意这里说的是本地回环连接,不是任何外部网络代理。

reading choices 时 KeyError / 'choices'

这个报错说明请求发出去了,但返回体里没有choices字段。通常是 Base URL 拼错了,请求打到了首页或错误路径,返回的是 HTML 而不是 JSON。检查base_url是不是https://taotoken.net/api,有没有多写/v1或漏写。也可能是 Model ID 不存在,通道返回了错误结构。

model not found / 404

Model ID 写错了,或者该模型在当前通道不可用。去模型对话页面确认这个模型能正常对话,再复制准确的 ID。别用记忆里的名字,直接复制。

OAuth / authentication failed(Claude Code 类工具)

如果你用的是 Claude Code 生态,报 OAuth 相关错误,说明工具在走 Anthropic 原生鉴权而不是 API Key。需要在settings.json里显式设置ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY,让它走 API Key 模式。三件套(Base URL + Key + Model ID)都要写全。

工具调用返回了但 Blender 不执行

模型返回了tool_calls,但 Blender 没动静。检查arguments里的 JSON 是否能被解析、字段名是否和 BlenderMCP 注册的一致。有些模型会把参数包成字符串再套一层,导致解析失败。这种情况在系统提示词里加一句「arguments 必须是合法 JSON 对象,不要二次转义」通常能缓解。

端口占用 / address already in use

Blender 插件端口被别的进程占了。换一个端口,同时改 Blender 插件面板和 MCP 配置里的端口,两边必须一致。

排查时记住一个原则:先分层,再定位。socket 层(Blender ↔ MCP 服务器)和模型层(MCP 服务器 ↔ TaoToken)是两段独立的链路,报错信息会告诉你是哪一段。connection refused是 socket 层,401/404/choices是模型层。分开看,效率高很多。

6. 继续往下走:从能跑到好用

链路通了只是起点。真正用起来,还有几件事值得做。

第一,把系统提示词写扎实。BlenderMCP 的建模质量,一半靠模型能力,一半靠提示词里对工具 schema 的描述。把每个工具的参数类型、取值范围、必填项写清楚,模型输出的工具调用就规范得多。前面 excerpt 里那份「Blender 智能建模助手」的角色提示词可以参考,但建议再补一段工具说明。

第二,接受 AI 建模的布线现实。AI 生成的模型顶点面数偏高、三角面多,直接拿去做动画或导入游戏引擎,二次修改和性能都是问题。这不是配置能解决的,是当前生成方式的固有特点。实际工作流里,通常会用减面、三角转四边、重拓扑插件做后处理,把 AI 生成当作「快速起型」而不是「最终资产」。

第三,模型选型要按任务分。纯建模指令解析,选指令遵循强的;涉及材质和贴图的,选对图像理解好的;如果还要做动画关键帧,选对时序描述理解好的。统一通道的好处就是换 Model ID 就能对比,不用重配环境。

第四,Key 和配置的版本管理。把 MCP 配置里的 Key 抽成环境变量,别硬编码。server.py里用os.environ.get("TAOTOKEN_API_KEY"),JSON 配置里用env字段注入。这样配置可以进 Git,Key 不会泄露。

如果你还没建 Key,从这里开始:

API Keys:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=blender_mcp&utm_campaign=rewrite

配置字段对照文档:

接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=blender_mcp&utm_campaign=rewrite

先在模型对话里确认模型可用,再填进 MCP 配置:

模型对话:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=blender_mcp&utm_campaign=rewrite

长期跑 Agent 类建模任务,看 Coding Plan:

Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=blender_mcp&utm_campaign=rewrite

最后留一个我踩过的坑:改完server.py后忘了重启 MCP 服务器进程,对着 Blender 发了半天指令没反应,排查了半小时才发现进程还是旧的。改配置必重启,这条记牢。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询