:Blender 建模助手接入 TaoToken 的 MCP 配置实践)
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_sourcetaotoken_aicg_blog_endutm_contentblender_mcputm_campaignrewriteModel ID是很多人踩坑的地方。Model ID 不是随便写的名字必须和通道里实际可用的模型标识一致。你可以在模型对话页面先手动发一条消息确认某个模型能正常返回再把它填进配置。选模型时给个参考建模指令解析属于「结构化输出 空间理解」任务优先选指令遵循强、支持工具调用function calling / tool use的模型因为 BlenderMCP 的指令分发本质就是工具调用。模型对话验证入口https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentblender_mcputm_campaignrewrite如果你打算长期跑编码类、Agent 类任务BlenderMCP 的智能体其实就属于 Agent 范畴可以看下 Coding Plan它在高频调用场景下更划算Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentblender_mcputm_campaignrewrite接入文档在这里配置字段有疑问时对照着看接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentblender_mcputm_campaignrewrite拿到三件套后先别急着改 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_keysk-xxxx, base_urlhttps://api.openai.com/v1 )把它改成from openai import OpenAI client OpenAI( api_key你的_TAOTOKEN_API_KEY, base_urlhttps://taotoken.net/api )然后在真正发起请求的地方把model字段换成你的 Model IDresponse client.chat.completions.create( model你的_MODEL_ID, messagesmessages, toolsblender_tools, tool_choiceauto )注意base_url结尾不要带/v1OpenAI 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/apiModel 用你的 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 和 KeyModel 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类的工具调用参数明确。观察三个地方编辑器里 MCP 调用日志是否显示发出了tools/callBlender 视口里是否出现了一个立方体如果失败看返回的 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 / 404Model ID 写错了或者该模型在当前通道不可用。去模型对话页面确认这个模型能正常对话再复制准确的 ID。别用记忆里的名字直接复制。OAuth / authentication failedClaude 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 useBlender 插件端口被别的进程占了。换一个端口同时改 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字段注入。这样配置可以进 GitKey 不会泄露。如果你还没建 Key从这里开始API Keyshttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentblender_mcputm_campaignrewrite配置字段对照文档接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentblender_mcputm_campaignrewrite先在模型对话里确认模型可用再填进 MCP 配置模型对话https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentblender_mcputm_campaignrewrite长期跑 Agent 类建模任务看 Coding PlanCoding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentblender_mcputm_campaignrewrite最后留一个我踩过的坑改完server.py后忘了重启 MCP 服务器进程对着 Blender 发了半天指令没反应排查了半小时才发现进程还是旧的。改配置必重启这条记牢。