Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Bimwright DWG

NUGET · BIMWRIGHT.DWG.SERVER

MCP gateway for AutoCAD 2022-2027: DWG text, layers, entities, views and automation.

68 Trust /100

Last scanned (23 minutes ago)

Scores higher than 44% of NuGet servers

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Build provenance not yet verified. View diagnostics → Unverified
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 5 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability62
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 11651 tokens (~258/item across 45 items; 45 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 99% of tool parameters carry a description.Partial
Tool Safety92
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 2 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "dwg_send_code" implies "send" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Partial
  • An AI judge read all 46 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 31 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 30 Oct 26 53

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed nuget/Bimwright.Dwg.Server@2.1.1

Provenance Inconclusive

We could not complete the check, so nothing is claimed either way. This is a gap on our side, not a finding about the package.

Result Inconclusive
Ecosystem nuget
Reason Signature present, unverified

Signer

Signed as Repository signature, names nuget.org
Subject CN=NuGet.org Repository by Microsoft,O=NuGet.org Repository by Microsoft,L=Redmond,ST=Washington,C=US
Issuer CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1,O=DigiCert\, Inc.,C=US
Valid from 23 Feb 2024
Valid until 18 May 2027
Service index https://api.nuget.org/v3/index.json
Owners lekhoa221

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

Registry declarations For information only

What the registry and the package's own manifest say about this version. The publisher or the registry writes these, nothing here is verified, and none of it affects the score.

Repository https://github.com/bimwright/dwg-mcp
Repository type git
Commit beeed8d1b341ad38dfbc14efda3f06fd31a2ea56
Project URL https://github.com/bimwright/dwg-mcp
MCP tools · 45 exposed · ~8,951 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
dwg_apply_unicode_style ~213

Ensure the 'Bimwright_Unicode' text style exists (using Open Sans Condensed Light font, using the bundled font or a checksum-validated fallback download) and reassign target entities to it. Height normalization is smart and idempotent: SHX sources are reduced more than TrueType sources, while entities already on the Unicode style keep their current height instead of shrinking again. Targets: if 'handles' is a non-empty JSON array, those entities are used; otherwise falls back to the current pickfirst selection. MUST be called after translating text to Vietnamese or any non-ASCII language on drawings that use SHX fonts lacking the required glyphs (otherwise text renders as '?'). Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
handlesstring–Optional JSON array of target handles, e.g. ["7F5AD","2A4F"]. Omit or pass "" to use the current pickfirst selection.

No output schema declared.

No examples provided.

dwg_batch_execute ~181

Run multiple internal DWG commands sequentially as a logical batch. commands must be a JSON array of {cmd, params}. run_lisp is blocked in this build, including batches; use dwg_inspect_lisp for analysis only. Each step reports index, command_ok, effective ok, outcome and nullable mutation_applied; file-output steps also report output_verified. Read nested results/file_receipt and output_artifact for omitted details. May change drawing data or files; disabled in read-only mode even when a particular batch only contains reads. Commands are sequential, not one atomic transaction: earlier effects can remain after a later failure. Use AutoCAD UNDO for drawing edits and backups for file changes.

NameTypeReqDescription
commandsstringyesJSON array: [{"cmd":"get_selected_texts","params":{}}]. Wire command names are unprefixed.

No output schema declared.

No examples provided.

dwg_capture_view_image ~392

Capture the active drawing to a raster image (.png/.jpg/.jpeg/.bmp) using AutoCAD's in-process document preview API. No desktop automation, zoom, geometry edits or DWG save. Wait for zoom/commands to complete before capturing. If output_path is omitted, saves to %LOCALAPPDATA%\Bimwright\dwg-mcp\captures\ with an auto-generated name. Returns inline MCP image content (up to 8 MiB) plus JSON with image path, actual dimensions, SHA-256, timestamp, document fingerprint, layout, viewport and camera. Use capture_id with dwg_inspect_view_region when region_navigation.supported is true. Camera coordinates describe the active viewport; do not assume one pixel-to-world mapping for tiled views or paper layouts. Persist the response alongside the image when building a reading atlas. Writes an image file; disabled in read-only mode. Delete a new image to undo file creation. Overwritten image bytes cannot be restored by AutoCAD UNDO; restore a backup.

NameTypeReqDescription
allow_repo_outputboolean|null–Allow output to the repository root directory.
expected_document_fingerprintstring–Optional drawing fingerprint from a previous capture. Rejects capture if the active drawing differs; never switches documents.
image_formatstring–Image format used only when output_path is omitted: png (default), jpeg, or bmp.
output_pathstring–Optional absolute output path ending in .png, .jpg, .jpeg, or .bmp. If omitted, an auto-named PNG is written to the captures directory.
overwrite_existingboolean|null–Overwrite the output file if it already exists.
pixel_sizeinteger|null–Requested longer image dimension (default 1600, clamped to 64-8192), using the current viewport aspect ratio. AutoCAD may round the actual dimensions returned.

No output schema declared.

No examples provided.

dwg_change_color ~144

Apply an AutoCAD ACI color index to entities identified by handle. handles is a JSON array of AutoCAD handle strings. color_index is validated by AutoCAD-side handling as ACI range 1-256. Returns per-item {handle, ok, error}; bad handles do not abort siblings. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
color_indexintegeryesACI color index to apply. Valid range: 1-256.
handlesstringyesJSON array of AutoCAD handles, e.g. ["7F5AD","2A4F"].

No output schema declared.

No examples provided.

dwg_change_layer ~176

Move entities identified by handle to an existing layer. If create_layer=true, the layer is ensured first using color_index or default 7. Returns one result record per handle; bad handles do not abort siblings. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
color_indexinteger|null–Optional ACI color index used only when create_layer=true creates a missing layer. Valid range: 1-256. Default: 7.
create_layerboolean–When true, ensure the target layer before moving entities.
handlesstringyesJSON array of AutoCAD handles, e.g. ["7F5AD","2A4F"].
layerstringyesTarget layer name. Must exist unless create_layer=true.

No output schema declared.

No examples provided.

dwg_collapse_and_rewrite ~385

LOW-LEVEL rewrite primitive. PREFER translate_and_rewrite for the standard translation workflow - this tool exists for expert control, regression replay from mcp-calls.jsonl, and future non-translation orchestrators. Accepts explicit per-cluster instructions {anchor_handle, new_text, delete_handles, convert_to_mtext, mtext_width}. For each cluster: anchor_handle is the fragment to keep (typically topmost-leftmost), new_text is the full rewritten sentence (may contain \\P line breaks for multi-line), delete_handles are all other fragments in the cluster (will be erased), convert_to_mtext=true upgrades DBText->MText for natural word wrap (only safe in model space, not inside blocks), mtext_width is the cluster bounding box X-span (only used if convert_to_mtext). Each cluster runs in its own transaction (one failure does not roll back siblings). Response per cluster includes an 'action' field: update | collapse | rewrite_in_block. If applyUnicodeStyle=true, the same call reassigns surviving entities to the Unicode text style and scales height. final_text_height measures the resulting entity's stored height after normalization/scaling, or null if unavailable; block definitions use local units. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
applyUnicodeStyleboolean–When true, apply the Unicode text style to surviving entities in the same tool call.
clustersstringyesJSON: {"clusters":[{"anchor_handle":"...","new_text":"...","delete_handles":["..."],"convert_to_mtext":true,"mtext_width":0}]}
finalScalenumber–Optional per-request final text-height multiplier. Default 0.80; clamped to [0.5, 0.9].

No output schema declared.

No examples provided.

dwg_copy_entities ~146

Copy entities identified by handle by a displacement vector. handles is a JSON array of AutoCAD handle strings. vector is a JSON point object with numeric x, y, and optional z fields. Returns per-item {handle, ok, new_handle, error}; bad handles do not abort siblings. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
handlesstringyesJSON array of AutoCAD handles, e.g. ["7F5AD","2A4F"].
vectorstringyesJSON vector object, e.g. {"x":100,"y":0,"z":0}.

No output schema declared.

No examples provided.

dwg_count_entities ~254

Count AutoCAD entities matching type/layer/color; legacy calls read model space. Optional bbox/space use the same inclusive WCS extents filter as paged query, report INSUNITS and unknown extents separately. Incomplete spatial counts return null count/exact_match_count plus observed matched_count; no estimated count is invented. Spatial counts require matching plugin support and direct calls outside batches.

NameTypeReqDescription
bboxstring–JSON object {min:[x,y,z],max:[x,y,z]} in WCS drawing units.
bbox_modestring–intersects (default with bbox) or contains; inclusive AABB test, requires bbox.
color_indexinteger|null–Optional ACI color index filter. Valid range: 1-256.
entity_typestring–Optional managed type name, case-insensitive. TEXT/INSERT/LWPOLYLINE aliases are supported. Exact uppercase POLYLINE is refused; use Polyline/LWPOLYLINE, Polyline2d or Polyline3d explicitly.
layerstring–Optional layer name filter. Case-insensitive.
spacestring–model or layout:<exact human layout name>; no fallback to another space.

No output schema declared.

No examples provided.

dwg_create_arc ~191

Create an Arc in the current AutoCAD space. center is a JSON point object. radius must be positive and finite. start_angle and end_angle are degrees. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
centerstringyesJSON point object, e.g. {"x":0,"y":0,"z":0}.
color_indexinteger|null–Optional ACI color index for the new entity, and for creating a supplied missing layer. Valid range: 1-256.
end_anglenumberyesEnd angle in degrees.
layerstring–Optional target layer name. If supplied, the layer is ensured using color_index or default 7.
radiusnumberyesArc radius. Must be positive and finite.
start_anglenumberyesStart angle in degrees.

No output schema declared.

No examples provided.

dwg_create_circle ~169

Create a Circle in the current AutoCAD space. center is a JSON point object with numeric x, y, and optional z fields. radius must be positive and finite. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
centerstringyesJSON point object, e.g. {"x":0,"y":0,"z":0}.
color_indexinteger|null–Optional ACI color index for the new entity, and for creating a supplied missing layer. Valid range: 1-256.
layerstring–Optional target layer name. If supplied, the layer is ensured using color_index or default 7.
radiusnumberyesCircle radius. Must be positive and finite.

No output schema declared.

No examples provided.

dwg_create_ellipse ~207

Create an Ellipse in the current AutoCAD space. center is a JSON point object. major_radius and minor_radius must be positive and finite. rotation is degrees. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
centerstringyesJSON point object, e.g. {"x":0,"y":0,"z":0}.
color_indexinteger|null–Optional ACI color index for the new entity, and for creating a supplied missing layer. Valid range: 1-256.
layerstring–Optional target layer name. If supplied, the layer is ensured using color_index or default 7.
major_radiusnumberyesMajor radius. Must be positive and finite.
minor_radiusnumberyesMinor radius. Must be positive, finite, and less than or equal to major_radius.
rotationnumberyesMajor-axis rotation in degrees.

No output schema declared.

No examples provided.

dwg_create_layer ~107

Ensure an AutoCAD layer exists. If the layer already exists, its existing color and state are left unchanged and the response reports created=false. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
color_indexinteger|null–Optional ACI color index used only when creating a missing layer. Valid range: 1-256. Default: 7.
namestringyesLayer name to ensure.

No output schema declared.

No examples provided.

dwg_create_line ~192

Create a Line in the current AutoCAD space. start and end are JSON point objects with numeric x, y, and optional z fields. Optional layer is ensured before assignment; optional color_index sets the entity ACI color. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
color_indexinteger|null–Optional ACI color index for the new entity, and for creating a supplied missing layer. Valid range: 1-256.
endstringyesJSON point object, e.g. {"x":1000,"y":0,"z":0}.
layerstring–Optional target layer name. If supplied, the layer is ensured using color_index or default 7.
startstringyesJSON point object, e.g. {"x":0,"y":0,"z":0}.

No output schema declared.

No examples provided.

dwg_create_point ~164

Create a Point in the current AutoCAD space. point is a JSON point object with numeric x, y, and optional z fields. Optional layer is ensured before assignment; optional color_index sets the entity ACI color. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
color_indexinteger|null–Optional ACI color index for the new entity, and for creating a supplied missing layer. Valid range: 1-256.
layerstring–Optional target layer name. If supplied, the layer is ensured using color_index or default 7.
pointstringyesJSON point object, e.g. {"x":0,"y":0,"z":0}.

No output schema declared.

No examples provided.

dwg_create_polyline ~181

Create a 2D Polyline in the current AutoCAD space. points is a JSON array of point objects with numeric x, y, and optional z fields. At least two points are required. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
closedboolean–When true, close the polyline.
color_indexinteger|null–Optional ACI color index for the new entity, and for creating a supplied missing layer. Valid range: 1-256.
layerstring–Optional target layer name. If supplied, the layer is ensured using color_index or default 7.
pointsstringyesJSON point array, e.g. [{"x":0,"y":0},{"x":1000,"y":0}].

No output schema declared.

No examples provided.

dwg_create_rectangle ~184

Create a Rectangle as a closed Polyline in the current AutoCAD space. corner1 and corner2 are JSON point objects with numeric x, y, and optional z fields. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
color_indexinteger|null–Optional ACI color index for the new entity, and for creating a supplied missing layer. Valid range: 1-256.
corner1stringyesJSON point object, e.g. {"x":0,"y":0,"z":0}.
corner2stringyesJSON point object, e.g. {"x":1000,"y":500,"z":0}.
layerstring–Optional target layer name. If supplied, the layer is ensured using color_index or default 7.

No output schema declared.

No examples provided.

dwg_erase_entities ~98

Erase entities identified by handle. handles is a JSON array of AutoCAD handle strings. Returns per-item {handle, ok, error}; bad handles do not abort siblings. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
handlesstringyesJSON array of AutoCAD handles, e.g. ["7F5AD","2A4F"].

No output schema declared.

No examples provided.

dwg_get_current_target ~37

Return this gateway's binding state, PID, process start, generation, selection confirmation and drawing identity. No discovery or drawing changes.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

dwg_get_drawing_info ~42

Return small JSON-safe metadata for the current AutoCAD drawing: drawing name when available, current layer, current space/layout, and database unit scalars.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

dwg_get_drawing_profile ~287

Profile top-level entities in all spaces (default), model only or one named layout. Reports exact managed runtime type, layer and per-space counts with source/coverage; incomplete reads report observed counts and null exact totals. Block inserts count once; nested block contents, uninserted definitions and xref contents are not expanded. The default final MCP output cap is 16384 UTF-8 bytes, independent of the global response budget. Content identifies omitted groups and next_calls for types/layers/spaces. Each page rescans; pass expected_snapshot from the previous result when offset is positive. A changed document/revision refuses continuation. No geometry, selection or drawing changes.

NameTypeReqDescription
expected_snapshotstring–Snapshot token from a previous profile result. Required for positive offsets; mismatches require restarting at offset zero.
max_output_bytesinteger–Maximum final MCP result bytes, default 16384; supported range 4096..65536. A smaller global budget still applies.
offsetinteger–Ordinal group offset for the selected table, default 0; positive offsets require expected_snapshot.
sectionstring–summary (default), types, layers or spaces. Summary starts all tables at offset zero.
spacestring–all (default), model or layout:<exact layout name>. Model snapshots ignore viewport navigation; layout/all snapshots track it.

No output schema declared.

No examples provided.

dwg_get_entity_properties ~110

Return properties for AutoCAD entities identified by handle. Input handles is a JSON array of hex handles, e.g. ["7F5AD"]. Returns one result record per handle; bad handles do not abort siblings.

NameTypeReqDescription
handlesstringyesJSON array of AutoCAD handles, e.g. ["7F5AD","2A4F"].
includeGeometryboolean–When true, include lightweight geometry such as extents, points, lengths, and text positions where available.

No output schema declared.

No examples provided.

dwg_get_selected_texts ~446

Read and cluster text. Existing two-argument calls use AutoCAD pickfirst selection and legacy rewrite IDs. Supply handles or bbox to read without selecting anything; choose exactly one explicit source. Explicit-source mode reads top-level DBText/MText/MLeader, does not expand blocks/xrefs, clusters the full declared source before paging whole clusters, and returns read-only cluster_key values. It leaves legacy rewrite state unchanged. For per-entity writes use includeEntities=true then dwg_update_texts by handle; cluster rewrite still requires manual selection. Cursor, content omissions and next_calls follow the bounded query pattern (default16384 final MCP UTF-8 bytes). Source limits5000 text records/8MiB UTF-8; incomplete sources produce no groups or continuation. Model snapshots ignore viewport navigation; entity changes refuse continuation. Explicit-source calls must be direct outside batches/baked tools. Each cluster has id, text, entity_count, in_block (bool) and rewrite_mode only on the legacy selection path. Explicit-source groups never supply writable numeric IDs.

NameTypeReqDescription
bboxstring–Explicit source JSON object {min:[x,y,z],max:[x,y,z]} in WCS drawing units; mutually exclusive with handles.
bbox_modestring–intersects or contains inclusive3D extents test; requires bbox.
cursorstring–Opaque whole-cluster continuation from output.next_calls. Echo same source/grouping/includeEntities.
groupingStrengthstring–Optional grouping strength: weak, normal, or strong. Use weak when an image/layout reference indicates nearby labels should stay separate.
handlesstring–Explicit source JSON array of0..5000 hexadecimal handle values; deduplicated. Mutually exclusive with bbox.
includeEntitiesboolean–When true, include each child text entity's handle/text/position so callers can recover from over-grouped clusters.
max_output_bytesinteger|null–Explicit-source final MCP UTF-8 cap4096..65536(default16384), subject to lower global cap.
spacestring–model(default for explicit source) or layout:<exact name>. Top-level text only.

No output schema declared.

No examples provided.

dwg_health ~291

At session start select the intended AutoCAD target, then call dwg_health(check_updates=true) once. Routine probes stay offline; not_checked/unknown never means up to date. Reports host/document state and loaded server/plugin versions, build ids and alignment. A busy UI can make document state unavailable; health does not require or lock an active drawing. No target still returns gateway identity with ok:false and host_connected:false. Legacy plugins without health/identity remain unverified, not assumed corrupt. Inspect both update.components and the full update.notification message, lookup_reason, protected_component_reasons and unobserved_components. UPDATE_CHECK_UNAVAILABLE reports external lookup failure, not a runtime fault or request for installation authorization. LOCAL_VERSION_AHEAD is informational: never downgrade or automatically replace development builds. Only update_guidance.mode=prepare_update with bundle_update_proposal_allowed=true permits an update proposal and needs installation authorization (reuse existing permission); other modes contain check/review steps only. comparison_reason=release_revision_unavailable means missing external evidence, not a broken local build. After reconnect compare fresh initialize and tools/list metadata/schema/annotations on that connection with client_verification; the server cannot prove client cache refresh. Matching revisions do not verify artifact bytes, compatibility or publisher trust. Read-only; never installs, downloads packages, saves/closes drawings, edits client configs or restarts processes.

NameTypeReqDescription
check_updatesboolean––

No output schema declared.

No examples provided.

dwg_inspect_lisp ~253

Statically inspect AutoLISP for known suspicious patterns without executing it — downloaded .lsp files can embed malware (process exec via startapp/shell, COM automation like WScript.Shell/XMLHTTP, persistence via acad.lsp/acaddoc.lsp or registry writes, file deletion, staged (load ...) payloads, obfuscation via eval/read). Pure local analysis: does not execute anything and needs no AutoCAD round-trip, so it works under --read-only too. Params: 'file' (absolute path) and/or 'code' (inline source). Returns {ok, verdict: clean|caution|dangerous, opaque, summary, findings[]}. Compiled .fas/.vlx cannot be inspected and always verdict 'dangerous'. This is not a sandbox or an antivirus guarantee: clean means no known pattern matched, not safe. execution_authorized and safety_assured are always false. dwg_run_lisp is blocked in this build; do not bypass that refusal through other execution tools.

NameTypeReqDescription
codestring–Inline AutoLISP source to inspect
filestring–Absolute path to a .lsp/.fas/.vlx file to inspect

No output schema declared.

No examples provided.

dwg_inspect_view_region ~279

Look closer at a rectangle in a previous capture: zoom in AutoCAD, regenerate, verify the camera and capture a NEW image. Changes the visible view and saves a PNG, but does not edit geometry or save the DWG. Requires a current source capture in the same unchanged drawing: single model-space viewport, top-down, zero twist, orthographic, no clipping. Returns inline image and JSON with a new capture_id and parent_capture_id. Use the new ID for the next zoom; use dwg_restore_view to go back. History is limited to 64 captures / 30 minutes in the current AutoCAD process. Stale or unsupported sources are refused before zoom. Writes a new image file; disabled in read-only mode. Restore the prior camera with dwg_restore_view and delete the generated image to undo these effects.

NameTypeReqDescription
pixel_sizeinteger|null–Requested longer image dimension, default 1600; clamped to 64..8192.
regionobjectyesRectangle on that exact image: {left,top,right,bottom}, normalized 0..1, origin top-left. Ordered bounds, at least 4 image pixels per axis. Entire region is fitted with 10% surrounding context, prese…
source_capture_idstringyescapture_id returned by the current supported capture.

No output schema declared.

No examples provided.

dwg_list_available_targets ~92

List running AutoCAD instances with target_id, PID and process start time. In full mode select the intended instance using dwg_switch_target(target='pid:<PID>'). In --read-only, start or restart the gateway with --target pid:<PID> or id:<target_id>; dwg_switch_target is unavailable. Supports per-instance discovery and legacy AutoCAD 2022 through 2027 discovery files.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

dwg_list_layers ~33

List layers in the current AutoCAD drawing with small scalar properties such as color index, locked/frozen/off state.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

dwg_list_recent_drawings ~160

List recent DWG files for the connected AutoCAD product from its user registry Recent File List. Works with no drawing open; never opens a file. Returns up to 50 entries in MRU index order: index, path, name, exists and pinned. Optional name is a case-insensitive filename substring, filtered before max_items (1-50, default 50). Ask the user which path to open, then call dwg_open_drawing with that absolute path. The registry layout is product-specific; a missing list returns registry_found=false, not a guessed list.

NameTypeReqDescription
max_itemsinteger–Maximum matching files, 1-50; default 50.
namestring–Optional case-insensitive filename substring.

No output schema declared.

No examples provided.

dwg_move_entities ~143

Move entities identified by handle by a displacement vector. handles is a JSON array of AutoCAD handle strings. vector is a JSON point object with numeric x, y, and optional z fields. Returns per-item {handle, ok, error}; bad handles do not abort siblings. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
handlesstringyesJSON array of AutoCAD handles, e.g. ["7F5AD","2A4F"].
vectorstringyesJSON vector object, e.g. {"x":100,"y":0,"z":0}.

No output schema declared.

No examples provided.

dwg_offset_entities ~127

Offset curve entities identified by handle by distance. handles is a JSON array of AutoCAD handle strings. Only Curve entities are supported. Returns per-item {handle, ok, created_handles, error}; bad handles and unsupported entities do not abort siblings. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
distancenumberyesOffset distance. Must be finite and non-zero.
handlesstringyesJSON array of AutoCAD handles, e.g. ["7F5AD","2A4F"].

No output schema declared.

No examples provided.

dwg_open_drawing ~343

Open an existing .dwg from an absolute drive/UNC path on the AutoCAD machine, not the MCP client. This is the tool to use when no drawing is open. Ask the user which recent path to open first. activate=true (default) makes it active; false requires an existing active drawing and restores that drawing after opening (not a viewless background database). read_only=false (default) requests writable access; true requests read-only access. Reuses an already-open drawing without reopening it; an access-mode mismatch is refused rather than closing or changing it. Never saves, closes or overwrites drawings. Runs in application context without a document lock, requires idle multi-document mode (SDI=0), and is not supported inside batch/baked drawing workflows. DWG only: no DXF, templates, cloud URLs, audit or recovery. Native AutoCAD dialogs may require the user. timeout_seconds: 1-900, default 600; timing out does not cancel an Open already running, so inspect AutoCAD before retrying. Returns opened, was_already_open, title, path, actual read_only, activated and active_document. Opening an older DWG does not write upgraded bytes unless subsequently saved.

NameTypeReqDescription
activateboolean–Make the drawing active; false keeps an existing drawing active.
pathstringyesAbsolute .dwg path reachable by the AutoCAD process.
read_onlyboolean–Request read-only access to the file (not the gateway --read-only mode).
timeout_secondsinteger–Plugin response wait in seconds, 1-900; default 600. Does not cancel host work.

No output schema declared.

No examples provided.

dwg_query_entities ~544

Query model-space AutoCAD entities with optional filters for entity type, layer, and ACI color index. Existing calls retain their legacy fields, geometry option and order. Set paged=true or supply spatial/field options for bounded numeric-handle pages. Paged defaults are handle/type/layer and 16384 final MCP UTF-8 bytes. Content reports omissions and next_calls; echo their filters/fields with the signed cursor. BBox tests inclusive WCS 3D axis-aligned extents, not exact geometry clipping, in selected-space drawing units without INSUNITS conversion. Unavailable bbox-filter extents/population read failures are counted and block continuation; changed drawing/filter/fields rejects the cursor. Requires matching plugin support; unconfirmed legacy replies are refused. Call directly, outside batches, for paged reads. Use fields=["handle"] for paged spatial handles without changing selection.

NameTypeReqDescription
bboxstring–Optional JSON object {min:[x,y,z],max:[x,y,z]}, finite ordered WCS drawing-unit bounds.
bbox_modestring–intersects (default with bbox) or contains; closed AABB boundaries. Requires bbox.
color_indexinteger|null–Optional ACI color index filter. Valid range: 1-256.
cursorstring–Opaque cursor from output.next_calls. Echo the same matching/field options; changed snapshots refuse continuation.
entity_typestring–Optional managed type name, case-insensitive. TEXT/INSERT/LWPOLYLINE aliases are supported. Exact uppercase POLYLINE is refused; use Polyline/LWPOLYLINE, Polyline2d or Polyline3d explicitly.
fieldsstring–JSON array from handle,type,runtime_type,layer,color_index,text,position,extents. Default handle/type/layer; handle always included. Unsupported field values are null with unavailable_fields.
include_geometryboolean–Legacy only: include full existing geometry output. Paged reads use fields instead.
layerstring–Optional layer name filter. Case-insensitive.
limitinteger|null–Optional maximum number of returned entities. The plugin clamps this to 1-5000.
max_output_bytesinteger|null–Paged final MCP byte cap, default 16384, range4096..65536; lower global cap still applies.
pagedboolean–Opt in to bounded stable pages, even without spatial or field filters.
spacestring–model (default) or layout:<exact human layout name>, case-insensitive. Top-level entities only; no block/xref expansion.

No output schema declared.

No examples provided.

dwg_restore_view ~168

Return to the camera of a recent supported capture and return a fresh inline image plus JSON. Changes the visible view and writes a PNG, not drawing geometry. Requires the same unchanged drawing, layout and single top-down model viewport. Use an ancestor capture_id to return to the overview. Returns a new capture_id; use that new ID for subsequent region navigation. History expires after 30 minutes or 64 captures or host restart. Writes a new image file; disabled in read-only mode. Return to another captured camera and delete the generated image to undo these effects.

NameTypeReqDescription
pixel_sizeinteger|null–Requested longer image dimension, default 1600; clamped to 64..8192.
source_capture_idstringyesID of the supported capture whose camera should be restored.

No output schema declared.

No examples provided.

dwg_rotate_entities ~158

Rotate entities identified by handle around basePoint on the Z axis. handles is a JSON array of AutoCAD handle strings. basePoint is a JSON point object, and angleDegrees is in degrees. Returns per-item {handle, ok, error}; bad handles do not abort siblings. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
angleDegreesnumberyesRotation angle in degrees.
basePointstringyesJSON base point object, e.g. {"x":0,"y":0,"z":0}.
handlesstringyesJSON array of AutoCAD handles, e.g. ["7F5AD","2A4F"].

No output schema declared.

No examples provided.

dwg_run_lisp ~151

Unavailable: LISP execution is blocked in this build. Retained for compatibility; all file/code/command inputs are refused locally without reading files or contacting AutoCAD. There is no isolated executor or approved-script trust mechanism. Use dwg_inspect_lisp for static analysis only; clean/caution/dangerous never authorize execution. MCPENABLECODE does not override this restriction. Do not bypass refusal through dwg_send_code, batch, ToolBaker, or reformatted payloads.

NameTypeReqDescription
codestring–Legacy source input; execution is blocked
commandstring–Legacy command input; execution is blocked
filestring–Legacy file input; execution is blocked

No output schema declared.

No examples provided.

dwg_scale_entities ~173

Scale entities identified by handle around basePoint. handles is a JSON array of AutoCAD handle strings. basePoint is a JSON point object. scale must be finite, positive, and less than or equal to 1000. Returns per-item {handle, ok, error}; bad handles do not abort siblings. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
basePointstringyesJSON base point object, e.g. {"x":0,"y":0,"z":0}.
handlesstringyesJSON array of AutoCAD handles, e.g. ["7F5AD","2A4F"].
scalenumberyesScale factor. Must be finite, positive, and <= 1000.

No output schema declared.

No examples provided.

dwg_select_by_layer ~145

Return handles for model-space entities on a required layer, with optional type/color filters. This does not change AutoCAD pickfirst selection.

NameTypeReqDescription
color_indexinteger|null–Optional ACI color index filter. Valid range: 1-256.
entity_typestring–Optional managed type name, case-insensitive. Exact uppercase POLYLINE is refused; use Polyline/LWPOLYLINE, Polyline2d or Polyline3d explicitly.
layerstringyesRequired layer name filter. Case-insensitive.
limitinteger|null–Optional maximum number of returned handles. The plugin clamps this to 1-5000.

No output schema declared.

No examples provided.

dwg_select_by_type ~157

Return handles for model-space entities of a required type, with optional layer/color filters. This does not change AutoCAD pickfirst selection.

NameTypeReqDescription
color_indexinteger|null–Optional ACI color index filter. Valid range: 1-256.
entity_typestringyesRequired managed type name, case-insensitive. TEXT/INSERT/LWPOLYLINE aliases are supported. Exact uppercase POLYLINE is refused; use Polyline/LWPOLYLINE, Polyline2d or Polyline3d explicitly.
layerstring–Optional layer name filter. Case-insensitive.
limitinteger|null–Optional maximum number of returned handles. The plugin clamps this to 1-5000.

No output schema declared.

No examples provided.

dwg_send_code ~475

Execute a C# snippet through dwg_send_code against the AutoCAD .NET API as an escape hatch. Enabled by default on the meta toolset; the AutoCAD MCPDISABLECODE command disables it for the session (MCPENABLECODE re-enables). WARNING: send_code runs arbitrary code with full access to the AutoCAD process and local filesystem. Only use with trusted agents. This is not a sandbox. Never use it to bypass a run_lisp refusal or execute untrusted LISP. Globals available: Document doc, Database db, Editor ed. The script runs on the document-lock thread; end with 'return <expr>;' or a trailing expression to return a JSON-safe DTO value in the result field; AutoCAD/COM objects, including nested objects, are rejected. Only inline synchronous snippets are supported: async/await and #load directives are rejected before execution. Do not move AutoCAD API calls to Task.Run or other threads. Use System.Console.WriteLine for stdout output. Execution has cooperative 30s cancellation. An active drawing is required: when none is open, use dwg_list_recent_drawings and dwg_open_drawing first; the host refuses before executing code. doc, db and ed are supplied from that active drawing. Put database writes in one using transaction from db.TransactionManager.StartTransaction(), and Commit only after validation succeeds. Return host warnings and handled errors in your DTO. AutoCAD UNDO can reverse drawing edits; filesystem writes are outside it, and the gateway does not roll back earlier committed transactions after a later script error. Default namespaces: System, System.Collections.Generic, System.Linq, Autodesk.AutoCAD.ApplicationServices, Autodesk.AutoCAD.DatabaseServices, Autodesk.AutoCAD.EditorInput, Autodesk.AutoCAD.Geometry. Large result/stdout is stored as complete UTF-8 JSON before the 10 MiB plugin cutoff, with output_artifact path/bytes/SHA-256/preview when storage permits. The final MCP budget may store a second artifact of the full MCP result it received; inspect scope and upstrea…

NameTypeReqDescription
codestringyesC# code to execute

No output schema declared.

No examples provided.

dwg_switch_target ~306

Bind this gateway to one AutoCAD instance. A different bound instance requires pid:<PID> or id:acad-<year>-<PID>; an initial year must be unambiguous. verify=true (default) authenticates health and confirms the current drawing before allowing writes. verify=false permits reads only. Without rebind=true, selecting the same process preserves its drawing lifetime pin, including with verify=false. expected_document_id explicitly sets that pin, even without verification. Leaving a live confirmed instance requires rebind=true. A changed drawing must match an explicit expected_document_id or be intentionally accepted with rebind=true. Failed verification preserves the previous binding. Inspect health after opening/switching drawings before accepting a new pin. Unavailable in --read-only. Changes routing only; never activates, saves or closes drawings. Calls pending under an older binding are refused before sending.

NameTypeReqDescription
expected_document_idstring–Optional drawing lifetime pin observed from health. Sets the pin even with verify=false; verification must match it.
rebindboolean–Explicitly accept an intended instance or drawing change; default false. Does not bypass an expected_document_id mismatch.
targetstringyespid:<PID> or id:acad-<year>-<PID> for a different bound instance; an unambiguous AutoCAD year (2022-2027) is accepted for initial selection.
verifyboolean–Verify host and active drawing before allowing writes; default true.

No output schema declared.

No examples provided.

dwg_translate_and_rewrite ~355

PREFERRED translation tool. Writes translated text back to AutoCAD. Input is a JSON array of {id, new_text, render_mode?, width_policy?} where id matches a cluster from dwg_get_selected_texts. The tool handles everything automatically: anchor selection, fragment deletion, MText conversion (when safe), Unicode font style, and height scaling. Optional render_mode='mtext' lets the caller force a safe single DBText or top-level cluster to end up as MText. Simply provide the translated text for each cluster. If a cluster needs no translation (pure numbers, elevation markers), omit it - the tool will still apply the Unicode style to it. Per-cluster response includes an 'action' field: update | collapse | rewrite_in_block | style_only. final_text_height measures the resulting entity's stored height after normalization/scaling, or null if unavailable; style_only reports the anchor and block definitions use local units. Workflow: dwg_get_selected_texts -> translate each cluster -> dwg_translate_and_rewrite. Use dwg_collapse_and_rewrite (low-level) only for expert control or replaying call-log scenarios. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
finalScalenumber–Optional per-request final text-height multiplier. Default 0.80; clamped to [0.5, 0.9]. Values outside the range snap to the nearest bound; 0 or NaN fall back to default.
translationsstringyesJSON array: [{"id":0,"new_text":"translated text","render_mode":"mtext","width_policy":"preserve"}]

No output schema declared.

No examples provided.

dwg_update_texts ~180

Write new text to AutoCAD entities identified by handle. Input is a JSON array of {handle, new_text} objects. Returns per-item {handle, ok, error} - failures do not abort siblings. Handles are hex strings as returned by dwg_get_selected_texts. All items are written in a single transaction so one Ctrl+Z undoes the batch. If applyUnicodeStyle=true, the same call also reassigns successfully updated entities to the Unicode text style. Changes the current drawing; use AutoCAD UNDO immediately to reverse drawing edits before saving. Disabled in read-only mode.

NameTypeReqDescription
applyUnicodeStyleboolean–When true, apply the Unicode text style to successfully updated entities in the same tool call.
itemsstringyesJSON array: [{"handle":"2A4F","new_text":"..."}]

No output schema declared.

No examples provided.

dwg_zoom_extents ~21

Zoom to the extents of the drawing viewport.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

dwg_zoom_to_entity ~42

Zoom viewport to the extents of a specific drawing entity identified by handle.

NameTypeReqDescription
handlestringyesAutoCAD handle of the entity to zoom to.

No output schema declared.

No examples provided.

dwg_zoom_window ~49

Zoom viewport to a window defined by two corner points.

NameTypeReqDescription
corner1objectyesFirst corner of the zoom window.
corner2objectyesSecond corner of the zoom window.

No output schema declared.

No examples provided.

Install

How do I install the Bimwright DWG MCP server?

Bimwright DWG runs locally as a NuGet package, launched with dnx Bimwright.Dwg.Server@2.1.1 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

nuget · Bimwright.Dwg.Server

# add to Claude Code
claude mcp add bimwright-dwg-mcp -- dnx Bimwright.Dwg.Server@2.1.1 --yes
Common questions

What is the Bimwright DWG MCP server?

Bimwright DWG is an MCP server listed in the public MCP registry as io.github.bimwright/dwg-mcp. MCP gateway for AutoCAD 2022-2027: DWG text, layers, entities, views and automation. This page covers its NuGet package (Bimwright.Dwg.Server).

Is the Bimwright DWG MCP server safe to use?

Bimwright DWG scores 68 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Bimwright DWG MCP server expose?

Bimwright DWG exposes 45 tools: dwg_update_texts, dwg_batch_execute, dwg_get_current_target, dwg_open_drawing, dwg_create_arc, and 40 more. Their descriptions and schemas cost roughly 8,951 tokens of context every time the server is loaded.

Is the Bimwright DWG MCP server still maintained?

Bimwright DWG is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Bimwright DWG MCP server under?

Bimwright DWG declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.