Vwx MCP
Vectorworks 2026 MCP server β 150 tools controlling live VW via Python vs.* API. FastMCP + TCP socket bridge
Ask AI about Vwx MCP
Powered by Claude Β· Grounded in docs
I know everything about Vwx MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
vwx-mcp
Vectorworks 2026 MCP server β 150 tools, pure Python, no C++ compilation.
Mirrors the QGIS MCP architecture: FastMCP HTTP bridge β TCP socket β Python plugin inside Vectorworks.
Architecture
Claude Code
β streamable-http :8082
βΌ
mcp-server/vwx_mcp_server.py (FastMCP)
β TCP :9878, JSON newline-delimited (persistent, multi-message)
βΌ
vwx-plugin/vw_mcp_bridge.py (runs inside Vectorworks)
βββ bg thread: socket I/O only (loops reading framed JSON)
βββ queue: cmd_queue / result_map / result_events
βββ main thread: vs.* dispatch via RegisterDialogForTimerEvents (100ms)
βΌ
Vectorworks 2026 (vs.* Python API β 3071 functions, 73 categories)
Dialog events observed on VW2026 (for reference): setup=12255, teardown=12256, timer=13028, cancel=2.
Install
- Copy
vwx-plugin/contents to%APPDATA%\Nemetschek\Vectorworks\2026\Plug-ins\VWX-MCP\ - Copy
mcp-server/vwx_mcp_server.pyto%USERPROFILE%\.local\share\vwx-mcp\ - Copy
bridge/vwx-mcp.batto%USERPROFILE%\bridge\ - Ensure
pythonon PATH. Install deps:pip install mcp fastmcp
Run
- Launch Vectorworks 2026
- In VW:
File β Scripts β Run Scriptβ pickvwx_mcp_bridge.pyfrom plugin dir - Dialog shows "Active β TCP :9878" (keeps VW in modal event loop so main-thread pump works)
- Outside VW: double-click
bridge\vwx-mcp.batβ FastMCP listens onhttp://127.0.0.1:8082/mcp - Add MCP client config:
{ "vwx-mcp": { "type": "http", "url": "http://127.0.0.1:8082/mcp" } }
Test with the ping tool.
Known constraint
Bridge dialog is modal β blocks VW UI while active. Click Stop to reclaim VW. VW Python has no non-modal main-thread timer; this is a platform limitation, not a design choice.
Tools (116)
Document Β· Layers Β· Classes Β· Object Query Β· Object Manipulation Β· 2D Drawing Β· 3D Drawing Β· Symbols Β· Appearance Β· Records Β· IFC/BIM Β· Architectural (walls/spaces) Β· Landscape/Plants Β· Site Model Β· Viewports Β· Worksheets Β· Export/Import Β· View Β· GIS Β· Textures Β· Script Execution (execute_script β arbitrary vs.* code)
Escape hatch
execute_script runs any Python inside VW on the main thread. Set __result__ to return a value. Use when no explicit tool exists.
License
MIT
