Three.js DevTools MCP について
Three.js DevTools MCP は、ブラウザー経由で Three.js シーンを調査、変更する MCP サーバーです。バニラの Three.js と React Three Fiber に対応し、一時的なライブプレビューとソースコードの変更を分け、適用用コードも提示します。
主な機能
- 01シーンのオブジェクト、マテリアル、シェーダー、テクスチャの調査
- 02ブラウザーでのシーン変更のライブプレビュー
- 03保留中の変更からコードを生成
- 04ウェブサイトの描画とパフォーマンスを監査
- 05滑らかな動画フレーム列のキャプチャ
- 06Playwright と Puppeteer のワークフローに接続
活用シーン
- 01モデルやオブジェクトが見えない原因の調査
- 02マテリアル、照明、カメラの調整をプレビュー
- 03シーン上の試行をソースコードの変更に反映
- 04Three.js サイトの描画問題を確認
- 05プロモーション用のシーン映像を録画
MCP 対応
この MCP サーバーは、Three.js シーンの調査と編集、ウェブサイト監査、フレームキャプチャ、ブラウザー自動化接続用のツールを公開します。MCP クライアントはブラウザーの DevTools ブリッジ経由でこれらを利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y threejs-devtools-mcpDEV_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 browserHEADLESSSet to 'true' for headless browser mode (CI)CHROME_PATHCustom Chrome/Edge executable pathローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
51掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| depth | number | いいえ | ツリーの最大深度(デフォルト:3) |
| types | array | いいえ | タイプでフィルター:Mesh、Light、Group など。 |
| compact | boolean | いいえ | 簡潔なテキストツリー(デフォルト:true)。false に設定すると、位置/ジオメトリを含む完全な JSON を返します。 |
| maxChildren | number | いいえ | ノードごとの最大子ノード数(デフォルト:簡潔モードでは 15、JSON では 100) |
詳細
threejs-devtools-mcp
Three.js のシーンをリアルタイムで調査し、ブラウザー上で変更をライブプレビューして、コードに反映するための MCP サーバーです。69 個のツールで、オブジェクト、マテリアル、シェーダー、テクスチャ、アニメーション、パフォーマンスとメモリのほか、ウェブサイトの監査、動画フレームのキャプチャ、Playwright ヘルパーにも対応しています。
プロジェクトに変更を加える必要はありません。 vanilla 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"
今すぐ確認するか、コードを変更するか
各ツールにはラベルが付いているため、ファイルに影響する操作をユーザーと AI が常に把握できます:
| ツール | コードへの影響 | |
|---|---|---|
| 調査 | scene_tree、material_details、web_audit、スクリーンショットなど | 変更なし |
| ライブプレビュー | set_material_property、set_light、set_camera など | 変更なし。ページを再読み込みすると失われます |
| デバッグ表示 | ワイヤーフレーム、バウンディングボックス、ヘルパー、オーバーレイ | 変更なし。コードに含める必要はありません |
| コード反映用 | pending_changes、gltf_to_r3f | AI がソースコードに書き込みます |
ライブプレビューで加えた変更はすべて記録されます。pending_changes を実行すると、変更ごとに変更前 → 変更後の内容と、そのまま貼り付けられるコード(vanilla Three.js と React Three Fiber)が返され、プロジェクト内の該当箇所も示されます。revert_changes を使うと、ブラウザー上で変更を元に戻せます。
ウェブサイトと動画向け
web_audit:ぼやけたキャンバス(ピクセル比、リサイズ処理の不足)、バッテリー消費(アイドル時や画面外でのレンダリング)、大きすぎるテクスチャ(サイズ超過、KTX2 未使用)、高負荷なシャドウ、誤った色空間、過剰なドローコールを検出します。各検出項目には修正方法が示されます。capture_frames:プロモーション動画やリール用のフレームシーケンスを記録します。時間を仮想化するため、シーンのレンダリングが遅くても、出力は 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 と共有可能)、または独自のテストの 3 つです。
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);
ブラウザー、Puppeteer、Playwrightをご覧ください。
ブラウザー内オーバーレイ
パフォーマンス統計のリアルタイム表示、操作可能なシーングラフ、マテリアルエディター、3D オブジェクトのプレビューを備えた、組み込みの開発者ツールパネルです。自動的に、またはtoggle_overlayツールから有効になります。

ヒント:オブジェクトに名前を付けましょう
名前のないオブジェクトは、シーンツリーに(unnamed)と表示されます。名前を付けると、オブジェクトを見つけて変更しやすくなります。
// Three.js
mesh.name = "player";
// React Three Fiber
<mesh name="player" geometry={geometry} material={material} />
ドキュメント
- ツールリファレンス — モード別の全 69 ツール、スキル、パラメーター
- ブラウザー、Puppeteer、Playwright — 接続モード、E2E テスト、CI のヒント
- 高度なセットアップ — アニメーション、シーンのエクスポート、設定、トランスポート
- Cursor のセットアップ — Cursor のステップバイステップガイド
- トークン効率のよいワークフロー — コンテキストを節約するためのベストプラクティス
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。