Skip to main content
Glama
giorgiomoroder

Vectorworks MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
VWMCP_APPNoThe Vectorworks application name for the server to control, e.g. "Vectorworks 2025" when using a different Vectorworks version.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
vw_pingA

Check the Vectorworks bridge: returns Vectorworks version, active document and bridge version. Warns if the installed bridge doesn't match this server.

vw_exec_pythonA

Run arbitrary Python inside Vectorworks with vs in scope.

Returns stdout, the value of the last expression (or of a variable named result), and the traceback if it raised. Vectorworks embeds Python 3.9. Handles are only valid during the call; return UUIDs (vs.GetObjectUuid) to refer to objects later. A wrong vs.* signature can pop a modal "Script Errors" dialog in Vectorworks instead of raising; check with vw_vs_lookup first. Set modifies_document=False for read-only code; otherwise vw_revert_last can't step past this call.

vw_vs_lookupA

Search the live vs.* API (names and built-in docs) of the running Vectorworks, e.g. "record field", "symbol insert", "LDevice". Returns function names with their signature/description.

vw_document_infoA

Active document: name, path, units, active layer/class, counts, selection size.

vw_list_layersB

All layers (design and sheet) with visibility and which one is active.

vw_list_classesB

All class names, optionally filtered by a case-insensitive substring.

vw_get_selectionB

Selected objects on the active layer: uuid, type, name, class, layer, bbox, attached records, and symbol / plug-in name where relevant.

vw_find_objectsB

Find objects by any combination of exact class, layer, type ("Symbol", "Rectangle", "Plug-in Object"...), plug-in name ("Lighting Device"), attached record (optionally with field == value) and object name.

vw_get_recordB

All field values of a record (or a plug-in object's parameters, using its plug-in name as the record) on the object with this UUID.

vw_set_recordA

Set record fields (or plug-in parameters) on one object; unknown field names are rejected before anything changes. One undo step. Returns the record afterwards.

vw_list_symbolsB

Symbol definitions in the document's resource list, with their folder path; filter by name and/or folder substring (e.g. fixture lookup).

vw_insert_symbolB

Place a symbol from the document's resources at x, y (document units), optionally at height z, on a layer and in a class. One undo step.

vw_revert_lastA

Undo exactly the last MCP write in the active document: restores the previous field values of vw_set_record / vw_set_lighting_device_fields, or deletes the symbol vw_insert_symbol placed. Call repeatedly to step further back. (Vectorworks' own Cmd-Z merges consecutive MCP edits.) Raw vw_exec_python edits can't be reverted this way.

vw_list_lighting_devicesA

All Spotlight Lighting Devices, sorted by position then unit number.

Default fields: Unit Number, Channel, Dimmer, Universe, DMX Address, UniverseAddress, Absolute Address, Num Channels, Purpose, Position, Inst Type, Wattage, Color, Template (gobo), Template2, Focus, Circuit Number/Name, Mark, Symbol Name, Fixture Mode, GDTF Fixture Name, Device Type, User Field 1-6. Pass fields to choose others (any Lighting Device parameter name). Filter by exact position name or layer. Each row has a uuid.

vw_set_lighting_device_fieldsA

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.

vw_list_positionsA

Lighting positions (Light Position Obj, Lighting Pipe, Ladder, Truss, Hanging Position) with the devices whose Position field names them. Also reports how many devices have no position, and position names used by devices that have no matching position object.

vw_lighting_device_reportA

Paperwork export of Lighting Devices (channel hookup, instrument schedule...). Default columns: Position, Unit Number, Inst Type, Wattage, Purpose, Channel, UniverseAddress, Circuit Number, Color, Template, Focus. Sorted naturally by sort_by (blank values last). Returns the CSV/JSON text, and also writes it to output_path if given.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 17 tools

Disambiguation4/5

Most tools target clearly distinct resource/action pairs, but there is some overlap between vw_set_record (single object or plug-in parameters) and vw_set_lighting_device_fields (bulk lighting device edits), and between vw_list_lighting_devices and vw_lighting_device_report, which both surface device data. The detailed descriptions clarify when each should be used, so ambiguity is limited.

Naming Consistency4/5

All tool names share a consistent vw_ prefix and snake_case formatting, with predictable patterns such as vw_list_*, vw_get_*, and vw_set_*. A few names are noun-based (vw_document_info, vw_lighting_device_report) rather than strict verb_noun, but the set remains readable and mostly consistent.

Tool Count4/5

17 tools is slightly above the typical 3-15 range, but each covers a distinct capability in a complex CAD/lighting bridge: bridge check, Python execution, API lookup, document/layer/class inspection, records, symbols, undo, and lighting workflows. The set does not feel padded with redundant tools.

Completeness4/5

The surface covers introspection, generic execution, document/layer/class queries, object finding, record read/write, symbol insertion, undo, and lighting-specific workflows including reports. Dedicated create/delete/modify-object tools are absent, but vw_exec_python provides a workaround, leaving only minor gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues