Skip to main content
Glama
threejs-devtools-mcp

threejs-devtools-mcp

by DmitriyGolub

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
scene_treeA

[INSPECT] Read-only. Scene hierarchy. Compact text tree by default (~2KB); compact=false for full JSON with positions/geometry.

object_detailsB

[INSPECT] Read-only. Detailed info about one object by name, uuid, or dot path.

find_objectsB

[INSPECT] Read-only. Search objects by type, material, visibility, name pattern, or custom property.

raycastB

[INSPECT] Read-only. Cast a ray from the camera through screen coordinates and return hit objects.

click_inspectA

[INSPECT] Read-only. Click-to-inspect: the cursor becomes a crosshair — tell the user to click an object in the 3D view. Returns that object.

scene_diffA

[INSPECT] Read-only. Compare scene state over time: first call saves a snapshot, next call lists added/removed/modified objects.

layer_detailsB

[INSPECT] Read-only. Camera layer mask and objects with non-default layers.

set_object_transformA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Set position, rotation, scale, or visibility of an object.

set_layersA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Set layers on an object or the camera.

material_listA

[INSPECT] Read-only. All materials in the scene with type, color, transparency.

material_detailsB

[INSPECT] Read-only. Full material properties: colors, PBR/physical params, maps, uniforms, defines, NodeMaterial (TSL) slots.

shader_listB

[INSPECT] Read-only. Compiled shader programs with their materials (WebGL).

shader_sourceA

[INSPECT] Read-only. Vertex/fragment GLSL source and uniforms of a material. NodeMaterial (TSL) has no GLSL — use material_details.

texture_listA

[INSPECT] Read-only. All textures: size, format, wrap, filter settings.

texture_detailsC

[INSPECT] Read-only. Detailed info about one texture.

texture_previewA

[INSPECT] Read-only. Show a texture as a PNG image. Use texture_list to find names/UUIDs.

set_material_propertyA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Set a material property. Accepts the material name or the name of a mesh that uses it.

set_uniformA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Set a ShaderMaterial uniform.

set_textureA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Change texture sampling and transform: wrap, filter, anisotropy, repeat, offset, rotation, colorSpace.

shadow_detailsA

[INSPECT] Read-only. Shadow maps: global settings, per-light bias/mapSize/camera frustum, casters and receivers.

scene_backgroundA

[INSPECT] Read-only. Scene background, environment map (IBL), backgroundBlurriness/Intensity, color management.

env_map_detailsB

[INSPECT] Read-only. Environment maps: scene.environment, scene.background, per-material envMap.

fog_detailsA

[INSPECT] Read-only. Scene fog: type (Fog/FogExp2), color, near/far or density.

set_lightA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Change a light: color, intensity, position, castShadow, groundColor (HemisphereLight).

set_shadowA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Change shadow casting/receiving on any object, and bias/mapSize/shadow camera on lights.

set_fogA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Change scene fog (color, near/far or density) and the background color.

camera_detailsA

[INSPECT] Read-only. Active camera: type, position, FOV, near/far, aspect.

renderer_infoA

[INSPECT] Read-only. Renderer stats and backend (WebGL / WebGPU): draw calls, triangles, memory, capabilities.

renderer_settingsA

[INSPECT] Read-only. Renderer configuration: toneMapping, exposure, colorSpace, shadowMap, pixelRatio.

clipping_detailsA

[INSPECT] Read-only. Clipping planes: renderer global, per-material, ClippingGroup objects.

postprocessing_listA

[INSPECT] Read-only. EffectComposer passes: render passes, shader passes, effects (bloom, SSAO, …).

set_cameraA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Change the active camera: position, rotation, FOV, near/far, zoom, ortho bounds.

set_rendererA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Change renderer settings: tone mapping, exposure, color space, pixel ratio, shadows.

set_clippingA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Change clipping planes on the renderer (global) or a material.

set_postprocessingA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Enable/disable passes, set pass uniforms or effect parameters. Without a pass, lists passes.

geometry_detailsB

[INSPECT] Read-only. Geometry of a mesh: vertices, attributes, index, bounding box, morph attributes.

instanced_mesh_detailsA

[INSPECT] Read-only. InstancedMesh: count, capacity, sample transforms, instance colors and custom attributes.

batched_mesh_detailsA

[INSPECT] Read-only. BatchedMesh: geometry counts, draw ranges, instance visibility. Lists all if no name/uuid.

morph_targetsA

[INSPECT] Read-only. Meshes with morph targets: target names and current influences.

skeleton_detailsB

[INSPECT] Read-only. Skeletons and bones of SkinnedMesh objects.

animation_detailsA

[INSPECT] Read-only. AnimationMixers with their actions, clips, weights and playback state.

set_instanced_meshA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Change InstancedMesh count, visibility, frustumCulled.

set_morph_targetA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Set a morph target influence.

set_animationA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Control playback: mixer timeScale/time, action play/stop/pause/weight by clip name.

web_auditB

[INSPECT] Read-only. Website health check: pixel ratio, canvas resize, idle/off-screen rendering, antialias cost, oversized or uncompressed textures, shadow cost, color space, draw calls. Each finding has a concrete fix.

performance_snapshotB

[INSPECT] Read-only. Draw calls, triangles, instanced meshes, object counts by type.

perf_monitorB

[INSPECT] Read-only. Record FPS and frame times for N seconds: avg/min/max, percentiles, spikes, jank.

draw_call_breakdownA

[INSPECT] Read-only. Per-object draw call and triangle cost, sorted by cost. Flags multi-material objects and hidden geometry.

memory_statsB

[INSPECT] Read-only. GPU memory: geometry buffers, texture VRAM, instance data, top textures by size.

dispose_checkA

[INSPECT] Read-only. Leak detection: geometries/textures tracked by the renderer but no longer in the scene.

console_captureB

[INSPECT] Read-only. Recent browser console output (log/warn/error).

toggle_overlayA

[DEBUG VISUAL] Temporary visual aid in the browser. Nothing to put in code. In-browser inspector panel: live FPS, draw calls, scene tree, materials, lights. Clicking a tree item highlights it.

overlay_selectedA

[INSPECT] Read-only. Everything about the object the user selected in the overlay: materials, geometry, transforms, textures, uniforms, shadows.

highlight_objectA

[DEBUG VISUAL] Temporary visual aid in the browser. Nothing to put in code. Highlight an object with wireframe, or toggle its visibility, to point it out.

toggle_wireframeA

[DEBUG VISUAL] Temporary visual aid in the browser. Nothing to put in code. Wireframe on all materials or one object.

bounding_boxesA

[DEBUG VISUAL] Temporary visual aid in the browser. Nothing to put in code. Show/hide bounding boxes — debug frustum culling and object bounds.

add_helperA

[DEBUG VISUAL] Temporary visual aid in the browser. Nothing to put in code. Add a debug helper to an object: box, axes, skeleton, arrow, grid, camera frustum, light helpers, plane.

remove_helperA

[DEBUG VISUAL] Temporary visual aid in the browser. Nothing to put in code. Remove a helper added with add_helper.

run_jsA

[DEBUG VISUAL] Temporary visual aid in the browser. Nothing to put in code. Run JavaScript in the page with scene, renderer, camera, gl in scope; return a value to get it back. Changes made here are NOT recorded in pending_changes — prefer the set_* tools for anything the user may want to keep.

take_screenshotA

[INSPECT] Read-only. Screenshot of the current scene (also saved as PNG in screenshots/).

annotated_screenshotA

[INSPECT] Read-only. Screenshot with object names drawn at their screen positions ([M]esh, [L]ight, [G]roup, [C]amera). Best for understanding layout.

capture_framesA

[INSPECT] Read-only. Record a frame sequence for a video. Time is virtualised, so frames are exactly 1/fps apart and smooth even if rendering is slow. Saves numbered images to screenshots/sequence-/ and returns an ffmpeg command.

scene_exportA

[INSPECT] Read-only. Export the scene or one object as GLB/glTF into screenshots/. Needs GLTFExporter in the app (the error explains setup).

pending_changesA

[FOR CODE] Output is meant to be written into the project source files. Everything changed with live-preview tools since the last clear: before → after per property, plus ready-to-paste code (vanilla Three.js and/or React Three Fiber) and where to find each target. Use it to persist a preview into source; call again with clear=true once the code is updated.

revert_changesA

[LIVE PREVIEW] Changes the scene in the browser only — NOT saved to source code, lost on reload. Recorded in pending_changes (→ code edits) and undoable with revert_changes. Undo live-preview changes in the browser (all, or selected ids from pending_changes), newest first.

gltf_to_r3fA

[FOR CODE] Output is meant to be written into the project source files. Convert a GLB/glTF file into a React Three Fiber component (like gltfjsx).

bridge_statusC

[CONNECTION] Configures the devtools server. Bridge connection, proxy target, and how to attach Playwright to the same browser.

set_dev_portB

[CONNECTION] Configures the devtools server. Point the proxy at another local dev server port.

set_dev_urlB

[CONNECTION] Configures the devtools server. Inspect a remote Three.js app by URL. Source code changes are not possible in remote mode.

Prompts

Interactive templates invoked by user choice

NameDescription
inspect-sceneOverview of the running scene and its problems — looks only, changes nothing.
try-lookTry a visual change live in the browser. Nothing is written to code.
apply-to-codeWrite the live-preview changes into the project source.
web-perf-auditChecks a Three.js website for blurriness, battery drain, load weight and frame drops.
prepare-videoCheck the scene and record a smooth frame sequence for a video or promo clip.
debug-invisibleChecklist for an object that does not show up.
playwright-setupConnect Playwright (tests or Playwright MCP) to the same Three.js scene.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.1/5.0

Scored across 69 tools

Disambiguation3/5

The server has clear category tags and distinct targets for most tools, but overlapping clusters exist in performance/memory inspection (renderer_info, performance_snapshot, web_audit, draw_call_breakdown, memory_stats, dispose_check) and debug visuals (highlight_object, toggle_wireframe, bounding_boxes, add_helper), where an agent could misselect despite descriptions.

Naming Consistency4/5

All tool names are lower_snake_case and follow predictable patterns (noun_details/list for inspection, set_* for live preview, toggle_*/add_*/remove_* for debug), but not a strict verb_noun convention and includes abbreviations (perf, env, gltf) and verb-only names like raycast.

Tool Count1/5

69 tools is an extreme mismatch for a single MCP server, far beyond the 3-15 well-scoped range; many tools are highly specialized and could be consolidated.

Completeness4/5

The surface covers inspection, live preview, code persistence, and connection setup across nearly all Three.js subsystems, with only minor gaps like direct scene background/environment setters and object creation/deletion (workable via run_js).

Maintenance

ActivityMaintained
ResponsivenessUnresponsive