
MotionSites.ai 上 Jiro.build 的那批区块看截图像几段 Tailwind 加一点动效真让 Claude Code 从零复刻十个里有七八个会在缓动曲线、元素间距、入场顺序上跟你来回拉扯。问题不在模型笨而在于它在凭空造一个它没见过的视觉规范。换成先搜、再拉现成 TSX 落盘的思路返工量能降一大截这也是 RYAI MCP 真正的价值所在。要做到这件事先把 Claude Code 的模型请求收拢到一条统一通道上Key 和模型 ID 从 TaoToken 取注册与创建入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end填进工具的 Base URL 写 https://taotoken.net/api末尾不加/v1RYAI 自己那把sk-ryai-开头的 Bearer Key 则单独去 RYAI 的 MCP Keys 页面建。这是两套凭证混在一起用会两头报错下面按顺序拆开讲。1. MotionSites、Jiro.build 的区块为什么值得搜而不是生成1.1 从零生成动效区块返工点往往集中在三处Claude Code 写一个落地页 hero 区结构上通常挑不出毛病真正让人反复改的是视觉细节。第一处是节奏framer-motion里的duration、delay、stagger这几个值写 0.3 和写 0.45 观感完全不同而模型只能猜。第二处是间距体系Tailwind 里gap-6和gap-8的差别在截图上看不出来拼进真实文案之后才会发现密度不对。第三处是响应式断点md和lg之间塞几张卡片没有模板参照的时候模型容易写出在 1440px 下勉强、在 1024px 下网格直接崩的布局。这三处叠加就是让 AI 从零写页面经常要三轮以上才能定稿的原因。而每一轮都是一次完整的长上下文往返你把当前代码整段贴进去模型把改动后的整段代码吐出来。组件越复杂、你在 Prompt 里塞的参考示例越多一次返工烧掉的 Token 就越多。等页面做完真正贵的那部分开销往往不是生成而是这些来回转述。1.2 RYAI 把区块和 Prompt 变成了 Claude Code 能检索的资源RYAI 的思路很直接把 MotionSites 上公开的区块、脚手架、Prompt 做成一个 MCP 服务让 Claude Code 这类工具检索而不是生成。它暴露出来的fetch_blocks一类工具返回的是已经写好的 TSX 片段或者可直接复制的 Prompt 文本。这一步省下的不是模型智力是转述成本。以前你要让 Claude Code 参考一个现成组件得先把代码复制进对话模型再把它读进上下文最后再按你的需求改写一遍。现在换成工具调用模型只拿到一个引用和必要的元信息真正落盘的时候把文件直接写进项目目录。上下文占用小、输出 Token 小视觉还原度反而更高因为它参考的是别人调过的成品而不是自己脑补的近似值。2. 把 Claude Code 的模型请求先接到 TaoToken 通道2.1 在模型广场挑一个能用的模型 ID打开 TaoToken先注册账号再进控制台创建一把 API Key复制出来先存好后面所有配置里都用YOUR_API_KEY这个占位符代指你自己的那串。密钥不要直接写进会提交到 Git 的文件里哪怕只是本地练手养成习惯比事后补救省事。接着去模型广场看当前可用的模型列表。这里有个坑不要凭印象填模型 ID。像gpt-5这种听起来合理的名字、或者随手加个日期后缀的写法多半在列表里根本不存在填进去的后果是 Claude Code 一启动就报模型不可用。正确的做法是以 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 模型广场当时列表为准把你真正要用的那一行原样抄下来。如果你打算搜索重述用便宜快的、落盘改代码用强一点的可以在同一把 Key 下切换模型 ID也可以拆成两把 Key 分开计费。具体哪个模型适合哪类活仍然看模型广场的说明别照搬别人的选择。2.2 ~/.claude/settings.json 里的 env 三件套怎么写Claude Code 认三个环境变量ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL。最省事的写法是在 shell 里导出临时验证用这套就够了export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENYOUR_API_KEY export ANTHROPIC_MODEL模型广场里抄下来的模型 ID但每次开终端都导一遍很烦长期用建议写进~/.claude/settings.json的env字段{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: 模型广场里抄下来的模型 ID } }两个细节必须强调。第一ANTHROPIC_BASE_URL只写https://taotoken.net/api末尾不要带/v1也不要带任何查询参数带上之后请求路径会拼成/api/v1/v1/messages这种样子报的错看起来很玄学其实只是多了一段。第二ANTHROPIC_AUTH_TOKEN里放的是你的YOUR_API_KEY不是你从别处复制来的其他 Key。这一节配完Claude Code 的模型请求就走统一通道了跟 RYAI 还没发生关系。3. RYAI 那把 Bearer Key 单独建别和 TaoToken 的 Key 混用3.1 在 RYAI 的 MCP Keys 页面生成 sk-ryai- 开头的密钥模型通道和工作通道是两件事。模型通道决定 Claude Code 用哪个模型、走哪条 APIMCP 通道决定 Claude Code 能调用哪些外部工具。RYAI 有自己独立的鉴权体系它的密钥在 RYAI 控制台的 MCP Keys 页面创建形态是sk-ryai-开头的一串字符。这里最容易犯的错是把 TaoToken 的YOUR_API_KEY直接塞进 RYAI 的 Authorization 头。结果通常是 RYAI 返回 401而 Claude Code 的模型请求一切正常于是你会误以为是模型那边出了问题白折腾半小时。判断方法很简单看报错来自哪个服务。模型请求失败一般伴随ANTHROPIC_*相关的提示工具调用失败则出现在 MCP 工具调用的结果里。拿到sk-ryai-你的密钥之后同样单独存好别和模型 Key 写进同一个变量名。3.2 一条 claude mcp add 把 RYAI 挂到 Claude Code挂载 RYAI 不需要手写 JSON 配置文件用 Claude Code 自带的mcp add子命令最直接claude mcp add --transport http ryai https://motionsites.dev/api/mcp --header Authorization: Bearer sk-ryai-你的密钥拆开看每个参数--transport http说明这是一个 HTTP 型 MCP 服务不是本地进程型的 stdioryai是你在 Claude Code 里引用它时用的名字起个短的好记后面的 URL 是 RYAI 的 MCP 端点--header把 Bearer 鉴权带上。执行完之后用claude mcp list应该能看到ryai这一条状态是已连接。如果这一步报错先别急着改配置把命令原样复制到终端再跑一次确认不是复制过程中丢了引号。Authorization: Bearer和密钥之间是一个空格--header的整个键值对要用双引号包起来少一个字符都会让服务端把请求当成未鉴权。4. 用 fetch_blocks 把 Jiro.build 组件落进项目目录4.1 提示词怎么写RYAI 才会返回能直接用的区块MCP 挂上之后Claude Code 的工具列表里会多出 RYAI 提供的检索类工具。这时候你的提问方式决定了它会不会真的去搜。泛泛地说帮我做个好看的 hero模型大概率还是自己写因为它判断不出你需要外部资源。要主动把它往检索上引先在 RYAI 里找 Jiro.build 风格的 hero 区块把返回的 TSX 落到src/components/sections/下然后告诉我文件路径和它用到的依赖不要自己重写一遍。这样说的好处是把检索—落盘—汇报三个动作写清楚了。模型会先调fetch_blocks拿候选再把选中的区块代码写进项目文件最后只回给你路径和依赖清单。整段组件代码没有经过对话输出也就没有占用输出 Token这正是这一套配置最实惠的地方。同一个项目里要注意别让模型一次拉十几个区块。一口气落盘太多文件你反而不好逐个 review也会把上下文塞满。一次一两个区块边看边合效率更高。4.2 落盘目录与命名别覆盖项目里已有的组件Claude Code 往项目里写文件是实打实的写操作所以提前约定好目录结构很重要。比较稳的做法是给外部拉进来的组件单独开一个目录比如src/components/vendor/或者src/components/blocks/跟团队自己手写的组件分开。命名上建议在你给出的提示词里固定一种风格例如hero-jiro-01.tsx避免模型自由发挥导致同一个区块在两次拉取里生成两个不同文件名。拉下来之后先别直接 import 使用。花一分钟看一眼它依赖的动画库版本跟你项目里装的是不是同一个大版本样式方案是纯 Tailwind 还是掺了 CSS Modules有没有用到你项目里没装的图标库。这些依赖问题在落盘时不会报错等到你把它挂到页面里编译才会集中爆发。把这一步当成人工 review 环节别整个交给模型判断。5. 验证先确认 TaoToken 通再确认 RYAI 通5.1 发一条不依赖 MCP 的最小消息配置改完之后第一件事是隔离验证。先别碰 RYAI就发一条最普通的消息比如让它解释一段你随手贴的代码。这条消息会走 TaoToken 通道但不会触发任何 MCP 工具调用。如果它能正常返回说明ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL这三项都对如果这条就失败那问题百分百在模型通道上跟 RYAI 一点关系都没有。这一步能帮你省下大量无效排查时间。很多人在配完 MCP 之后发现一切都报错第一反应是 RYAI 挂了其实是模型 Key 或者 Base URL 写错了导致连最基础的对话都发不出去。然后在 TaoToken 模型对话 里用同一把 Key 发一条测试消息。这相当于换一个客户端做交叉验证如果浏览器里能通、Claude Code 里不能通那问题在 Claude Code 的环境变量或配置文件上如果两边都不通就回控制台看 Key 的状态和模型 ID。5.2 回控制台对一下这次调用有没有记上账验证完通不通再确认一下账有没有记对。打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 进控制台在用量记录里找刚才那几次调用核对三件事模型 ID 是不是你预期的那一个时间戳能不能对上消耗量级是不是落在合理范围内。这一步不是形式主义。有时候配置里写的模型 ID 是一个可用但你并不想用的模型调用能成功、账单却和你预期不符也有时候因为ANTHROPIC_MODEL没生效走了默认模型。用量记录会把这些情况暴露出来比等到月底才发现便宜得多。6. 排障Key、Base URL、MCP 挂载这三处最容易出错6.1 TaoToken 侧401 与模型不存在模型通道上最常见的两类报错成因完全不同。看到 401基本可以锁定在ANTHROPIC_AUTH_TOKEN上要么 Key 复制时首尾带了空格要么YOUR_API_KEY这个占位符忘了替换要么这把 Key 已经被删除或轮换了。检查顺序是从环境变量开始往配置文件里查注意 shell 里导出的变量会覆盖settings.json中的同名项两边值不一致时会让你误以为配置没生效。看到模型不存在或者类似的提示问题在ANTHROPIC_MODEL。最常见的成因是从别处抄了一个消费级模型名或者给模型 ID 手加日期后缀。解决方式是回模型广场把列表里的 ID 原样复制别凭记忆拼。现象大概率原因处理动作401 未授权Key 有空格、未替换占位符、Key 失效重新从控制台复制并创建一把新 Key模型不存在模型 ID 拼写错误或不在当前列表回模型广场原样复制 ID请求路径异常Base URL 末尾多加了/v1改为https://taotoken.net/api6.2 RYAI 侧工具列表为空、fetch_blocks 返回空RYAI 侧的报错特征和模型侧不一样。如果claude mcp list里根本看不到ryai说明mcp add那条命令没执行成功重新跑一次并注意引号。如果能看到ryai但状态不是已连接多半是 Bearer 密钥写错了或者--header那一段的格式被 shell 吃掉了引号。还有一种情况更隐蔽连接正常但 Claude Code 的可用工具列表里没有检索类工具。这通常是 MCP 服务端握手成功、工具注册环节出了问题可以先断开再重新挂载一次试试。如果是fetch_blocks有返回但返回结果为空一般不是接入问题而是你的检索词太窄——换一个更通用的描述比如从具体的动效名换成hero section with fade-in命中率会明显提高。把这三处按顺序过一遍从模型能不能说话到工具能不能连上再到检索词能不能命中绝大多数接入问题都能自己定位到具体某一层不用在三个服务之间来回猜。等这套跑顺了下一步可以做几件事。用刚配好的同一把 Key 去 模型对话 里发一条消息确认模型 ID 和 Base URL 都没填偏到 控制台 API Keys 查看这次 Claude Code 的调用有没有正常记上账顺便把 RYAI 用的那把 Key 和模型 Key 分开放如果准备长期靠 RYAI 拉组件写页面可以对照 Coding Plan 看看套餐够不够用。Claude Code 环境变量的完整对照表在 接入文档 里改配置之前扫一眼能少走不少弯路。