ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

打包 skill 发布 GitHub,TaoToken 负责 Rodin MCP 的 Key 入口

打包 skill 发布 GitHub,TaoToken 负责 Rodin MCP 的 Key 入口 1. 从 Rodin MCP 报 401 说起Key 入口要独立于 skill 命令当 Hyper3D Rodin MCP 在 skill 里报 401或者客户端提示base_url返回 404 时先别急着改 MCP 命令把 Key 入口统一到 TaoToken 通常更快https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentrodin_mcp_skill_intro 。这条工作流原本是把 GPT-6 用来生成参考图和交互代码Hyper3D Rodin 通过 MCP 生成 3D 模型BANG 再把模型按结构拆成独立零件从而实现零件级动画最后把整条流程打包成 skill发布到 GitHub 上的 3Dworkshop 仓库。问题也出在这里一旦 skill 被其他人克隆Rodin MCP 的 Key、Base URL、模型名、超时、并发就会散落在命令参数、环境变量和 skill 配置里。只要其中一个没对齐就会出现“参考图能生成但 Rodin 任务提交失败”或“模型出来了BANG 拆件阶段 401”的情况。更稳的做法是TaoToken 只负责 Key 入口和 API Base URLRodin MCP 通过环境变量读取 Keyskill 只声明 provider 参数不把真实 Key 写进仓库。这样 skill 发布到 GitHub 后别人填写自己的YOUR_API_KEY即可跑通而不是把开发者的密钥一起提交上去。下面按可跟做的顺序拆开先拿 Key再配 Rodin MCP再分别配置 Claude Code、Codex 和 CC Switch最后给出 GitHub 侧的运行示例与排障清单。2. 在 TaoToken 建立 Rodin MCP 专用 Key 与 Base URL第一步不要直接在 skill 的config.json里写 Key。建议为 Rodin MCP 单独建一个 Key命名成rodin-mcp-skill方便后续审计和撤销。入口可以从 TaoToken 官网进入再跳转到 API Keys 页面https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentrodin_mcp_skill_key 。创建时按最小权限原则选择可用范围如果控制台支持按项目或按模型限制优先只放开 Rodin MCP 和后续前端交互会用到的模型。拿到 Key 后本地开发环境只保留环境变量不写入仓库export TAOTOKEN_API_KEYYOUR_API_KEY export TAOTOKEN_BASE_URLhttps://taotoken.net/api注意工具配置里的 Base URL 固定用https://taotoken.net/api不要额外拼 UTM 参数。UTM 只用于官网入口和文档跳转不用于 API 请求地址。可以先用一个不打印 Key 的方式确认环境变量存在test -n $TAOTOKEN_API_KEY echo TAOTOKEN_API_KEY is set echo $TAOTOKEN_BASE_URL如果客户端支持模型列表或连接测试可以用本地命令验证。路径和参数以 TaoToken 控制台或文档说明为准示例只用于检查 Base URL 是否可达curl -sS $TAOTOKEN_BASE_URL/models \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ | head -c 500如果这里返回 401优先检查 Key 是否复制完整、是否有多余空格、是否传成了Authorization: YOUR_API_KEY而不是 Bearer 形式。如果返回 404检查 Base URL 是否被写成了带/v1、带空格或带官网 UTM 的地址。TaoToken 的 API Base URL 是https://taotoken.net/api不是官网首页也不是控制台地址。3. 把 skill 参数改成 provider 抽象让 Rodin MCP 只读环境变量原流程里GPT-6、Hyper3D Rodin、BANG 是三个连续阶段参考图与交互代码、3D 资产生成、模型结构拆分。打包成 skill 后最容易失控的是参数层。建议把 skill 配置拆成 provider、rodin、bang、output 四块Key 只通过环境变量进入 runtime。下面是一个可复制的skill.config.yaml示例模型名和 MCP 启动命令按你本地实际值替换skill: portfolio-3d provider: name: taotoken base_url: https://taotoken.net/api api_key_env: TAOTOKEN_API_KEY model: your-rodin-model-id rodin: mcp_server: hyper3d-rodin transport: stdio concurrency: 2 timeout_seconds: 180 retry: 2 bang: enabled: true split_strategy: structure output: glb_dir: ./public/models manifest: ./public/models/manifest.json cache_dir: ./.cache/rodin这份配置的关键点是api_key_env只写环境变量名不写 Key 值base_url固定指向https://taotoken.net/apicache_dir用来避免同一张参考图重复调用 Rodin MCP。Rodin MCP 每次生成、轮询、失败重试、BANG 拆件后再渲染都会产生模型调用消耗。把concurrency设成 2 或 3比一次性并发 10 个任务更容易排查也更适合个人作品集这种不需要压测的场景。MCP 侧可以这样接入。下面的command和args是占位不要直接当成某个固定包名请替换成你本地已经安装好的 Rodin MCP 启动命令{ mcpServers: { hyper3d-rodin: { command: 你的 Rodin MCP 启动命令, args: [按实际安装参数填写], env: { TAOTOKEN_API_KEY: ${TAOTOKEN_API_KEY}, TAOTOKEN_BASE_URL: https://taotoken.net/api, RODIN_PROVIDER: taotoken, RODIN_MODEL: your-rodin-model-id } } } }这里不要写成 MCP 直连数据库或生产系统。Rodin MCP 只负责调用模型服务并产出模型文件BANG 拆件和前端构建都在本地执行。涉及文件读写、模型下载、构建命令时命令由读者在本地终端执行不要交给 Agent 直接操作生产环境。这样即使 skill 后来被别人 fork也不会因为 MCP 工具权限过大而出问题。4. Claude Code 用 settings.jsonANTHROPIC_* 只属于 Claude Code如果你在 Claude Code 里调用 skill 入口、生成前端交互代码或检查 Rodin MCP 日志配置要写到 Claude Code 自己的 settings.json 或项目级.claude/settings.json。不要把它和 Codex 的 config.toml 混在一起。Claude Code 侧使用ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL这类变量Base URL 同样指向https://taotoken.net/api。用户级配置可以放在~/.claude/settings.json项目级配置放在仓库的.claude/settings.json。如果项目要提交到 GitHub项目级文件里不要写真实 Key只保留YOUR_API_KEY占位或者只写环境变量引用方式。示例{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: claude-sonnet-4-20250514, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1 }, permissions: { allow: [ Bash(npm run dev:*), Bash(node scripts/run-skill.mjs:*), Bash(npm install:*) ] } }如果 Claude Code 仍然提示认证失败按顺序检查settings.json是否被更高优先级的 shell 环境变量覆盖ANTHROPIC_BASE_URL是否误写成官网首页ANTHROPIC_AUTH_TOKEN是否和ANTHROPIC_API_KEY同时设置导致冲突模型名是否与控制台可选模型一致。Claude Code 文档入口放在文末 CTA配置前也可以从 TaoToken 官网进入https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentrodin_mcp_skill_claudecode_setup 。5. Codex 用 config.toml不要把 ANTHROPIC_* 复制过去Codex 不读 Claude Code 的ANTHROPIC_*变量。很多人在同一台机器上配完 Claude Code 后直接把ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN贴到 Codex 配置里结果 Codex 仍然走默认 provider或者报找不到 API Key。Codex 侧应使用自己的config.tomlprovider 名称、Base URL、环境变量名都要单独声明。示例放在~/.codex/config.toml[model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY wire_api chat [profiles.taotoken] model_provider taotoken model your-codex-model-id model_reasoning_effort medium然后在 shell 里注入 Key再通过 profile 启动export TAOTOKEN_API_KEYYOUR_API_KEY codex --profile taotoken注意两点第一env_key写的是环境变量名TAOTOKEN_API_KEY不是 Key 本身第二Codex 的base_url同样只写https://taotoken.net/api不要加任何 UTM 参数。若 Codex 报 404优先检查wire_api是否与当前 Codex 版本匹配以及 Base URL 是否被自动拼接了多余路径。不同 Codex 版本对 provider 字段支持略有差异字段名以你本地版本说明为准但“不要把 ANTHROPIC_* 套到 Codex”这条是确定的。6. CC Switch 三件套供应商、Key、Base URL 分区管理如果你用 CC Switch 在 Claude Code、Codex 和通用 OpenAI 兼容客户端之间切换建议只保留三件套TaoToken 供应商条目、YOUR_API_KEY密钥条目、https://taotoken.net/apiBase URL 条目。然后在不同 profile 里做映射不要让三个客户端共享同一组环境变量名。可以按下面方式理解配置项Claude Code profileCodex profile通用 OpenAI 兼容 profile供应商名称TaoTokenTaoTokenTaoTokenBase URLhttps://taotoken.net/apihttps://taotoken.net/apihttps://taotoken.net/apiKey 变量ANTHROPIC_AUTH_TOKENTAOTOKEN_API_KEYTAOTOKEN_API_KEY模型变量ANTHROPIC_MODELmodelmodel写入位置settings.jsonconfig.toml客户端配置文件CC Switch 里切换 profile 后建议重启对应 CLI避免旧的 shell 环境变量继续生效。可以用本地命令检查当前终端echo Claude Code base: $ANTHROPIC_BASE_URL echo Codex key set: ${TAOTOKEN_API_KEY:yes}不要打印完整 Key。排查时只看“是否存在”和“Base URL 是否正确”。CC Switch 的好处是把三件套集中管理但坏处是容易把 Claude Code 的ANTHROPIC_*和 Codex 的TAOTOKEN_API_KEY互相覆盖。出现 401 时先确认当前 CLI 实际读的是哪一份配置再去看 Key 是否正确。TaoToken 官网入口可从这里进入https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentrodin_mcp_skill_ccswitch 。7. GitHub skill 运行示例从参考图到零件级动画把流程打包成 skill 发布到 GitHub 后仓库里不要出现真实 Key。推荐保留.env.example让使用者复制后填入自己的YOUR_API_KEY。下面是一个可复现的运行顺序目录名和脚本名按你的 3Dworkshop skill 实际结构替换。先复制环境变量模板cp .env.example .env然后编辑.envTAOTOKEN_API_KEYYOUR_API_KEY TAOTOKEN_BASE_URLhttps://taotoken.net/api RODIN_MODELyour-rodin-model-id RODIN_CONCURRENCY2 BANG_SPLITtrue安装依赖并运行 skillnpm install node scripts/run-skill.mjs \ --skill ./skills/portfolio-3d \ --ref ./refs/hero.png \ --out ./public/models \ --split bang \ --concurrency 2如果仓库入口不是scripts/run-skill.mjs就查看package.json里的 scripts把命令替换成实际入口。运行阶段大致会经历GPT-6 生成参考图或页面交互草稿Rodin MCP 根据参考图生成 3D 模型BANG 按结构把模型拆成独立零件skill 把零件清单写入 manifest前端读取 manifest 并把模型挂到可交互场景中。每一步都建议打印 request id、模型名、耗时和缓存命中情况方便定位 Token 消耗。前端侧可以用 React Three Fiber 做零件级动画。BANG 拆件后模型里的命名节点会变成独立对象按名称取出来即可单独控制import { Canvas, useFrame } from react-three/fiber import { useGLTF } from react-three/drei import { useRef } from react function Part({ url, nodeName, ...props }) { const { scene } useGLTF(url) const ref useRef() useFrame((state) { if (!ref.current) return ref.current.rotation.y Math.sin(state.clock.elapsedTime) * 0.08 }) const node scene.getObjectByName(nodeName) return node ? primitive ref{ref} object{node} {...props} / : null } export default function PortfolioScene() { return ( Canvas camera{{ position: [0, 1.6, 4] }} ambientLight intensity{1.2} / Part url/models/robot.glb nodeNamearm_left position{[0, 1, 0]} / /Canvas ) }这里的重点是Rodin MCP 负责生成模型BANG 负责拆件前端只消费拆件后的 GLB 和 manifest。不要把 Key 写进前端代码也不要让浏览器直接持有YOUR_API_KEY。所有模型生成和拆件都在本地或服务端构建阶段完成前端只加载静态模型文件。8. 排障清单401、404、超时与 Token 消耗遇到问题时建议按下面顺序排查不要一次改所有配置401 未授权检查TAOTOKEN_API_KEY是否已注入当前 shell检查 MCP 配置里的${TAOTOKEN_API_KEY}是否被正确展开。Claude Code 看ANTHROPIC_AUTH_TOKENCodex 看TAOTOKEN_API_KEY两者不要混。404 路径错误Base URL 只写https://taotoken.net/api。官网首页、控制台地址、带 UTM 的链接都不是 API Base URL。某些客户端会自动拼/v1如果出现重复路径需要按客户端说明调整。429 或并发过高把 skill 配置里的concurrency降到 1 到 2开启重试和退避。BANG 拆件如果对同一模型重复执行先查 manifest 和缓存目录命中缓存就不要重新提交 Rodin 任务。超时3D 生成是异步过程timeout_seconds不要设得太短。可以先设 180 秒再根据模型复杂度和网络情况调整。不要把超时简单理解成 Key 失效。MCP 读不到环境变量确认 MCP 进程是从当前终端启动而不是从桌面图标、旧的服务进程或系统级 daemon 启动。可以用本地命令检查test -n $TAOTOKEN_API_KEY echo key is set test -n $TAOTOKEN_BASE_URL echo $TAOTOKEN_BASE_URLToken 消耗异常记录每次 Rodin 调用的参考图哈希、模型名、输出文件、耗时和是否命中缓存。当同一张参考图被反复提交时优先检查缓存目录权限和 skill 参数是否每次生成了新的临时目录。Key 泄漏风险GitHub 仓库里只保留.env.example.env加入.gitignore。如果曾经提交过真实 Key先撤销 Key再清理历史记录不要只删文件。9. 文末 CTA按接入路径走完最后一步如果你已经确认 Rodin MCP 的 Key 入口、Base URL 和 skill 参数接下来可以按这条路径继续先用模型对话验证 Key 和模型是否可用再看 Coding Plan 是否适合你的长期调用然后创建独立 API Key最后对照 Claude Code 文档把 settings.json 配好。模型对话https://taotoken.net/models/detail/chat?utm_sourcetaotoken_aicg_blog_endutm_contentrodin_mcp_skill_chatCoding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentrodin_mcp_skill_plan创建 API Keyhttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentrodin_mcp_skill_keyClaude Code 文档https://taotoken.net/doc/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_contentrodin_mcp_skill_claudecode把 Key 入口放在 TaoToken把 Base URL 固定为https://taotoken.net/api把 Rodin MCP、BANG 和前端交互拆成独立阶段skill 发布到 GitHub 后才不会变成“只有作者本机能跑”的演示。这样别人克隆仓库、填入YOUR_API_KEY、按 profile 启动 Claude Code 或 Codex就能复现从参考图到可交互 3D 作品集的完整链路。
返回列表