用途:在编写 react-three-fiber(r3f)场景前,可先查阅 pmndrs examples 画廊,从中找到能运行的完整示例,用它替代自行重建。该画廊收录 167 个演示,每个都是自包含的小型 r3f 应用并附带源码。多数 r3f 问题想知道“这个场景是怎么搭出来的”,示例比重新构造更直接:它能运行、结构完整,且每个决策都已被做出。需要了解某个 API 接受什么参数时可查 pmndrs:docs,需要了解一个能工作的场景长什么样时可到这里。
主要能力与使用方式:先用 ReadMcpResourceTool 直接读取 examples://index,它是整个画廊的索引,约 4.5k tokens,每行一个演示;无需使用 ListMcpResourcesTool。随后用 mcp__pmndrs__get_example 并附带该行中的名称来读取具体示例。每次对话读取一次索引即可;没有按标签或按库的变体,也没有搜索工具,索引本身就是搜索。索引行格式为:名称(标题,如果标题不等于名称)· 描述 · +库 · #标签 · ~大小。名称之后的部分在演示未提供时会被省略。+ 列出该演示在 @react-three/fiber 与 @react-three/drei(所有演示都会用到这两者)之外还用到什么,例如 +rapier 是有意义的信号,而没有 + 不代表什么。不要仅凭标签匹配:标签是自由填写且未经验证的,可能出现拼写错误(如 gtlf、clell-fracture、frosted-glas),同一概念也可能有两种写法(contact shadows / contact-shadows)。还应扫描名称和描述,167 个中有 39 个没有描述,名称有时是唯一说明。
打开数量:多数演示很小,中位数约 1.4k tokens,九成在 4k 以下。三个演示的成本低于已读的索引,因此当两行匹配度相当时可两个都打开,这比打开一个发现不对再返回更省,而且对比本身就是答案,例如在焦散与钻石折射之间比较,正是“用透射还是折射”要问的问题。当没有单个演示完成全部工作时,可用一个演示的滚动装配加另一个演示的材质。有八个演示大到需要谨慎选择,它们会以结尾的 ~23k 标明 get_example 的代价,无标记即便宜;有标记的应有意识打开,且不要同时打开两个。返回内容中,二进制文件(.glb、纹理、音频)以及供应商提供的或生成的文本(打包文件、字体图集、gltfjsx 输出)以命名而非内联形式给出,两者都在响应链接到的仓库中。
限制:示例是快照而非规范。每个演示固定自己的版本,get_example 会报告这些版本;基于 drei 10.7 的代码是当时做法的证据,并不保证今天的 API 依然如此。当答案取决于当前签名或 prop 时,应与文档核对——两者回答不同问题,不能互相替代。示例还带有各自的许可,资源归属会随演示返回,并随任何复用其内容的行为一起传递。交付时,响应还包含继续所需的材料:实时演示 URL,即使已根据源码作答也值得给出;以及 npx degit pmndrs/examples/examples/{name},可将整个内容放入目录,是交给他人一个可运行起点最快的方式。