mcpField
T
Three.js DevTools MCP

Three.js DevTools MCP

本地服务
github.com开发工具1282 周前更新

关于 Three.js DevTools MCP

Three.js DevTools MCP 是一个 MCP 服务,可通过浏览器检查和修改 Three.js 场景,支持原生 Three.js 和 React Three Fiber。它将临时实时预览与源码修改区分开,并为应用更改提供可直接使用的代码。

主要功能

  1. 01检查场景对象、材质、着色器和纹理
  2. 02在浏览器中实时预览场景更改
  3. 03从待处理更改生成代码
  4. 04审查网站渲染和性能
  5. 05捕获平滑的视频帧序列
  6. 06连接 Playwright 和 Puppeteer 工作流

适用场景

  1. 01查找模型或对象不可见的原因
  2. 02预览材质、灯光或相机调整
  3. 03将场景试验转为源码修改
  4. 04检查 Three.js 网站的渲染问题
  5. 05录制用于宣传的场景片段

MCP 相关

该 MCP 服务提供检查和修改 Three.js 场景、审查网站、捕获帧以及连接浏览器自动化的工具。MCP 客户端可通过浏览器开发者工具桥接来调用这些工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dmitriygolub-threejs-devtools": {
"command": "npx",
"args": [
"-y",
"threejs-devtools-mcp"
],
"env": {
"DEV_PORT": "<DEV_PORT>",
"BRIDGE_PORT": "<BRIDGE_PORT>",
"BROWSER": "<BROWSER>",
"HEADLESS": "<HEADLESS>",
"CHROME_PATH": "<CHROME_PATH>"
}
}
}
}
启动命令npx -y threejs-devtools-mcp
需要配置的环境变量
DEV_PORTDev server port to proxy (auto-detected from package.json if not set)
BRIDGE_PORTBridge proxy port (default: 9222)
BROWSERSet to 'none' to disable auto-opening browser
HEADLESSSet to 'true' for headless browser mode (CI)
CHROME_PATHCustom Chrome/Edge executable path

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmthreejs-devtools-mcp0.2.1

工具

51

收录的工具列表 · 更新于 2 周前

参数类型必填说明
depthnumber否最大树深度(默认值:3)
typesarray否按类型筛选:Mesh、Light、Group 等。
compactboolean否精简文本树(默认值:true)。设置 false 可返回包含位置/几何信息的完整 JSON。
maxChildrennumber否每个节点的最大子节点数(默认值:精简模式为 15,JSON 模式为 100)

详细介绍

threejs-devtools-mcp

npm version license build MCP Registry

用于实时检查 Three.js 场景、在浏览器中即时尝试更改并将其转换为代码的 MCP 服务。69 个工具涵盖对象、材质、着色器、纹理、动画、性能和内存,以及网站审计、视频帧捕获和 Playwright 辅助工具。

无需更改项目。 适用于原生 Three.js 和 React Three Fiber,支持 WebGLRenderer 和 WebGPURenderer。

带注释的截图

设置

1. 添加 MCP 服务
Claude Code
claude mcp add threejs-devtools-mcp -- npx threejs-devtools-mcp
Claude Desktop

添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "threejs-devtools-mcp": {
      "command": "npx",
      "args": ["-y", "threejs-devtools-mcp"]
    }
  }
}
Cursor

添加到项目中的 .cursor/mcp.json:

{
  "mcpServers": {
    "threejs-devtools-mcp": {
      "command": "npx",
      "args": ["-y", "threejs-devtools-mcp"]
    }
  }
}

或者使用 HTTP 传输方式 — 查看 Cursor 设置指南。

Windsurf

添加到 ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "threejs-devtools-mcp": {
      "command": "npx",
      "args": ["-y", "threejs-devtools-mcp"]
    }
  }
}
VS Code (Copilot)

添加到 .vscode/mcp.json:

{
  "servers": {
    "threejs-devtools-mcp": {
      "command": "npx",
      "args": ["-y", "threejs-devtools-mcp"]
    }
  }
}
OpenCode

添加到项目中的 opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "threejs-devtools-mcp": {
      "type": "local",
      "command": ["npx", "-y", "threejs-devtools-mcp"],
      "enabled": true
    }
  }
}
2. 启动开发服务并打开浏览器

照常启动 Three.js 开发服务(npm run dev)。MCP 服务会自动从 package.json 检测端口,并打开 localhost:9222,注入开发者工具桥接程序。

保持浏览器标签页打开。 MCP 服务通过 WebSocket 桥接程序与场景通信。关闭标签页 = 工具停止工作。

3. 向 AI 询问场景相关问题
"show me the scene tree"
"why is my model invisible?"
"try the car in red"          ← live preview, nothing saved
"keep it"                     ← written into your code
"audit this site for mobile"
"record a 5-second clip at 60 fps"

仅查看效果 vs. 更改代码

每个工具都带有标签,方便你和 AI 始终了解哪些操作会影响文件:

工具代码
检查scene_tree、material_details、web_audit、截图……不受影响
实时预览set_material_property、set_light、set_camera……不受影响;页面重新加载后更改会丢失
调试可视化线框、边界框、辅助对象、叠加层不受影响;无需写入代码
用于代码pending_changes、gltf_to_r3fAI 会将代码写入源文件

每项实时预览更改都会被记录。pending_changes 会返回每项更改的之前 → 之后状态、可直接粘贴的代码(原生 Three.js 和 React Three Fiber),以及在项目中的位置。revert_changes 可在浏览器中撤销这些更改。

用于网站和视频

  • web_audit:检查画布模糊(像素比率、缺少尺寸调整)、耗电过多(空闲或画面移出屏幕时仍在渲染)、纹理过大(尺寸超限、未使用 KTX2)、阴影开销过高、色彩空间错误以及绘制调用过多。每项问题都会附带修复方法。
  • capture_frames:录制用于宣传短片和 Reels 的连续帧。时间经过虚拟化处理,因此即使场景渲染缓慢,输出也能以 30/60 fps 完美流畅。你会获得用于生成 MP4/WebM 的 ffmpeg 命令。

技能

在 Claude Code、Cursor 和其他客户端中,这些现成工作流会显示为斜杠命令:inspect-scene、try-look、apply-to-code、web-perf-audit、prepare-video、debug-invisible、playwright-setup。

Playwright & Puppeteer

三种连接方式,使用的工具都相同:你自己的浏览器(默认)、由服务启动的 Chrome(HEADLESS / CDP_PORT,可与 Playwright MCP 共享),或你自己的测试:

import { attachDevtools, waitForScene, threeCall } from 'threejs-devtools-mcp/playwright';

await attachDevtools(context, { connect: false });
await page.goto('http://localhost:5173');
await waitForScene(page);
expect((await threeCall(page, 'object_details', { name: 'Car' })).visible).toBe(true);

参见 Browsers, Puppeteer & Playwright。

浏览器内叠加层

内置的开发者工具面板,提供实时性能统计、交互式场景图、材质编辑器和 3D 对象预览。自动激活,也可通过 toggle_overlay 工具激活。

叠加层面板

提示:为对象命名

未命名的对象在场景树中显示为 (unnamed)。为对象命名后,更容易查找和修改:

// Three.js
mesh.name = "player";
// React Three Fiber
<mesh name="player" geometry={geometry} material={material} />

文档

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。