Skip to main content
Glama
DmitriyGolub

threejs-devtools-mcp

by DmitriyGolub

threejs-devtools-mcp

npm version license build MCP Registry

MCP server for inspecting and modifying Three.js scenes in real time — 59 tools for objects, materials, shaders, textures, animations, performance monitoring, memory diagnostics, and code generation.

Zero changes to your project. Works with vanilla Three.js, React Three Fiber, and any framework.

Annotated screenshot

Setup

1. Add the MCP server

claude mcp add threejs-devtools-mcp -- npx threejs-devtools-mcp

Add to claude_desktop_config.json:

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

Add to .cursor/mcp.json in your project:

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

Or use the HTTP transport — see Cursor setup guide.

Add to ~/.codeium/windsurf/mcp_config.json:

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

Add to .vscode/mcp.json:

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

Add to opencode.json in your project:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "threejs-devtools-mcp": {
      "type": "local",
      "command": ["npx", "-y", "threejs-devtools-mcp"],
      "enabled": true
    }
  }
}

2. Start your dev server and open the browser

Start your Three.js dev server as usual (npm run dev). The MCP server auto-detects the port from package.json and opens a browser at localhost:9222 with the devtools bridge injected.

Keep the browser tab open. The MCP server talks to your scene through a WebSocket bridge. Close the tab = tools stop working.

3. Ask the AI about your scene

"show me the scene tree"
"why is my model invisible?"
"make the car red"
"check for memory leaks"
"what's my FPS?"
"generate a React component from character.glb"

Related MCP server: threlte-mcp

In-browser overlay

A built-in devtools panel with live performance stats, interactive scene graph, material editor, and 3D object preview. Activated automatically or via the toggle_overlay tool.

Overlay panel

Tip: name your objects

Unnamed objects show as (unnamed) in the scene tree. Named objects are easier to find and modify:

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

Documentation

License

MIT

Available Tools

60 tools
add_helperA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetNoTarget object name
targetUuidNoTarget object UUID
typeNoHelper type (default: box)
sizeNoSize for AxesHelper/GridHelper/LightHelpers (default: 1)
colorNoColor as hex number (default: 0x00ff00)
directionNo[x, y, z] direction for ArrowHelper/PlaneHelper
originNo[x, y, z] origin for ArrowHelper
lengthNoArrow length (ArrowHelper, default: 1)
divisionsNoGrid divisions (GridHelper, default: 10)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare idempotentHint=true and destructiveHint=false. The description adds that page reload resets and no code changes are needed, which aligns with idempotency and non-destructiveness, providing useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: two sentences plus a list of types. Every sentence adds value, and the most important info (purpose and types) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description covers the essential context: it adds a helper, it's temporary, and no code changes are needed. For a simple add operation, this is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description lists the types but does not add new meaning beyond the schema's enum descriptions. No additional parameter info is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool adds a visual debug helper to a scene object, lists all supported types, and notes it's for debug only. It differentiates from siblings like 'remove_helper' and 'highlight_object'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Debug only' but does not provide explicit guidance on when to use this tool versus alternatives, such as 'highlight_object' or 'scene_tree'. No exclusions or when-not-to-use info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

animation_detailsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, confirming safe read operation. The description adds the specific data fields listed, but does not provide additional behavioral context (e.g., performance, state changes). Given annotations, this is adequate but not exemplary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no unnecessary words. It efficiently conveys the tool's purpose and data scope, earning a top score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with no parameters, the description fully specifies what is listed (mixers, actions, clips, weights, playback state). No output schema is needed, and the annotation coverage complements the description. The tool's functionality is completely described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema description coverage is 100% (trivially). Baseline score of 3 is appropriate as the description adds no parameter-specific meaning, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('List') and clearly identifies the resource ('AnimationMixers, their actions, clips, weights, and playback state'). It distinguishes from siblings by focusing solely on animation playback details, as opposed to other inspection tools like 'object_details' or mutation tools like 'set_animation'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives is provided. However, its purpose is straightforward and distinct from sibling tools (e.g., 'set_animation' for modifications). A score of 3 reflects the minimum viable clarity, though explicit when-to-use could enhance it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

annotated_screenshotA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoWidth in pixels
heightNoHeight in pixels

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, covering safety. The description adds that the screenshot includes labels and tags, but does not disclose any additional behavioral traits such as performance impact or image format. With annotations doing the heavy lifting, the description adds moderate value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, each providing essential information: what the tool does and its primary use case. No extraneous text, front-loaded with the main action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description should clarify what the tool returns (e.g., image data, URL). It mentions 'Screenshot with labeled object names overlaid' but lacks details like format or how the result is delivered. For a low-complexity tool, this is adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters (width, height) are clearly described as pixel dimensions. The description does not add any additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool produces a screenshot with labeled object names overlaid at their screen positions, listing specific tags ([M]esh, [L]ight, [G]roup, [C]amera). This distinguishes it from sibling tools like take_screenshot, which likely does not include labels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by stating it is 'Great for AI to understand scene layout visually,' implying use when scene understanding is needed. However, it does not explicitly mention when not to use it or suggest alternatives, so guidance is slightly incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bounding_boxesA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoTarget object name (omit for all meshes)
uuidNoTarget object UUID
enabledNotrue=show (default), false=remove all
clearNoRemove all bounding boxes
colorNoBox color as hex (default: 0x00ff00)
recursiveNoInclude children of target
onlyVisibleNoOnly visible objects (default: true)
limitNoMax boxes to add (default: 50)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotent behavior and no destructiveness. The description adds runtime-only and debug-only constraints, and notes that reloads reset changes, providing context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no waste; every word adds value. The description is front-loaded with the core action and immediately follows with key constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a debug tool with 8 optional parameters and no output schema, the description sufficiently covers purpose and usage constraints. It lacks details on return behavior, but that is acceptable given the context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all 8 parameters with full descriptions (100% coverage). The description adds no additional semantic detail beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'show/hide', the resource 'axis-aligned bounding boxes for scene objects', and the purpose 'debugging frustum culling and object bounds'. It distinguishes from sibling tools by specifying a unique functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for debugging with 'Debug only — page reload will reset. No code changes needed.' It provides clear context but does not explicitly mention when not to use alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bridge_statusA
Read-onlyIdempotent

Check bridge connection and proxy status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, non-destructive, and idempotent. The description adds the specific resources checked ('bridge connection', 'proxy status') but does not disclose additional behaviors such as output format, error conditions, or performance implications. With strong annotations, the description contributes minimally beyond clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence that immediately states the action and resources. It wastes no words and is optimally front-loaded for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description lacks information about what the tool returns (e.g., a boolean status, text, or numeric values). While the tool is simple, the agent would benefit from knowing the format of the result. Annotations cover safety, but output details are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and schema coverage is 100% (trivially). The description does not need to explain parameters. Baseline for 0 parameters is 4, and no additional semantic value is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Check bridge connection and proxy status' uses a specific verb ('check') and identifies two distinct resources ('bridge connection', 'proxy status'). Among sibling tools, none mention 'bridge' or 'proxy', so it clearly distinguishes its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. An agent must infer its use from the name and context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

camera_detailsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint true and idempotentHint true; description adds value by listing the exact properties returned (type, position, FOV, near/far, aspect).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, no extraneous words; every word carries meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema but description lists five key properties, providing sufficient context for a simple getter tool without need for further detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters defined in schema, so there's nothing to add; baseline 4 per rules for 0-param tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a verb ('Get') and resource ('active camera properties') and lists specific properties, clearly distinguishing it from sibling mutation tools like set_camera.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage as a read-only retrieval tool, but no explicit guidance on when to use vs alternatives or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

click_inspectA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutNoMax wait in seconds (default: 15, max: 60)

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds valuable behavioral context beyond annotations: cursor change, mode activation, and return on click. Annotations already indicate read-only and idempotent, so description reinforces these traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: two sentences front-load the main purpose, then explain behavior. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate but lacks detail on what 'clicked object details' includes, how to exit the mode, and timeout behavior. Given no output schema, more specifics on return value would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter (timeout), so baseline 3. Description does not add further parameter context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it enables click-to-inspect mode and describes the UI change and result. While it distinguishes from siblings by emphasizing interactivity, it could explicitly differentiate from raycast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use when user input is desired for object selection, but lacks explicit when-to-use or when-not-to-use guidance and does not mention alternatives like raycast.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

console_captureA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoClear the capture buffer
levelNoFilter by level
limitNoMax messages to return (default: 50)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds that it returns the last N messages, which is consistent. No additional behavioral details (e.g., effect of clear parameter) are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two short sentences with no extra words. It front-loads the purpose and immediately follows with the use case.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple capture tool with a complete input schema and no output schema, the description provides sufficient context: what it does and when to use it. It could mention the output format (e.g., list of messages with level and text) but is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not elaborate on parameters beyond implying the limit via 'last N messages,' but the schema already defines clear, level, and limit clearly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it captures browser console output (log/warn/error) and returns the last N messages. It is distinct from sibling tools, none of which capture console output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says to call it 'to check for runtime errors and warnings,' providing a clear use case. However, it does not mention when not to use it or explicitly compare to alternatives like run_js.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dispose_checkA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable context about scanning for orphaned resources and hidden objects, enhancing transparency without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and scope. No unnecessary words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description tells what the tool finds but does not explain the output format (e.g., list of items, severity levels). Without an output schema, this missing detail reduces completeness for an agent deciding whether to invoke.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (schema coverage 100%). With zero params, baseline is 4, and the description does not need to add param info. No further meaning required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Find potential memory leaks'. It specifies the types of leaks (orphaned geometries/textures, hidden objects) making it distinct from other tools like memory_stats or object_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for detecting memory leaks but does not provide explicit guidance on when to use versus alternatives like memory_stats or object_details. No exclusions or preconditions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

env_map_detailsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds specific subjects inspected but no additional behavioral traits (e.g., permissions, side effects). It provides useful context beyond annotations but does not significantly expand behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no waste, immediately front-loaded with purpose. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description covers the inspection scope adequately. Annotations provide safety context. Could optionally describe return structure, but not essential given simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is trivially 100%. Baseline for 0 params is 4. Description adds meaning by specifying what is inspected, but no parameter details are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states purpose: inspect environment maps, listing specific components (scene.environment, scene.background, per-material envMap, IBL). This is a specific verb-resource pair distinct from all sibling tools, none of which cover env maps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While no explicit when-to-use or when-not-to-use is stated, the description and name clearly indicate its domain. Among siblings, no other tool inspects env maps, so usage context is implied. Explicit alternatives or exclusions would improve clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_objectsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoObject type: Mesh, Group, InstancedMesh, Light, etc.
materialNoMaterial name or type to filter by
visibleNoFilter by visibility
namePatternNoRegex pattern to match object names
propertyNoCustom property name to check on the object
valueNoExpected value for the custom property
hasGeometryNoFilter objects with/without geometry
minChildrenNoMinimum number of children
limitNoMax results (default: 50, max: 200)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, non-destructive, idempotent. The description adds that it returns matching objects with details, which is consistent. No contradictions or extra behavioral context needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence covering all key aspects: search criteria and output. No redundant or missing words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, no output schema, and many siblings, the description is adequate but lacks clarity on return format details ('with details' is vague). Not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond what the schema provides; it merely summarizes the filter criteria.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches scene objects by various filters (type, material, etc.) and returns details. This distinguishes it from siblings like object_details (specific object) or scene_tree (full hierarchy).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs alternatives such as object_details or scene_tree. The implied usage is for filtering, but no when-not-to or comparison provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fog_detailsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint false, and idempotentHint true. The description adds specificity about the returned data (type, color, near/far or density), which goes beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with essential information. Every word serves a purpose with no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description partially explains return values but lacks detailed types (e.g., color format). However, for a simple tool with strong annotations, it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so baseline is 4. Description does not need to add parameter info, and it appropriately focuses on return values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' and clearly identifies the resource 'scene fog settings'. It further specifies the returned fields and their types, distinguishing it from sibling tools like 'set_fog'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving fog settings without explicit exclusions. Given it's a read-only inspection tool and no similar getter exists, context is clear but lacks formal when/towhen-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geometry_detailsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoObject name (owning mesh)
uuidNoObject UUID (owning mesh)

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds specific details about what geometry aspects are inspected, providing good behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the purpose and lists key attributes. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Missing output schema means the description should hint at return format. It lists what is inspected but not the structure of the result. Adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and parameter descriptions are provided. The tool description does not add any additional meaning beyond what is in the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Inspect geometry' and lists specific aspects: vertices, attributes, indices, bounding box, morph attributes. This sets it apart from sibling inspection tools like object_details or material_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. For example, it doesn't differentiate from object_details which might also return geometry information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gltf_to_r3fA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesAbsolute or relative path to the .glb or .gltf file
typescriptNoGenerate TypeScript (default: true)
preloadNoAdd useGLTF.preload() call (default: true)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description 'Convert' is consistent with these but adds no additional behavioral context (e.g., where the component is generated, whether it overwrites files). It neither contradicts nor significantly extends the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately conveys the tool's purpose. No unnecessary words or details; front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (3 well-documented parameters, no output schema), the description is nearly complete. It could mention that the tool generates a new file, but the analogy 'like gltfjsx' compensates. The annotations cover safety and idempotency, so the description serves its role adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is already documented. The description ties parameters to the overall purpose ('ready-to-use React Three Fiber component') but adds no new semantic detail beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Convert), the resource (GLTF/GLB file), and the outcome (ready-to-use React Three Fiber component). It also includes a well-known analogy (like gltfjsx), making it highly distinguishable from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when a React Three Fiber component is needed) but does not explicitly state when not to use or mention alternative tools. Given it is a single-purpose tool, the lack of exclusions is acceptable but not ideal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

highlight_objectA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoObject name
uuidNoObject UUID
modeNoHighlight mode (default: wireframe)
enabledNoEnable/disable highlight (default: true)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds transparency beyond annotations: states runtime-only, non-persistent, resets on reload, and no code changes needed. This aligns with idempotentHint and provides practical behavior context for an AI agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no redundancy, front-loaded with key information. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 optional parameters and no output schema, description covers purpose, behavior, and temporal scope. Could mention default mode handling, but sufficiently complete for a lightweight debugging tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 4 parameters with descriptions (100% coverage). Description does not add extra parameter meaning, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states specific verb 'Highlight' with resource 'object for debugging' and clarifies two modes (wireframe or visibility toggle). It clearly differentiates from sibling tools like toggle_wireframe by focusing on specific object selection and including visibility mode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Debug only' and 'page reload will reset', guiding use to temporary visual inspection. Lacks explicit when-not-to-use or alternative tools, but context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

instanced_mesh_detailsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoInstancedMesh name
uuidNoInstancedMesh UUID
sampleCountNoNumber of instances to sample (default: 5, max: 20)
startIndexNoFirst instance index to sample (default: 0)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with annotations (readOnlyHint, destructiveHint, idempotentHint) by stating 'Inspect'. It goes beyond annotations by listing the specific data retrieved (count, transforms, etc.), ensuring the agent knows exactly what to expect. No behavioral contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and scope. Every word adds value, with no wasted space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers the tool's purpose and the data it returns. Given high schema coverage and no output schema, the description is sufficiently complete for an inspection tool. It could mention that results are returned, but that is implied by 'Inspect'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions for all 4 parameters (name, uuid, sampleCount, startIndex). The description does not add significant extra meaning beyond what the schema already provides, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Inspect' and specifies the resource 'InstancedMesh', then lists the details it provides (count, max instances, geometry, sample transforms, custom attributes, instance colors). This clearly distinguishes it from sibling tools that modify (set_instanced_mesh) or inspect other resources (geometry_details, material_details).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states it is for inspection, which contrasts with sibling tools that modify (set_instanced_mesh). However, it does not provide explicit when-not-to-use guidance or direct alternatives. The context is clear enough given the sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layer_detailsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by specifying what the tool reveals (camera layer mask and non-default layer objects), which goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that communicates the core functionality without extraneous words. It is front-loaded with the verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, parameterless read-only tool, the description covers the key information. It could hint at the output format (e.g., list of objects) but remains sufficient given no output schema and the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no parameters, and schema description coverage is 100%. The description does not need to explain parameters; a baseline of 4 is appropriate as it adds no confusion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'show' and clearly identifies the resource: camera layer mask and objects with non-default layers. It distinguishes from siblings like set_layers (which modifies) and other detail tools, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like set_layers or camera_details. The description implies usage for inspection but lacks when-not-to-use advice or explicit comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

material_detailsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoMaterial name
uuidNoMaterial UUID

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds the list of returned properties but does not disclose additional behavioral aspects beyond what annotations provide. It neither contradicts nor significantly extends the annotation information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence with a colon-separated list, efficiently conveying the tool's purpose. Every word adds value, and the structure front-loads the key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity, lack of output schema, and no nested objects, the description reasonably covers the return values by listing key properties. Minor omission: no mention that at least one of name or uuid should be provided, but this is inferable from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptive parameter names and schema descriptions. The description does not add further semantics beyond what the schema provides, achieving baseline adequacy. No parameter elaboration is necessary.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves full material properties and lists specific attributes (color, maps, uniforms, defines). It is distinct from sibling tools like material_list (list only) and set_material_property (modification).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use (get detailed properties of a material) but does not explicitly state when not to use or mention alternatives. The context of sibling tools provides some guidance, but the description itself lacks direct usage boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

material_listA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent; description adds specific fields returned. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, front-loaded sentence with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and rich annotations, description fully covers the tool's functionality and output fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters; schema coverage 100% with empty object. Baseline score of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and resource 'materials', specifies returned fields (type, color, transparency), and distinguishes from sibling tool 'material_details'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use versus alternatives, but the simplicity of the tool makes usage context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_statsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by specifying the exact memory categories analyzed, providing behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with key action ('Detailed GPU memory analysis'), no redundant words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and sufficient annotations (readOnly, idempotent), the description completely covers the tool's purpose and scope. No additional information needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist; baseline is 4 per rules. The description does not need to cover parameter semantics as there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states 'Detailed GPU memory analysis' and lists specific components (geometry buffers, texture VRAM, instance data, top textures by size), clearly distinguishing it from sibling tools like texture_list or geometry_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. However, as a read-only diagnostic tool, its purpose is self-evident. Implied usage for memory profiling, but lacks exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

morph_targetsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description's claim of listing information is consistent. The description adds context about the data returned (target names and influences) but no further behavioral traits like ordering or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that immediately conveys the purpose and output. It is concise and well-structured with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and annotations cover safety, the description adequately explains what the tool lists. However, without an output schema, the agent is missing the exact structure of the returned data, though for a simple list tool this is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so schema coverage is trivially 100%. The description does not need to add parameter information, meeting the baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'list' and the resource 'all meshes with morph targets', specifying the returned data (target names and influence values). This distinguishes it from sibling tools like set_morph_target (which sets values) or other list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for inspection of morph target states, but does not explicitly state when to use this tool over alternatives or mention any prerequisites. Given the tool is read-only with no parameters, usage is straightforward but guidance is minimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

object_detailsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoObject name (first match)
uuidNoObject UUID
pathNoDot path: "Scene.MyGroup.MyMesh"

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and idempotentHint=true, which align with the description's 'Get' verb. The description does not add further behavioral context (e.g., whether it retrieves all properties, or if it can be called multiple times without side effects). Since annotations cover the main safety traits, the description is adequate but not enhanced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence (12 words) that conveys the essential purpose. Every word is functional, with no redundancy or filler. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward read-only tool with no required parameters, the description is nearly complete. It specifies the three identification methods and the action. The lack of output schema description is acceptable since the return is likely standard object details. The description is sufficient for an AI agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents the three parameters (name, uuid, path). The description summarizes them ('by name, uuid, or path') but does not add new meaning or clarify relationships (e.g., priority when multiple provided). With high coverage, baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool retrieves detailed information about a specific object using name, uuid, or path. It uses a specific verb ('Get') and resource ('detailed info about a specific object'), effectively distinguishing it from sibling tools like 'find_objects' (which only finds objects) or other detail tools (e.g., 'material_details').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (when you have an object identifier and need its details) but provides no explicit guidance on when not to use it or how it compares to alternatives. Given the large set of siblings, the lack of differentiation criteria reduces clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

overlay_selectedA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with annotations (readOnlyHint=true) by stating it 'Get comprehensive details'. It adds behavioral context by requiring prior user selection and listing the returned data. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences: purpose, return details, and prerequisite. It is front-loaded and every sentence is informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool, the description adequately covers purpose, return scope, and a necessary prerequisite. It is complete given the low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters. The description does not need to add meaning beyond the schema, and the baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves comprehensive details of the object selected in the overlay. It specifies what is returned (material, geometry, transforms, etc.) and the context (overlay selection), distinguishing it from sibling tools like object_details or material_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear prerequisite: the user must first select an object in the overlay by clicking. However, it does not explicitly specify when to use this tool over alternatives such as object_details or material_details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

perf_monitorA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
durationNoRecording duration in seconds (default: 3, max: 30)
includeFrameTimesNoInclude raw frame times array (default: false, saves tokens)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds valuable context by detailing return metrics (avg/min/max, percentiles, spike and jank counts), which goes beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded with the action and resource, and includes essential output details. Every word earns its place with zero redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description adequately explains return values. With 2 optional params and clear annotations, the description covers the tool's purpose and output. Minor improvement could be adding default duration explicitly, but schema already includes default in description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters having clear descriptions (duration in seconds with range, includeFrameTimes with token saving benefit). The description does not add further semantic information beyond the schema, meeting baseline expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool records FPS and frame times for N seconds, and specifies the returned metrics (avg/min/max FPS, percentiles, spike and jank counts). This specific verb+resource combination distinguishes it from sibling tools like performance_snapshot or memory_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for performance monitoring during a specified duration but provides no explicit guidance on when to use this tool versus alternatives (e.g., performance_snapshot for a quick snapshot). No exclusions or conditions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

performance_snapshotA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint, covering safety and idempotency. The description adds no extra behavioral context beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of 11 words, efficiently conveys the tool's purpose and scope without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a zero-parameter, read-only tool. Lists returned metrics but lacks detail on format or aggregation. No output schema, so the description partially compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Baseline 4 for zero parameters. The description lists the metrics returned (draw calls, triangles, etc.), adding value beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves detailed performance analysis including specific metrics like draw calls, triangles, and object counts. This distinguishes it from siblings like 'perf_monitor' which may focus on live updates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'perf_monitor' for continuous monitoring or 'memory_stats' for memory specifics. The description lacks usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

postprocessing_listA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds the scope (EffectComposer passes) but lacks details like ordering or whether the list is cached. With annotations covering safety, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with verb, clear and to the point. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters, the description is mostly complete. It lists example contents but does not describe the output format. Since no output schema exists, a bit more detail on return values would be helpful, but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. According to guidelines, 0 parameters yields a baseline of 4. The description adds no parameter info, which is fine.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists post-processing passes from EffectComposer, with examples (render passes, shader passes, effects like bloom, SSAO). This distinguishes it from sibling tools like shader_list or texture_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose is straightforward, but the description does not explicitly state when to use it versus alternatives. However, the mention of specific passes implies the context, and for a simple list tool, this is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

raycastA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesNormalized device X coordinate (-1 to 1, 0 = center)
yYesNormalized device Y coordinate (-1 to 1, 0 = center)
maxHitsNoMaximum hits to return (default: 10)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that it returns hit objects but does not elaborate on edge cases or behavior beyond the schema, which already documents the input coordinates. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 12 words, front-loading the core purpose. Every word is necessary and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description is largely complete. It explains the input coordinate system and the action. The only minor gap is the lack of detail about the return format, but this is partially mitigated by the phrase 'hit objects' and the presence of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all three parameters (x, y, maxHits). The description does not add any meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('cast') and resource ('ray') and describes the result ('return hit objects'). It is distinct from sibling tools like 'click_inspect' or 'scene_tree' which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the tool is for hit testing via screen coordinates, providing context for when to use it. However, it does not explicitly state when not to use it or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_helperA
Idempotent

Remove a previously added debug helper

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

ParametersJSON Schema
NameRequiredDescriptionDefault
helperIdYesHelper ID returned by add_helper

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark the tool as idempotent but not destructive. The description adds value by noting that page reload resets the state and that no code changes are needed, which clarifies the transient nature of the operation and its development context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two clear sentences. Every word adds value, and the critical constraints (debug only, reset on reload, no code changes) are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description provides necessary context about its temporary nature and development use. It does not describe return values, but for a removal action with no output schema, this is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'helperId' is described in the schema as 'Helper ID returned by add_helper', which is clear and sufficient. The description reinforces this by saying 'previously added', ensuring the agent understands the parameter's origin.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Remove a previously added debug helper'. The verb 'Remove' combined with the resource 'debug helper' provides a specific action. The sibling add_helper confirms the inverse operation, aiding differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly guides usage by noting 'Debug only — page reload will reset', indicating this is for development and the effect is transient. However, it does not explicitly state when to use or not use this tool versus alternatives like dispose_check or remove_helper is obvious given add_helper as sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

renderer_infoA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint false, idempotentHint true. The description adds specific stat categories, providing useful behavioral context beyond annotations. However, it does not mention whether stats are live or if any prerequisites exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: a single sentence that is front-loaded with the verb and resource. Every word adds value, no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and low complexity, the description sufficiently conveys the output scope (draw calls, triangles, memory, capabilities). However, no output schema exists, and the description could list more details (e.g., whether it returns absolute or delta values). Still, it is adequate for a simple retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (0 params), so baseline is 4. The description does not add parameter-level information because none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'renderer stats', with specific examples (draw calls, triangles, memory, capabilities). It is unambiguous and distinguishes from sibling tools like 'memory_stats' or 'perf_monitor' by focusing on the overall renderer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., memory_stats, performance_snapshot). The description implies it is for general renderer stats but does not specify contexts or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

renderer_settingsB
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds a list of retrieved fields, providing some behavioral context but no additional details about side effects, caching, or performance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with 8 words, front-loading the action and resource. Every element is purposeful and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description could be more explicit about the return format (e.g., 'returns an object with these fields'). It lists fields but does not confirm they are exhaustive or describe the structure. Sibling tools might retrieve similar information but no differentiation is made.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so baseline is 4. The description adds value by listing the fields returned, which is helpful since there is no output schema to describe the response structure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves renderer configuration and lists specific fields (toneMapping, exposure, etc.). The verb 'Get' is explicit and the resource is identified. However, it does not differentiate from similar siblings like 'renderer_info', which might also retrieve renderer-related data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description only states what it does, without mentioning context, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_jsA
Destructive

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 ' 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesJavaScript code. Available vars: scene, renderer, camera, gl. Use return for results.

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses runtime-only behavior, warns about mutations, and gives shader patching steps. Adds significant context beyond annotations (destructiveHint=true) by explaining when to ask user and that changes are lost on reload.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is long due to detailed shader patching recipe, which could be moved to documentation. However, front-loaded with core purpose and usage guidelines. Some redundancy (e.g., 'Runtime only' appears twice). Could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers execution environment, return value, mutability warning, and reset behavior. No output schema but return value explained. Shader recipe adds depth. Slightly less complete in explaining error handling or side effects beyond scene mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameter description. Description adds available variables and usage hint but does not substantially extend beyond schema's 'JavaScript code. Available vars: scene, renderer, camera, gl. Use return for results.' Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it executes arbitrary JavaScript with access to scene, renderer, camera, and returns the result. Distinguishes from sibling tools that are more specific (e.g., set_uniform, material_details).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: ask user before mutating scene state, debug only, reset on reload. Includes detailed shader patching recipe. Lacks direct comparison to alternatives but context implies unique role.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scene_backgroundB
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it is safe. The description adds context about the specific properties inspected, but does not disclose any additional behavioral traits beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that lists key elements efficiently. It is concise, but could be structured more clearly with separate points for each item.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains what the tool inspects, but does not describe the return format or output structure. With no output schema, the agent would benefit from knowing what shape the response takes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is 100%. Description adds no parameter-level details, but the baseline for zero parameters is 4, which is appropriate as the tool does not require further guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Inspect' and lists resources (background, environment map, color management, blurriness/intensity), making the tool's purpose clear. However, it does not distinguish from sibling tools like 'env_map_details' which also inspects environment maps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description lacks explicit context for usage, such as when not to use or which sibling to prefer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scene_diffA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNosnapshot=save state, diff=compare with saved, auto=snapshot if none saved, diff if exists (default: auto)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the snapshot/diff workflow and what changes are detected (added/removed/modified objects, transforms, materials, lights). Annotations already indicate read-only and non-destructive, but description adds functional context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that front-load the purpose and efficiently convey the tool's behavior and parameter role.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with one parameter and no output schema. Description covers the core use case and behavioral nuance adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema fully describes the 'action' parameter with enum values and descriptions. Description adds process context but not additional parameter-level meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'compare' and resource 'scene state over time'. Distinguishes from siblings by describing a two-step process unique among the listed tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the required sequence (snapshot then diff) and the auto behavior. No explicit mention of when not to use, but the context of siblings implies uniqueness.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scene_exportA
Read-only

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoObject name (omit for entire scene)
uuidNoObject UUID
binaryNoGLB binary (default: true) or glTF JSON

TDQS

A3.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description claims 'Export' and 'saves' (write operations) but annotations set readOnlyHint=true, contradicting the actual behavior. No details on error handling or side effects beyond prerequisite.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no redundant words. Every sentence adds essential information: action, prerequisite, output location.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description covers what the tool does, what it requires, and where output is saved. Lacks details on success/error feedback, but adequate for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters with descriptions. Description adds value by clarifying that omitting 'name' exports the entire scene, and 'binary' defaults to true. Provides usage context beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states 'Export scene or specific object as GLB', clearly identifying the action (export), resource (scene/object), and format (GLB). Distinguishes from sibling 'take_screenshot' which is image-based.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions prerequisite 'Requires GLTFExporter in your app' and output location 'Saves to screenshots/ folder'. Lacks explicit when-to-use or when-not-to-use compared to siblings, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scene_treeA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoMax tree depth (default: 3)
typesNoFilter by type: Mesh, Light, Group, etc.
maxChildrenNoMax children per node (default: 15 compact, 100 JSON)
compactNoCompact text tree (default: true). Set false for full JSON with positions/geometry.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide safety traits. Description adds behavioral nuance about default output format (compact text) and JSON option, plus token-saving hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences. First states purpose, second clarifies output options. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description covers return format. Parameters fully documented in schema. Adequate for a low-complexity list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

100% schema coverage; baseline 3. Description adds value by explaining compact default behavior and token implication, but doesn't enrich other params beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'List all objects in the Three.js scene tree'. Distinctly separates from siblings like 'object_details' (single object).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states compact vs JSON modes and token-saving rationale. Lacks when-not-to-use or specific sibling alternatives, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_animationA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
mixerIndexNoMixer index (default: 0)
timeScaleNoMixer global time scale
timeNoMixer current time
clipNameNoTarget action by clip name
actionWeightNoAction weight (0-1)
actionTimeScaleNoAction time scale
actionPausedNoPause/unpause action
playNoPlay the action
stopNoStop the action

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond the annotations: it specifies runtime-only preview lost on page reload, aligning with destructiveHint=true and idempotentHint=true. It also mandates user permission, which is a critical behavioral constraint not captured in annotations. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the purpose, followed by important caveats. It is efficient and easy to parse. A slight improvement could be combining repetitive 'runtime' mentions, but overall it is concise and structured well.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 9 parameters and no output schema, the description adequately covers the runtime scope, persistence behavior, and user permission requirement. It does not explain error cases or interaction between parameters, but for a testing tool, it provides sufficient context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description only lists parameter categories (mixer timeScale, action play/stop/pause/weight) but does not add new semantics beyond the schema's individual parameter descriptions. The tool's parameters are well-documented in the schema, so the description offers marginal additional value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool controls animation parameters like mixer timeScale and action play/stop/pause/weight. It identifies the resource (animation) and verb (control). However, it does not explicitly differentiate from the sibling tool 'animation_details', which is for viewing animation info. The purpose is clear but lacks explicit sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the tool is 'Runtime only — for testing' and requires the agent to ask the user whether to apply changes only at runtime or also update source code. This provides clear guidance on when to use the tool and the needed user permission, effectively distinguishing use from persistent alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_cameraA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
positionNo[x, y, z]
rotationNo[x, y, z] in radians
fovNoField of view (PerspectiveCamera)
nearNoNear clipping plane
farNoFar clipping plane
zoomNoZoom factor
aspectNoAspect ratio (PerspectiveCamera)
leftNoLeft plane (OrthographicCamera)
rightNoRight plane (OrthographicCamera)
topNoTop plane (OrthographicCamera)
bottomNoBottom plane (OrthographicCamera)

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Emphasizes that changes are runtime-only and lost on reload, which adds behavioral context beyond the annotations (destructiveHint, idempotentHint). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise statements: one for purpose, one for usage requirement. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers essential behavioral context (transient changes, user permission) and purpose, adequate for a parameter-rich tool with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by grouping parameters (e.g., fov/aspect for PerspectiveCamera, left/right/top/bottom for OrthographicCamera) not present in the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Modify camera' with specific parameters (position, rotation, FOV, etc.) and distinguishes from sibling tools like camera_details (read) and set_object_transform (for objects).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to ask the user whether a runtime preview or persistent code change is desired, providing clear when-to-use guidance and differentiation from potential alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_dev_portA
Idempotent

Change the local dev server port the proxy forwards to

ParametersJSON Schema
NameRequiredDescriptionDefault
portYesThe dev server port (e.g. 3000, 5173, 8080)

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotentHint=true and destructiveHint=false. Description adds context (local dev server, proxy forwarding) but no additional behavioral traits like side effects or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, front-loaded with action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple one-param tool with no output schema, description covers purpose and parameter semantics adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with a clear description. The tool description reinforces context (local dev server, proxy) beyond schema, adding value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'change' and resource 'local dev server port', clearly distinguishing from sibling set_dev_url which likely sets a URL.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage from name and description; context of local dev server port vs. URL is clear, but no explicit contrast with set_dev_url or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_dev_urlA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL of the remote Three.js app (e.g. https://my-app.vercel.app, http://staging.example.com:3000)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals important behavioral traits beyond annotations: it clarifies that source code changes are impossible in remote mode, only runtime/visual modifications. This aligns with idempotentHint and openWorldHint. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. The first sentence front-loads the purpose, and the second adds critical limitation. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is complete enough. It covers purpose and behavioral constraints. Minor improvement could be mentioning that it switches from local to remote mode, but not necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds value by providing examples of valid URLs and clarifying that it expects a full URL, enhancing the agent's understanding beyond the schema definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Connect' and the resource 'remote Three.js app', specifying the action as connecting via URL for inspection and visual debugging. It distinguishes from siblings like set_dev_port (which likely sets a local port) by explicitly mentioning remote mode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear context for usage (remote Three.js app inspection) and a key limitation ('Source code changes are NOT possible in remote mode'). While it doesn't explicitly state when not to use it or name alternative tools, the context is sufficient for an agent to decide when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_fogA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoFog color (#RRGGBB)
nearNoFog near distance (Fog type)
farNoFog far distance (Fog type)
densityNoFog density (FogExp2 type)
backgroundNoScene background color (#RRGGBB)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide destructiveHint=true and idempotentHint=true. Description adds that changes are 'runtime-only preview (lost on reload)' but also mentions persistent code change option, creating slight ambiguity. This partially extends transparency but lacks clarity on the tool's actual persistence behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is two sentences but somewhat repetitive ('runtime preview' mentioned twice). Still front-loaded and to the point, earning a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and annotations providing destructive/idempotent hints, the description covers key aspects: what it modifies, parameter listing, user consent requirement, and ephemeral nature. Lacks details on error handling or side effects but is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and description lists the same parameters without adding extra meaning beyond the schema descriptions. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states 'Modify scene fog' and lists specific parameters (color, near/far, density, background). This clearly distinguishes it from sibling 'fog_details' which retrieves fog information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides strong guidance: 'ASK the user first: runtime preview or persistent code change?' and emphasizes user consent. However, it does not explicitly mention when not to use this tool or alternative approaches for persistent changes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_instanced_meshA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoInstancedMesh name
uuidNoInstancedMesh UUID
countNoNumber of visible instances
visibleNoShow/hide entire mesh
frustumCulledNoEnable/disable frustum culling

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds important context beyond annotations: changes are runtime-only and lost on reload. Annotations already indicate destructiveHint=true, but description clarifies it's non-persistent, which slightly contradicts (see contradiction). Still, useful transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with main action and key warning about runtime-only. Slightly repetitive with two sentences on asking user, but still short and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains purpose, temporary nature, and prerequisite (ask user). Missing details on edge cases (e.g., count exceeding instances), but schema covers parameters and context signals indicate high coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all parameters described. The description lists a few properties but does not add extra meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Modify) and resource (InstancedMesh properties: count, visibility, frustumCulled). It distinguishes from siblings by specifying the runtime-only nature, which is unique among set_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to ask the user first about runtime preview vs. persistent code change, repeated for emphasis. Provides clear guidance on when to use and what to clarify before proceeding.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_layersA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoObject name
uuidNoObject UUID
targetNo"camera" to target the camera
layerNoLayer number (0-31) to enable/disable
enabledNoEnable or disable the layer
maskNoSet layer mask directly (bitmask)

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (destructiveHint, idempotentHint), the description discloses that the operation is runtime-only and lost on reload, which is critical for decision-making. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is mostly concise, using two sentences effectively. However, there is some repetition ('runtime preview — lost on reload' appears twice) which slightly reduces efficiency. Still, it's front-loaded and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters and no output schema, the description covers the essential behavioral context (runtime-only, need to ask). It doesn't explain the meaning of layers or the effect on the scene, but sibling tools like layer_details can fill that gap. Adequate but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description doesn't need to add parameter semantics. It mentions 'on an object or camera' which maps to the target parameter but adds no new details beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets layers on objects or cameras and highlights the runtime-only nature, differentiating it from read tools like layer_details. However, it doesn't explicitly distinguish between this and other set tools like set_material_property, so it's clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs the agent to ask the user first whether they want a runtime preview or persistent code change, providing clear when-to-use and when-not-to-use guidance. This is a strong, actionable directive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_lightA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoLight name
uuidNoLight UUID
colorNoLight color (#RRGGBB)
intensityNoLight intensity
positionNo[x, y, z]
castShadowNoEnable/disable shadows
groundColorNoGround color for HemisphereLight (#RRGGBB)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint and idempotentHint true. The description adds context that changes are runtime-only preview lost on reload, which is critical behavioral info beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose and uses two sentences, but the warning is repeated, slightly reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 7 parameters, annotations, and no output schema, the description provides key context about runtime preview and user consultation, but doesn't cover error handling or existence prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 7 parameters. The description adds no extra meaning beyond what the schema provides, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Modify light properties' with a specific verb and resource, listing the properties (color, intensity, position, shadows) and distinguishing the tool from sibling set_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs the agent to 'ASK the user first' about runtime preview versus persistent code change, and repeats the mandate, providing clear when-to-use and prerequisite behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_material_propertyA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoMaterial name or object/mesh name that owns the material
uuidNoMaterial UUID
propertyYesProperty name: color, emissive, roughness, metalness, opacity, transparent, wireframe, visible, side, depthWrite, depthTest, alphaTest, flatShading, fog
valueNoNew value (hex string for colors, number for scalars, boolean for flags)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive and idempotent. The description adds crucial context: the effect is temporary (lost on reload), which is beyond what annotations provide. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat repetitive (two paragraphs restating the same key point about runtime preview and asking user). Could be more concise by merging them.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters with full schema descriptions and no output schema, the description adequately explains purpose and usage caveats. Missing explicit connection to sibling tools, but the limitation and user interaction are well covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters with descriptions (100% coverage). The tool description does not add significant meaning beyond the schema; it only reiterates property examples that are already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool sets a material property (color, roughness, wireframe, etc.). Differentiates from siblings by emphasizing it is runtime-only, not persistent. Verb + resource is explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to ask the user before calling whether they want a runtime preview or persistent change. Clearly sets the boundary for when to use this tool. However, does not name an alternative tool for persistent changes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_morph_targetA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoMesh name
uuidNoMesh UUID
indexNoMorph target index
targetNameNoMorph target name (from dictionary)
influenceYesInfluence value (0-1)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (destructiveHint=true), description adds critical context: changes are runtime-only and lost on reload. Also requires user consent, which is a key behavioral trait. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is somewhat repetitive, stating the runtime-only preview and the requirement to ask user twice. Could be more concise without losing meaning, but still front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description omits return value but covers the essential behavior (temporary, user must decide). It references runtime preview but doesn't mention prerequisites like mesh having morph targets. Still sufficient with sibling tools available.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 5 parameters, so description need not elaborate much. However, it does not add extra meaning beyond the schema, just reiterates the runtime nature. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Set morph target influence on a mesh', specifying the action and target. Distinguishes from sibling tools like morph_targets which likely only read targets, by emphasizing runtime-only preview and user confirmation for persistence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs the agent to ask the user first whether they want runtime preview or persistent code change, providing clear and necessary guidance for correct usage. This prevents unwanted side effects and aligns with the tool's temporary nature.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_object_transformA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoObject name
uuidNoObject UUID
positionNo[x, y, z]
rotationNo[x, y, z] in radians
scaleNo[x, y, z]
visibleNoShow/hide object

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations (destructiveHint, idempotentHint) by explicitly stating that changes are 'runtime-only preview (lost on reload)' and requiring user confirmation. This adds valuable behavioral context not captured in structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, with the purpose front-loaded. The warning about asking the user is repeated, which creates minor redundancy, but overall the content is efficient and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the crucial transient nature and user-permission requirement, but it lacks information about the return value (e.g., success indication) and error handling. For a tool with 6 optional parameters and no output schema, this is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with each parameter documented (e.g., 'Object name', '[x, y, z]'). The description only lists the categories of parameters without adding new details, so it meets the baseline but provides no extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sets 'position, rotation, scale, or visibility' of a scene object, using a specific verb and resource. It distinguishes itself from sibling 'set_*' tools by listing the exact attributes and emphasizing the runtime-only preview nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description repeatedly instructs the agent to ask the user first whether they want a runtime preview or persistent code change. This provides clear context for when to use the tool (runtime preview) and when not to, though it does not explicitly name alternative tools for persistent changes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_rendererA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
toneMappingNoTone mapping algorithm (0-7)
toneMappingExposureNoExposure level
outputColorSpaceNoOutput color space (srgb, srgb-linear)
pixelRatioNoDevice pixel ratio
sortObjectsNoSort objects before rendering
localClippingEnabledNoEnable local clipping planes
shadowMapEnabledNoEnable shadow mapping
shadowMapTypeNoShadow map type (0=Basic, 1=PCF, 2=PCFSoft, 3=VSM)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the destructiveHint and idempotentHint annotations, the description adds critical behavioral context: changes are runtime-only and lost on reload, and the agent must ask the user first. This fully discloses the tool's transient nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is mostly concise, with two clear parts. However, there is minor repetition of the warning about runtime preview and asking the user, which slightly reduces conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, full schema coverage, and annotations, the description adds the essential behavioral context (transience, user consent). It does not cover edge cases like setting multiple parameters simultaneously, but it is sufficient for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description lists a subset of parameters (toneMapping, exposure, colorSpace, shadows) but does not add significant new meaning beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Modify renderer' and lists specific properties (toneMapping, exposure, colorSpace, shadows). It distinguishes itself from sibling tools by emphasizing the runtime-only preview nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to ask the user first whether a runtime preview or persistent code change is desired, and warns about losing changes on reload. This provides clear guidance on when and how to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_shadowA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoObject/light name
uuidNoObject/light UUID
castShadowNoEnable/disable shadow casting
receiveShadowNoEnable/disable shadow receiving
biasNoShadow bias (light only, e.g. -0.0001)
normalBiasNoShadow normal bias (light only)
radiusNoShadow blur radius (light only)
blurSamplesNoShadow blur samples (light only)
mapSizeNo[width, height] shadow map resolution
cameraNearNoShadow camera near plane
cameraFarNoShadow camera far plane
cameraLeftNoShadow camera left (DirectionalLight)
cameraRightNoShadow camera right (DirectionalLight)
cameraTopNoShadow camera top (DirectionalLight)
cameraBottomNoShadow camera bottom (DirectionalLight)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (destructiveHint, idempotentHint), description adds critical behavior: changes are runtime-only and lost on reload. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, but repeats 'runtime preview lost on reload' and 'ASK user' twice, making it slightly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with many parameters and no output schema, description provides essential behavioral context (runtime-only, user permission needed) and is complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 15 parameters. Description adds no additional parameter meaning beyond what schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it modifies shadow settings and specifies runtime-only preview. However, it does not differentiate from sibling tools like 'set_light' which also affect shadows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs the agent to ask the user first about runtime preview versus persistent code change, providing clear context on when to use. No mention of alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_textureA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidNoTexture UUID
nameNoTexture name
wrapSNoWrap S mode (1000=Repeat, 1001=ClampToEdge, 1002=Mirrored)
wrapTNoWrap T mode
minFilterNoMin filter (1003=Nearest, 1006=Linear, 1008=LinearMipmapLinear)
magFilterNoMag filter (1003=Nearest, 1006=Linear)
anisotropyNoAnisotropic filtering level (1-16)
flipYNoFlip texture vertically
colorSpaceNoColor space (srgb, srgb-linear)
repeatNo[x, y] repeat
offsetNo[x, y] offset
rotationNoRotation in radians

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Clearly states that modifications are runtime-only and lost on reload, which is beyond the annotations (destructiveHint true, idempotentHint true). Adds critical behavioral context about persistence and user consent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively short but contains repetition (runtime preview mentioned twice). It is front-loaded with the key purpose and behavioral constraint, earning its sentences, though slight redundancy prevents a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 12 parameters and no output schema, the description provides essential contextual completeness by highlighting the temporary nature and the need to ask the user. It does not cover all parameter nuances but leverages the schema descriptions sufficiently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The tool description only generically lists property names ('wrap, filter, anisotropy, repeat, offset, colorSpace') without adding new semantics or usage details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool modifies texture properties with a specific list of properties. It distinguishes itself from sibling set_* tools by focusing on texture and adding the runtime preview context, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to ask the user first, differentiating between runtime preview and persistent code change. This provides clear when-to-use and when-not-to-use guidance, with implied alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_uniformA
DestructiveIdempotent

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?

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoMaterial name
uuidNoMaterial UUID
uniformYesUniform name (e.g. uHorizonColor, uOpacity)
valueNoNew value: hex string for Color, {x,y,z} for Vector3, number for float

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that changes are lost on page reload (runtime-only preview), which adds behavioral context beyond annotations (destructiveHint, readOnlyHint). No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with key info, but slightly redundant (mentions 'lost on reload' twice). Could be more concise without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains the tool's action, permanence, and prerequisite user consent. Comprehensive for a mutation tool with destructive hint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The tool description adds no further parameter-level detail; it repeats the runtime-only aspect but not per-parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it sets a shader uniform on a ShaderMaterial, specifying it's runtime-only and lost on reload. Distinguishes from siblings like set_material_property which sets general material properties.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to ask user first whether they want runtime preview or persistent code change. Provides clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shader_listA
Read-onlyIdempotent

List all compiled shader programs with their material associations

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds 'material associations' but no further behavioral traits like ordering or scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 8 words, no wasted words. Front-loaded with verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with 0 params and clear annotations. Description is adequate but could mention if the list is a snapshot or real-time. Still fairly complete for the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, schema coverage 100%. Description doesn't need to add parameter semantics, baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (list), resource (compiled shader programs), and includes detail (material associations). Distinguishes from sibling tools like material_list and shader_source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. Siblings like material_list and shader_source exist but no exclusions or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shader_sourceA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
materialNameNoMaterial name
materialUuidNoMaterial UUID

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is covered. The description adds value by specifying the exact content returned (compiled shader source and uniforms), which is beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the verb and resource. Every word contributes to understanding, with no wasted or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should clarify the return structure. It mentions 'compiled vertex/fragment shader source and uniforms' but lacks specifics on format or fields, leaving some ambiguity for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear descriptions for both parameters. The tool description does not add additional meaning beyond 'for a material', so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'compiled vertex/fragment shader source and uniforms for a material', which distinguishes it from sibling tools like shader_list and material_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. It implies use for retrieving shader source and uniforms, but lacks context on prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shadow_detailsA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint, which cover safety and idempotency. The description adds value by specifying that it inspects shadow maps and lists the type of information returned (global settings, per-light config, objects). However, it does not disclose potential side effects or limitations beyond what the annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise and front-loaded with 'Inspect shadow maps'. Every part is relevant and adds value, with no wasted words. It is appropriately sized for a zero-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description adequately covers the high-level output (global settings, per-light config, cast/receive objects). It is complete enough for a simple inspection tool, though it could be more structured about the return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so schema coverage is 100%. The description adds semantic meaning by explaining what the tool outputs, compensating for the lack of parameters. Baseline for 0 parameters is 4, and the description meets that standard.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose by specifying the verb 'Inspect' and the resource 'shadow maps', listing specific aspects like global settings, per-light shadow config, and cast/receive objects. This distinguishes it from sibling tools like light_details or material_details. However, it could be more explicit about what 'global settings' entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for inspecting shadow-related settings but provides no guidance on when to use this tool versus alternatives like object_details or set_shadow. No exclusions or specific contexts are mentioned, leaving the agent to infer its applicability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skeleton_detailsA
Read-onlyIdempotent

List all skeletons/bones from SkinnedMesh objects in the scene

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so description adds no behavioral insight beyond stating the obvious. No mention of output format or any side effects, but annotations cover safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single 8-word sentence conveys the full purpose with no filler. Efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with no parameters and good annotations, but description omits output format (e.g., list of names, bone hierarchy). Slight gap for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (schema coverage 100%), and baseline for 0 parameters is 4. Description does not need to add param info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'list' and resource 'skeletons/bones from SkinnedMesh objects', clearly distinguishing it from other detail tools like geometry_details or object_details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus siblings (e.g., object_details or geometry_details), nor any mention of prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

take_screenshotB
Read-onlyIdempotent

Capture a screenshot of the current Three.js scene

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoWidth in pixels
heightNoHeight in pixels

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint as true/false, covering safety. The description adds no further behavioral details (e.g., output format, error handling), so it meets baseline but provides no extra value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no unnecessary words. Every part earns its place, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with good annotations, the description covers basic purpose but omits important context like return format (e.g., base64 string) or behavior when no scene exists. Given optional parameters and no output schema, more completeness would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with clear descriptions for width and height. The tool description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource, 'Capture a screenshot of the current Three.js scene,' clearly stating the tool's function. However, it does not explicitly differentiate from the sibling tool 'annotated_screenshot,' which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor are there any preconditions or exclusions mentioned. The description simply states the action without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

texture_detailsB
Read-onlyIdempotent

Get detailed info about a specific texture

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoTexture name
uuidNoTexture UUID

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the description adds no new behavioral context. It correctly implies a safe read operation but does not clarify behavior when both parameters are provided or omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words, directly stating the tool's purpose. Front-loaded and appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having a simple structure, the description lacks details about the return value (e.g., fields included, format). With no output schema, this omission reduces completeness, though the annotations cover behavioral aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter having a clear description. The tool description adds no additional meaning beyond the schema, so it meets the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'detailed info about a specific texture', distinguishing it from siblings like texture_list and texture_preview. However, it does not specify what aspects of the texture are covered, which could be more precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as texture_list or texture_preview. It does not mention prerequisites or conditions, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

texture_listA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, which the description does not contradict. The description adds value by specifying the exact attributes returned (size, format, wrap, filter), providing useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is clear and to the point. Every word adds value, and it is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (read-only, no parameters, no output schema), the description sufficiently covers what the tool does and what it returns. It could optionally mention if results are sorted or limited, but it's not necessary for a list-all tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so schema coverage is trivially 100%. The description does not need to add parameter details. It mentions output attributes, which is appropriate for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all textures' and specifies the attributes returned (size, format, wrap, filter settings). This distinguishes it from sibling tools like texture_details (which focuses on a single texture) and texture_preview (preview).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a broad overview of all textures is needed, but it does not explicitly state when to use this tool versus alternatives like texture_details. No exclusion criteria or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

texture_previewA
Read-onlyIdempotent

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoTexture name
uuidNoTexture UUID
maxSizeNoMax dimension in px (default: 512)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent behavior; the description adds the output type (PNG image), which is not in annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: a single sentence that immediately states the tool's purpose and a key prerequisite. No unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with no output schema; description clarifies output format. Instructions for prerequisite tool use are helpful. Parameter relationships (e.g., precedence) are not detailed, but this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with descriptions for all three parameters. The description does not add further semantic information beyond the schema, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Preview'), resource ('texture'), and output format ('PNG image'). It distinguishes from sibling tools like texture_list by suggesting a prerequisite step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises using texture_list first to find names/UUIDs, providing clear usage context. Does not elaborate on alternatives for other tasks, but the purpose is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

toggle_overlayA
Idempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledNotrue=show, false=hide, omit=toggle

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description details that clicking objects highlights them with wireframe and that the overlay resets on reload. Consistent with annotations (idempotentHint=true) and adds useful behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is mostly concise but has slight redundancy: 'Debug only — page reload will reset' appears twice. Could be tightened into a single paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the overlay's features and interaction, and no output schema is needed for a toggle tool. It answers what the tool does and its side effects (visual overlay) sufficiently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the toggle behavior (show/hide/toggle) and the overlay contents, complementing the schema's parameter description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it 'Toggle a lightweight scene inspector overlay' and lists what it shows (FPS, draw calls, etc.), distinguishing it from sibling tools like 'overlay_selected' or 'perf_monitor' which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Specifies 'Debug only' and warns that 'page reload will reset,' indicating appropriate context. Does not explicitly list alternatives or when not to use, but the purpose is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

toggle_wireframeA
Idempotent

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoObject name (omit for whole scene)
uuidNoObject UUID
enabledNotrue=wireframe on, false=restore original, omit=toggle

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by explaining that the change is runtime-only and resets on page reload. This aligns with idempotentHint and clarifies the non-destructive nature despite readOnlyHint being false. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise, front-loaded sentences with zero waste. Every word adds value, clearly stating action, scope, and context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a simple toggle tool with no output schema. It covers purpose, usage context, behavior (temporary), and parameter scope. Could be enhanced by mentioning that it affects all materials when no object is specified, but the current text is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and all parameters have descriptions. The description ('Toggle wireframe on all materials or a specific object') summarizes the parameters but does not add new information beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool toggles wireframe on materials or a specific object, and specifies it is for runtime visual debugging. It uses a specific verb ('Toggle') and resource ('wireframe'), distinguishing it from sibling tools like 'material_list' or 'set_material_property'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context ('Runtime only — for visual debugging') and notes that the effect is temporary ('page reload will reset'). It explicitly states 'Debug only', indicating when to use, but does not discuss when not to use or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct aspect of Three.js development—scene hierarchy, geometry, materials, animations, performance, etc. Even similar tools like set_camera and set_light areclearly differentiated by their noun. Overlap is minimal (e.g., object_details vs overlay_selected serve different contexts).

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., add_helper, set_camera, scene_tree). Verbs are imperative and nouns specify the target, making the pattern predictable across the entire set.

Tool Count3/5

With 60 tools, the surface is large but still scoped to Three.js devtools. However, many tools are runtime-only previews (set_* tools) and some debug helpers could be consolidated, making the count feel heavy for the core debugging purpose.

Completeness5/5

The tool set covers almost every common debugging and modification need: inspection of all objects, materials, textures, shaders, animations, performance, screenshots, export, and even gltf-to-r3f conversion. No obvious gaps for typical Three.js development workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    28 tools for 3D and AR development — code generation, validation, model search (Sketchfab), and complete API reference. Android (Compose + Filament), iOS (SwiftUI + RealityKit), Web (Kotlin/JS + Filament.js). The only MCP server for 3D mobile development.
    1,303
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for creating and manipulating generative art with p5.js, Three.js, GLSL, Canvas2D, and SVG, featuring workspace management, parameter control, and screenshot capture.
    89
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A Three.js MCP server for designing 3D brick constructions, enabling AI or interactive placement of bricks through natural language and providing tools to manage and export scenes.
    23
    MIT

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