Skip to main content
Glama
DmitriyGolub

threejs-devtools-mcp

by DmitriyGolub

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
scene_treeA

List all objects in the Three.js scene tree. Returns compact text tree by default (saves tokens). Set compact=false for full JSON.

object_detailsA

Get detailed info about a specific object by name, uuid, or path

material_listA

List all materials in the scene with type, color, transparency

material_detailsA

Get full properties of a material: color, maps, uniforms, defines

shader_sourceA

Get compiled vertex/fragment shader source and uniforms for a material

shader_listA

List all compiled shader programs with their material associations

texture_listA

List all textures: size, format, wrap, filter settings

texture_detailsB

Get detailed info about a specific texture

renderer_infoA

Get renderer stats: draw calls, triangles, memory, capabilities

set_material_propertyA

Set a material property (color, roughness, wireframe, etc.). IMPORTANT: This is a runtime-only preview (lost on reload). Before calling, ASK the user whether they want a runtime preview or a persistent code change.

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

set_uniformA

Set a shader uniform value on a ShaderMaterial — runtime-only preview (lost on reload). ASK the user first: runtime preview or persistent code change?

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

set_object_transformA

Set position, rotation, scale, or visibility of a scene object — runtime-only preview (lost on reload). ASK the user first: runtime preview or persistent code change?

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

set_lightA

Modify light properties: color, intensity, position, shadows — runtime-only preview (lost on reload). ASK the user first: runtime preview or persistent code change?

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

highlight_objectA

Highlight an object for debugging (wireframe or visibility toggle). Runtime only — for visual inspection, not persisted.

Debug only — page reload will reset. No code changes needed.

run_jsA

Execute arbitrary JavaScript with access to scene, renderer, camera. Returns the result. Runtime only (lost on reload). If the code mutates scene state, ASK the user first: runtime preview or persistent code change?

SHADER PATCHING RECIPE — when modifying materials via onBeforeCompile:

  1. Reset patch flags: mat._curvedWorldPatched = false; mat._windPatched = false;

  2. Delete old shader refs: delete mat.userData.shakeShader; stop old animations via mesh.userData._stopShake?.();

  3. ONE onBeforeCompile pass (never chain) — include curved world + your effect together

  4. Replace '#include <project_vertex>' with full transform: USE_BATCHING/USE_INSTANCING guards → effect in world space → curved world (worldPos.y -= dist²0.005) → viewMatrixworldPos → gl_Position

  5. Declare uniforms before main(): shader.vertexShader.replace('void main() {', 'uniform float uTime;\nvoid main() {')

  6. Set mat.customProgramCacheKey = () => 'effect-' + Date.now(); — forces recompilation

  7. mat.needsUpdate = true;

  8. Animate uniforms via requestAnimationFrame loop

  9. Use transformed.y for height-based effects (local vertex Y), worldPos for spatial phase

Debug only — page reload will reset. No code changes needed.

performance_snapshotA

Get detailed performance analysis: draw calls, triangles, instanced meshes, object counts by type

instanced_mesh_detailsA

Inspect an InstancedMesh: count, max instances, geometry, sample transforms, custom attributes, instance colors

set_instanced_meshA

Modify InstancedMesh properties: count, visibility, frustumCulled — runtime-only preview (lost on reload). ASK the user first: runtime preview or persistent code change?

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

camera_detailsA

Get active camera properties: type, position, FOV, near/far, aspect

set_cameraA

Modify camera: position, rotation, FOV, near/far, zoom — runtime-only preview (lost on reload). ASK the user first: runtime preview or persistent code change?

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

fog_detailsA

Get scene fog settings: type (Fog/FogExp2), color, near/far or density

set_fogA

Modify scene fog: color, near/far (Fog) or density (FogExp2), background color — runtime-only preview (lost on reload). ASK the user first: runtime preview or persistent code change?

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

renderer_settingsB

Get renderer configuration: toneMapping, exposure, colorSpace, shadowMap, pixelRatio

set_rendererA

Modify renderer: toneMapping, exposure, colorSpace, shadows — runtime-only preview (lost on reload). ASK the user first: runtime preview or persistent code change?

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

animation_detailsA

List all AnimationMixers, their actions, clips, weights, and playback state

set_animationA

Control animation: mixer timeScale, action play/stop/pause/weight. Runtime only — for testing.

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

skeleton_detailsA

List all skeletons/bones from SkinnedMesh objects in the scene

geometry_detailsA

Inspect geometry: vertices, attributes, indices, bounding box, morph attributes

morph_targetsA

List all meshes with morph targets, their target names and current influence values

set_morph_targetA

Set morph target influence on a mesh — runtime-only preview (lost on reload). ASK the user first: runtime preview or persistent code change?

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

raycastA

Cast a ray from camera through screen coordinates and return hit objects

layer_detailsA

Show camera layer mask and objects with non-default layer assignments

set_layersA

Set layers on an object or camera — runtime-only preview (lost on reload). ASK the user first: runtime preview or persistent code change?

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

add_helperA

Add a visual debug helper to a scene object. Types: box, axes, skeleton, arrow, grid, polar_grid, camera, directional_light, spot_light, point_light, hemisphere_light, plane

Debug only — page reload will reset. No code changes needed.

remove_helperA

Remove a previously added debug helper

Debug only — page reload will reset. No code changes needed.

set_textureA

Modify texture properties: wrap, filter, anisotropy, repeat, offset, colorSpace — runtime-only preview (lost on reload). ASK the user first: runtime preview or persistent code change?

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

shadow_detailsA

Inspect shadow maps: global settings, per-light shadow config (bias, mapSize, camera frustum), cast/receive objects

set_shadowA

Modify shadow settings — runtime-only preview (lost on reload). ASK the user first: runtime preview or persistent code change?

Runtime preview — lost on page reload. You MUST ask the user first: runtime preview only, or also update source code?

scene_backgroundB

Inspect scene background, environment map (IBL), color management, backgroundBlurriness/Intensity

find_objectsA

Search scene objects by type, material, visibility, name pattern, or custom property. Returns matching objects with details.

memory_statsA

Detailed GPU memory analysis: geometry buffers, texture VRAM, instance data, top textures by size

dispose_checkA

Find potential memory leaks: orphaned geometries/textures not in scene but tracked by renderer, hidden objects with geometry

toggle_wireframeA

Toggle wireframe on all materials or a specific object. Runtime only — for visual debugging.

Debug only — page reload will reset. No code changes needed.

bounding_boxesA

Show/hide axis-aligned bounding boxes for scene objects. Runtime only — for debugging frustum culling and object bounds.

Debug only — page reload will reset. No code changes needed.

env_map_detailsA

Inspect environment maps: scene.environment, scene.background, per-material envMap, IBL settings

scene_diffA

Compare scene state over time. First call saves a snapshot, second call shows what changed (added/removed/modified objects, transforms, materials, lights).

postprocessing_listA

List post-processing passes from EffectComposer: render passes, shader passes, effects (bloom, SSAO, etc.)

console_captureA

Capture browser console output (log/warn/error). Returns last N messages. Call to check for runtime errors and warnings.

texture_previewA

Preview a specific texture as a PNG image. Use texture_list first to find names/UUIDs.

perf_monitorA

Record FPS and frame times for N seconds. Returns avg/min/max FPS, percentiles, spike and jank counts.

click_inspectA

Enable click-to-inspect mode. Cursor changes to crosshair — tell the user to click on an object in the 3D scene. Returns clicked object details.

scene_exportA

Export scene or specific object as GLB. Requires GLTFExporter in your app (see error message for setup). Saves to screenshots/ folder.

gltf_to_r3fA

Convert a GLTF/GLB file to a ready-to-use React Three Fiber component (like gltfjsx)

take_screenshotB

Capture a screenshot of the current Three.js scene

annotated_screenshotA

Screenshot with labeled object names overlaid at their screen positions. Shows [M]esh, [L]ight, [G]roup, [C]amera tags. Great for AI to understand scene layout visually.

toggle_overlayA

Toggle a lightweight scene inspector overlay in the browser. Shows real-time FPS, draw calls, triangles, object count, scene tree, materials, and lights. Click objects in the tree to highlight them with wireframe. Debug only — page reload will reset.

Debug only — page reload will reset. No code changes needed.

overlay_selectedA

Get comprehensive details about the object currently selected in the overlay. Returns full material properties, geometry info, transforms, textures, uniforms, shadow settings — everything needed to understand and modify the object in code. The user must first select an object in the overlay by clicking on it.

bridge_statusA

Check bridge connection and proxy status

set_dev_portA

Change the local dev server port the proxy forwards to

set_dev_urlA

Connect to a remote Three.js app by URL for inspection and visual debugging. Source code changes are NOT possible in remote mode — only runtime/visual modifications.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DmitriyGolub/threejs-devtools-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server