Skip to main content
Glama

setup_lighting

Apply lighting presets like three-point, sun, soft studio, night, or metal, replacing prior lights. Scale strength, target objects, and tint for product shots.

Instructions

Replace the studio lights with a preset. Lights are named bl_light_*; earlier ones are deleted first, so a second call never doubles them. Other lights in the scene are not touched. Presets: three_point (key, fill, rim), sun (one hard sun), soft_studio (large soft panels, even light), night (dim blue moon and a warm lamp), metal (for metal and glossy product shots: an interior HDRI that the surface reflects, a key spot and a rim spot). strength scales all of them (1 is a normal exposure). metal also replaces the world: set_world hdri='interior' at strength 0.6, hidden from the camera, so the backdrop keeps the colour it had. The answer has it under world; call set_world afterwards for another HDRI, rotation or backdrop. The other presets do not touch the world: with area lights only, metal has nothing to reflect and renders black or blown. target is a list of object names; light size and distance follow their box (default: all visible geometry). The key light stands front-right (azimuth 40) so it suits the default set_camera view. color tints the lights: '#rrggbb' or [r, g, b] (0-1). Pair it with set_world for the background.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
colorNo
presetNothree_point
targetNo
strengthNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so well: it discloses the deletion of prior bl_light_* lights and resulting idempotency ('a second call never doubles them'), that other lights are untouched, that metal alone mutates the world and other presets leave it untouched (with the render consequence), and that strength scales globally. This is unusually complete side-effect disclosure.

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?

Purpose is front-loaded and every sentence carries information, but the text is dense and there is mild redundancy around set_world ('call set_world afterwards...' and 'Pair it with set_world for the background'). Slightly more verbose than necessary, though nothing is wasted outright.

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 mutation tool with no annotations, no output schema, and 0% schema description coverage, the description fills every gap: purpose, side effects, world mutation, parameter formats, and follow-up calls. It even notes where the world result appears in the answer.

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

Parameters5/5

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

Schema coverage is 0%, so the description must compensate, and it does for all four parameters: strength (1 = normal exposure), target (object names, light size/distance follow their bounding box, default all visible geometry), color (format '#rrggbb' or [r,g,b] 0-1), and preset (each of the five enum values explained). Nothing an agent needs to pass is left undefined.

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?

States a specific verb and resource ('Replace the studio lights with a preset') and immediately scopes it against the sibling tools: lights are named bl_light_*, prior ones are deleted first, and other scene lights are untouched (distinguishing it from add_light). An agent can tell exactly what it does without opening the schema.

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?

Gives strong context for preset selection (three_point for default set_camera view, metal for glossy product shots, etc.) and explicitly instructs to call set_world afterwards for world changes. It does not name add_light or list_lights as alternatives or state when not to use it, so it stops short of full routing guidance.

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