
three.js for coding agents: version-pinned API and review, assets, headless runs, perf, 3D models.
Public tool metadata for what this MCP can expose to an agent.
three_doctorStart here when something is broken: versions and imports, why the scene shows nothing, assets that will not load, removed APIs, colour, performance and cleanup, grouped by cause, most urgent first, with what `three_fix` does and numbered next stepsStart here when something is broken: versions and imports, why the scene shows nothing, assets that will not load, removed APIs, colour, performance and cleanup, grouped by cause, most urgent first, with what `three_fix` does and numbered next steps
No parameter schema in public metadata yet.
three_scanMap the project: bundler and framework, three vs `@types/three` vs package.json, the libraries around it, pages and import maps, every file that uses three with what it creates and where its loop is, renderer settings, assetsMap the project: bundler and framework, three vs `@types/three` vs package.json, the libraries around it, pages and import maps, every file that uses three with what it creates and where its loop is, renderer settings, assets
No parameter schema in public metadata yet.
three_apiExact API of a class, member or constant in the installed three: signature, deprecation, import path; did-you-mean for unknown namesExact API of a class, member or constant in the installed three: signature, deprecation, import path; did-you-mean for unknown names
No parameter schema in public metadata yet.
three_searchFind classes, constants and members by part of a nameFind classes, constants and members by part of a name
No parameter schema in public metadata yet.
three_reviewScored review (0-100) with 97 rules pinned to the installed release; `code` + `file` for unsaved code, `only_new` in a fix loop, `files` to focusScored review (0-100) with 97 rules pinned to the installed release; `code` + `file` for unsaved code, `only_new` in a fix loop, `files` to focus
No parameter schema in public metadata yet.
three_typesThe project's own `tsc --noEmit`, with each three.js type error answered from the installed release (the member that exists, the real import path)The project's own `tsc --noEmit`, with each three.js type error answered from the installed release (the member that exists, the real import path)
No parameter schema in public metadata yet.
three_fixThe renames that mean exactly the same, dry run first, undoableThe renames that mean exactly the same, dry run first, undoable
No parameter schema in public metadata yet.
three_explainCause and fix of a console, build or test message (35 kinds), with the right import path for the installed releaseCause and fix of a console, build or test message (35 kinds), with the right import path for the installed release
No parameter schema in public metadata yet.
three_lessons100 lessons from real three.js and react-three-fiber projects (symptom, cause, fix, test) by error message, words, rule or topic100 lessons from real three.js and react-three-fiber projects (symptom, cause, fix, test) by error message, words, rule or topic
No parameter schema in public metadata yet.
three_lesson_addKeep a lesson learned here, scrubbed of names, paths and code; it comes back under the same errorKeep a lesson learned here, scrubbed of names, paths and code; it comes back under the same error
No parameter schema in public metadata yet.
three_rulesEvery review rule with its category, release gating and fixEvery review rule with its category, release gating and fix
No parameter schema in public metadata yet.
three_feedbackMark a finding as a false alarm (hidden from then on) or rightMark a finding as a false alarm (hidden from then on) or right
No parameter schema in public metadata yet.
three_undoUndo the last Threesmith writes, newest firstUndo the last Threesmith writes, newest first
No parameter schema in public metadata yet.
three_versionWhich three release is installedWhich three release is installed
No parameter schema in public metadata yet.
three_checkHeadless Chromium (software WebGL 2): console and page errors with causes, shader errors at your file and line, failed requests, no context, lost context, blank frames, screenshot, baselines with a diff, interaction stepsHeadless Chromium (software WebGL 2): console and page errors with causes, shader errors at your file and line, failed requests, no context, lost context, blank frames, screenshot, baselines with a diff, interaction steps
No parameter schema in public metadata yet.
three_inspectThe live scene graph, camera, draw calls, GPU memory growth, and why each object is not visibleThe live scene graph, camera, draw calls, GPU memory growth, and why each object is not visible
No parameter schema in public metadata yet.
three_playSteps (click, press, hold, drag, wheel, frames, eval, until), watched values per frame and step, claims judged at the end, any moment or every frameSteps (click, press, hold, drag, wheel, frames, eval, until), watched values per frame and step, claims judged at the end, any moment or every frame
No parameter schema in public metadata yet.
three_scenarioKeep a passing play run as a regression test in `.threesmith/scenarios/`; `ci` runs them and writes JUnitKeep a passing play run as a regression test in `.threesmith/scenarios/`; `ci` runs them and writes JUnit
No parameter schema in public metadata yet.
three_perfDraw calls, triangles, programs, geometries, textures (exact) and frame-time percentiles with the slowest frames and their cause, against a budget and the last runDraw calls, triangles, programs, geometries, textures (exact) and frame-time percentiles with the slowest frames and their cause, against a budget and the last run
No parameter schema in public metadata yet.
three_leaksRepeat a cycle of steps with garbage collection and report what grows per cycle, down to the GPU resources never disposed, by typeRepeat a cycle of steps with garbage collection and report what grows per cycle, down to the GPU resources never disposed, by type
No parameter schema in public metadata yet.
three_sessionKeep a headless page open between calls (start, status, stop)Keep a headless page open between calls (start, status, stop)
No parameter schema in public metadata yet.
three_pageDrive that page without reloading: eval JS against the live scene, steps, frames, until, screenshot, inspect, reload, new errors after every answerDrive that page without reloading: eval JS against the live scene, steps, frames, until, screenshot, inspect, reload, new errors after every answer
No parameter schema in public metadata yet.
three_assetsEvery asset path resolved like the dev server and a static host: missing files, wrong capitals, decoder folders, glTF decoders the code never sets up, huge textures, unused filesEvery asset path resolved like the dev server and a static host: missing files, wrong capitals, decoder folders, glTF decoders the code never sets up, huge textures, unused files
No parameter schema in public metadata yet.
three_buildRun the build, check the output (copies of three, missing assets, sub-path URLs, decoders) and open the built page headlessRun the build, check the output (copies of three, missing assets, sub-path URLs, decoders) and open the built page headless
No parameter schema in public metadata yet.
three_model_briefOne page before you build a model: the nearest ready-made kind, parts, real size, rules, the order of toolsOne page before you build a model: the nearest ready-made kind, parts, real size, rules, the order of tools
No parameter schema in public metadata yet.
three_model_identifyWhat a thing is (English or Dutch): parts, pivots, typical size, variants, usual mistakesWhat a thing is (English or Dutch): parts, pivots, typical size, variants, usual mistakes
No parameter schema in public metadata yet.
three_model_specThe JSON model spec, an example, and the 110 ready-made kindsThe JSON model spec, an example, and the 110 ready-made kinds
No parameter schema in public metadata yet.
three_model_buildBuild a clean, deterministic `.glb` from a kind or a spec, and lint itBuild a clean, deterministic `.glb` from a kind or a spec, and lint it
No parameter schema in public metadata yet.
three_model_viewA `.glb` as text: front, side and top views, parts with sizes, parts that do not touchA `.glb` as text: front, side and top views, parts with sizes, parts that do not touch
No parameter schema in public metadata yet.
three_model_lintScore a `.glb` for the web (geometry, materials, triangles, draw calls, texture memory, loading), and against what it should beScore a `.glb` for the web (geometry, materials, triangles, draw calls, texture memory, loading), and against what it should be
No parameter schema in public metadata yet.
three_model_inspectWhat is in a `.glb` and which loaders and decoders three.js needs, with the setup code, checked against the project's codeWhat is in a `.glb` and which loaders and decoders three.js needs, with the setup code, checked against the project's code
No parameter schema in public metadata yet.
Sponsors
THREESMITH_CHROMIUMPath to a Chromium binary for three_check (default: Playwright's Chromium)
Threesmith logo
Less debugging. More dimension.
MCP server, CLI and Claude Code plugin. Works with Claude Code, Codex, Cursor, VS Code, Gemini CLI and any MCP client.
threesmith