Skip to main content
Glama
giorgiomoroder

Vectorworks MCP

vw_set_lighting_device_fields

Bulk-edit Vectorworks Spotlight lighting device fields in one undo step. Validates all selectors and field names first, so invalid input changes nothing.

Instructions

Bulk-edit Lighting Device fields in one undo step.

updates is a list of {selector, "fields": {name: value}} where selector is one of: "uuid"; "position" + "unit_number" (unit numbers repeat per position); "unit_number" alone if unique; or "channel" if unique. Example: [{"position": "1E", "unit_number": "3", "fields": {"Channel": "101", "Color": "R02"}}].

All selectors and field names are validated first; if any fail, nothing changes. Revert exactly this call with vw_revert_last. Universe / DMX Address edits are applied via UniverseAddress (Spotlight's source of truth). Returns before/after per device as re-read from Vectorworks, with not_applied listing anything Spotlight overrode.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
updatesYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare the write/non-destructive profile, and the description adds substantial behavior beyond that: validation-first all-or-nothing semantics ('if any fail, nothing changes'), single-step undoability, the UniverseAddress source-of-truth caveat, and the return shape including a not_applied list for overridden values. This is rich context that structured fields do not carry.

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?

Front-loads the core action in the first sentence, then progressively details selectors, validation, revert, and return behavior. Every sentence earns its place with no filler.

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?

Despite a 1-param tool with 0% schema coverage, the description supplies selector syntax, validation semantics, revert path, and return format. Even with an output schema present, it adds enough that an agent could invoke it correctly on the first try.

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 carry the full burden, and it does: it defines the shape of `updates` as {selector, fields}, enumerates every selector variant (uuid, position+unit_number, unique unit_number, unique channel), and gives a concrete example. This fully compensates for 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?

States a specific verb (bulk-edit), resource (Lighting Device fields), and a distinguishing scope constraint (one undo step). An agent can immediately tell this apart from vw_set_record or vw_list_lighting_devices without opening a 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 clear context: it routes the agent to vw_revert_last for undoing and notes Universe/DMX edits go via UniverseAddress. However, it never explicitly states when to prefer this over sibling setters like vw_set_record, so it stops short of 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.