vw-bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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:
|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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