Skip to main content
Glama
threejs-devtools-mcp

threejs-devtools-mcp

by DmitriyGolub

set_clipping

Idempotent

Set clipping planes on a renderer or material in a live Three.js scene to control visible geometry; changes are tracked and can be undone.

Instructions

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

Input Schema

NameRequiredDescriptionDefault
nameNoMaterial (target=material) name
uuidNoMaterial (target=material) UUID
planesNo
targetNoDefault: renderer
enabledNofalse removes the material's planes
clipShadowsNoMaterial
clipIntersectionNoMaterial: intersection instead of union
localClippingEnabledNoRenderer

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.0

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare non-readOnly, non-destructive, idempotent, but the description adds the crucial behavioral traits they cannot express: changes are preview-only, not persisted to source, lost on reload, tracked in pending_changes, and reversible via revert_changes. This is exactly the kind of non-structured context an agent needs.

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 tight sentences with the critical persistence warning front-loaded via the [LIVE PREVIEW] tag. No filler; each clause carries distinct 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?

For an 8-param mutation with no output schema and 88% schema coverage, the description covers the essential behavioral context (ephemeral preview, undo path). Return-value explanation is unnecessary without an output schema, so the only minor gap is that it doesn't hint at what pending_changes records.

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 88%, so the schema already documents the 8 parameters thoroughly. The description only maps 'renderer (global) or a material' to the target enum, adding marginal meaning beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

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 second sentence states a specific verb+resource — 'Change clipping planes on the renderer (global) or a material' — and identifies both target modes. It is clear what the tool does, though it does not explicitly differentiate itself from the read-only sibling clipping_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 [LIVE PREVIEW] framing and the note that changes are browser-only, lost on reload, recorded in pending_changes, and undoable with revert_changes give clear workflow context for when this tool is appropriate. It stops short of explicitly naming clipping_details as the read counterpart, so it's strong context rather than full when/when-not guidance.

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