Skip to main content
Glama
Gribiche64

vw-bridge

by Gribiche64

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
set_active_fileC

Point the watcher at a Lightwright Data Exchange XML file.

The file is the .xml that Vectorworks writes alongside your .vwx (in the same folder) when "Use automatic Lightwright Data Exchange" is enabled in Spotlight Preferences. It updates whenever you switch focus away from Vectorworks.

get_active_fileA

Show which XML file is being watched and when it was last parsed.

list_plotsA

List Lightwright XML files under the shows root, newest first.

Each entry has show_folder, xml_path, vwx_path, modified_at. Useful for picking which plot to watch when you have multiple shows open or when set_active_plot returns ambiguous matches.

set_active_plotA

Switch the active plot by show name (fuzzy-matched against folder names).

Examples: 'Aurora Nova', 'Eternal Sunshine'. Picks the most recently-modified XML in the matching show's folder.

get_fixture_countsA

Counts of each fixture type, optionally scoped to one layer.

By default the "OLD" parking layer is excluded. Pass include_old=True to include it.

get_fixture_summaryC

Grand totals: fixture count, total wattage, layer count, device-type breakdown.

get_layersC

Per-layer rollup: fixture count, wattage, and unique fixture types.

get_channelsA

Channel + DMX address listing, filterable by layer and/or fixture type.

Includes only patched fixtures. Each entry has channel, dimmer, absolute address, universe, layer, position, inst_type.

get_equipment_listB

Rental-style rollup: fixture type, quantity, total wattage.

Sorted by quantity descending. Includes accessories (clamps, gel frames) aggregated separately.

plot_qcC

Audit the plot for common QC issues.

Reports:

  • duplicate channels (same channel value across multiple fixtures)

  • duplicate DMX addresses (same absolute_address across multiple fixtures)

  • unpatched fixtures (no channel and no DMX address)

  • missing positions

  • missing purposes

get_fixture_detailsA

Return the full parsed data for one fixture by UID (dotted form).

Use before planning a write — the caller usually needs the fixture's current Lightwright_ID (preserved into the patch), current Inst_Type / Symbol_Name / Wattage, and layer / position to confirm it's targeting the right fixture.

find_fixture_of_typeB

Find an existing fixture of a given Inst_Type, for borrowing Symbol_Name and Wattage.

Returns the first match plus a count of all fixtures of that type. The Symbol_Name and Wattage of the returned fixture are the canonical strings to use when patching another fixture to this type via write_fixture_patch.

Pattern: 'I want UID 1246 to become a Robe iForte LTX. Find me an existing LTX so I can copy its Symbol_Name and Wattage into the patch.'

write_fixture_patchA

Apply field changes to fixtures via the Lightwright Data Exchange XML.

The MCP writes a Lightwright-style patch directly to the active XML. Vectorworks' file watcher picks it up on focus-in and applies the changes to the drawing — no Lightwright the application required in the loop.

Args: changes: list of dicts, each with: - "uid": dotted UID, e.g. "1246.1.1.0.0" - "fields": dict of XML field name → string value, e.g. {"Inst_Type": "Robe iForte LTX", "Symbol_Name": "Robe iForte LTX", "Wattage": "1250 W"}

Returns dict with: written_to, uids_changed, patch_size_bytes, warnings.

Safety: - Refuses Delete operations (the writer is patch-only; Delete is a separate operation we intentionally don't support). - Refuses unknown field names (catches typos before VW sees them). - Refuses UIDs not in the current snapshot. - Warns (does not refuse) if Inst_Type changes without Wattage — this is the 'frankenfixture' risk: new symbol but stale wattage.

To plan a type swap safely: 1. Call get_fixture_details(uid) to confirm target UID. 2. Call find_fixture_of_type(new_type) to get the correct Symbol_Name and Wattage strings. If count is 0, pre-place a fixture in VW first. 3. Call write_fixture_patch with Inst_Type + Symbol_Name + Wattage in the same change.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/Gribiche64/vectorworks-bridge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server