Reads and drives a running Vectorworks 2026 document: query document info, list layers, draw basic shapes, and (only if explicitly enabled) run scripts.
Server has 6 tools with explicit schemas and descriptions. All tools follow verb_noun naming (get_, list_, create_, run_). Descriptions are present and adequate (avg ~120 chars), meeting the 10-1024 char baseline. However, parameter descriptions are minimal or absent in several tools (e.g., EmptyInput tools have no params to describe). Output schemas are not documented, LLMs cannot predict response structure. Error handling is generic (returns string errors, no recovery guidance). No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. The run_script tool is high-risk (DESTRUCTIVE) but lacks confirmation/dry-run pattern. Overall: functional but below production grade.
Draw a circle centered at (cx, cy) with the given radius, in document units.
Draw a line from (x1, y1) to (x2, y2) in document units.
Draw a rectangle with bottom-left corner (x, y) and the given width and height, in document units.
Get information about the active Vectorworks document (whether a document is open, and a layer count).
List the design layers in the active Vectorworks document.
Run a Python (default) or VectorScript script inside Vectorworks and return its output. DISABLED BY DEFAULT: it executes arbitrary code inside Vectorworks. Enable by setting the environment variable VW_MCP_ENABLE_RUN_SCRIPT=1 for this server (see SECURITY.md). Trusted environment only.
Output schemas not documented. LLMs cannot predict response structure (e.g., what fields does get_drawing_info return?). All tools return plain strings; no structured output guidance.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). run_script is DESTRUCTIVE and should be marked; create_* tools should be marked WRITE. Agents cannot reason about side effects.
run_script lacks confirmation/dry-run pattern. Executes arbitrary code inside Vectorworks (DESTRUCTIVE risk). No mechanism to preview or confirm before execution.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | <=2025-11-25 | v2 |
Error handling is generic. All tools return plain string errors with no recovery guidance. E.g., 'Connection error: ...' tells LLM nothing about retry strategy or next steps.
EmptyInput parameters have no descriptions. While the tools themselves are described, parameter-level guidance is missing for tools that accept no input.