dwg-mcp
Health Uyari
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 9 GitHub stars
Code Gecti
- Code scan — Scanned 2 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
MCP gateway for AutoCAD 2022-2027 - text reading, spatial clustering, translation rewriting, and code execution.
dwg-mcp
English · Tiếng Việt · 简体中文 · 日本語
Drawing Translation Should Not Stop At Manual Copy-Paste
Construction and engineering drawings carry dense technical text — specifications, notes, dimensions, material callouts, legends. When those drawings arrive in a foreign language, translation is not optional. It is required before the project team can act.
The usual workflow is painful: select text one entity at a time, copy to a translator, paste back, fix the font (because SHX fonts cannot render Vietnamese or CJK), adjust the height, hope nothing shifted. Multiply by hundreds of text fragments per sheet, dozens of sheets per project.
dwg-mcp exists to compress that loop into two steps: select the text, let the AI agent read, translate, and rewrite it in place — with correct font, correct height, correct spatial grouping, and a single undo.
What dwg-mcp Is
dwg-mcp is a local MCP gateway for Autodesk AutoCAD 2022-2027 DWG workflows.
It has two parts:
- Bimwright.Dwg.Server: a .NET 8 MCP server launched by Claude Code, Cursor, OpenCode, or another stdio MCP client.
- Bimwright.Dwg.Plugin: version-specific AutoCAD add-in shells loaded inside AutoCAD, executing commands against the drawing database.
The agent talks MCP. The server talks to the plugin over a local wire: TCP NDJSON for AutoCAD 2022–2024, and a Named Pipe (loopback, avoids the firewall prompt) for 2025–2027. The plugin talks to the AutoCAD .NET API.
Everything stays on your machine.
Why It Matters
AI agents make it possible to describe "translate all selected text to Vietnamese" and have it happen — correctly — in the drawing. But intent alone is not enough. AutoCAD text operations require understanding spatial layout, fragment grouping, font limitations, MText vs DBText, block references, and height scaling.
dwg-mcp handles that complexity:
- Spatial clustering groups fragmented text into logical sentences (by block, row, column, paragraph).
- Automatic font handling creates a Unicode-capable text style and applies it — no more SHX question marks.
- Height scaling compensates for the different visual density of Latin vs CJK text.
- MText conversion upgrades single-line fragments into multi-line text when safe.
- Single undo wraps each operation in a transaction.
Usage Evidence
220 completed tool calls over 19 days of active use on production construction drawings. 98.2% success rate.
| Tool | Calls |
|---|---|
| get_selected_texts | ~100 |
| translate_and_rewrite | ~77 |
| send_code | ~28 |
| collapse_and_rewrite | ~11 |
| update_texts | ~10 |
| apply_unicode_style | ~4 |
Architecture
+---------------------------+
| AI Client |
| Claude / Cursor / OpenCode|
+---------------------------+
|
| stdio MCP
v
+---------------------------+
| Bimwright.Dwg.Server |
| .NET 8 / C# |
+---------------------------+
|
| TCP NDJSON (2022-2024) / Named Pipe (2025-2027)
| token auth
v
+---------------------------+
| Bimwright.Dwg.Plugin |
| AutoCAD 2022-2027 shells |
+---------------------------+
|
| LockDocument()
v
+---------------------------+
| AutoCAD .NET API |
| ObjectARX 2022-2027 |
+---------------------------+
See ARCHITECTURE.md for threading, discovery, and auth details.
Install
Download the client setup ZIP from GitHub Releases. It includes a self-contained MCP server and the AutoCAD plugin years that were compiled for that release (see manifest.json inside the ZIP). This machine’s v1.0.0 ZIP ships 2024 and 2027. Other years: build the plugin from source with that year’s AutoCAD SDK.
$tag = (Invoke-RestMethod https://api.github.com/repos/bimwright/dwg-mcp/releases/latest).tag_name
$zip = "$env:TEMP\DwgMcp.Setup-$tag-win-x64.zip"
$dir = "$env:TEMP\DwgMcp.Setup-$tag-win-x64"
Invoke-WebRequest "https://github.com/bimwright/dwg-mcp/releases/download/$tag/DwgMcp.Setup-$tag-win-x64.zip" -OutFile $zip
Expand-Archive $zip -DestinationPath $dir -Force
powershell -ExecutionPolicy Bypass -File "$dir\install.ps1" -WhatIf
powershell -ExecutionPolicy Bypass -File "$dir\install.ps1"
The installer:
- detects installed AutoCAD years (a year counts when its
acad.exeexists) and installs every packed year that matches;-Years 2024,2027forces an explicit list; - requires AutoCAD to be closed, and rolls every change back on error;
- deploys
%APPDATA%\Autodesk\ApplicationPlugins\Bimwright.Dwg.bundle\(removing stale bundles with the same ProductCode) and the server at the fixed path%LOCALAPPDATA%\Bimwright\Dwg\server\current\dwg-mcp.exe; - seeds
%LOCALAPPDATA%\Bimwright\Dwg\dwgmcp.config.jsonwith"toolsets": ["all"]on a fresh install — an existingtoolsetskey is kept; - wires every detected MCP client by default (
-Client <names>limits it,-Client noneskips it); config edits keep JSONC comments and get a<config>.bakbackup. The entry name isdwg-mcp.
Restart AutoCAD, then restart wired MCP clients to load dwg-mcp.
Updating: close AutoCAD and run the new ZIP's install.ps1 the same way — no need to uninstall first. The server path stays server\current\, so clients only need a restart.
Uninstall: uninstall.ps1 removes the bundle, the server copies, discovery files and caches under %LOCALAPPDATA%\Bimwright\Dwg\ (settings, config, logs and captures are kept; -Purge removes those too). Client config entries are never touched — remove the dwg-mcp entry yourself, or run install.ps1 -Uninstall -Client <names> first.
Do not dotnet tool install -g Bimwright.Dwg.Server — that package is not the supported client install.
Developer (local SDK): dotnet build the year you have, then pwsh scripts/install.ps1 -Years 2024 from the repo (copies that year’s bin output). NETLOAD remains available for Debug DLLs.
3. Wire up your MCP client
The installer already did this for detected clients (Step Client : lines in its summary). To wire by hand, add to your MCP client config (e.g., .mcp.json):
{
"mcpServers": {
"dwg-mcp": {
"command": "C:\\Users\\<user>\\AppData\\Local\\Bimwright\\Dwg\\server\\current\\dwg-mcp.exe",
"args": []
}
}
}
Pin a specific AutoCAD instance with a 4-digit target year:
{
"mcpServers": {
"dwg-mcp": {
"command": "C:\\Users\\<user>\\AppData\\Local\\Bimwright\\Dwg\\server\\current\\dwg-mcp.exe",
"args": ["--target", "2024"]
}
}
}
Use --read-only to strip write-capable toolsets (query/view/meta routing remain as configured). Use --toolsets all or an explicit list that includes the defaults you need (a custom list replaces the default set — e.g. query,modify,meta,view,annotation). Env: BIMWRIGHT_DWG_TOOLSETS=….
dwg_send_code is available by default via meta; MCPDISABLECODE disables C# execution for the session and MCPENABLECODE re-enables it. dwg_run_lisp remains registered for compatibility but refuses every request at both server and plugin. This build has no isolated LISP executor or approved-script trust mechanism. --read-only removes both tools.
Activity toasts are on by default. Finished tool calls update one card in the AutoCAD window corner: success, failure and capture counts. The latest result is the counter tooltip. The card's left edge is a vertical gradient, and the footer shows AutoCAD {year}. Click the card to open an allowlisted capture from the latest result; the card then closes. The close button only closes the card and stays transparent on hover. The card hides after an idle interval (10, 20, 30 or 60 seconds, default 20) and pauses while the pointer is over it. While AutoCAD is minimized or a modal dialog is open, counts are kept and the card is shown once when the frame is usable again. Toggle with MCPTOAST or open MCPSETTINGS. enableToast and toastIdleSeconds are stored in %LOCALAPPDATA%\Bimwright\Dwg\settings.json. BIMWRIGHT_ENABLE_TOAST=0 re-applies at every launch while set. Show branding is off until turned on in Settings and lasts only for the current AutoCAD session. Toasts never steal keyboard focus.
dwg_send_code accepts inline synchronous snippets only: async/await and #load directives are rejected before execution. Keep AutoCAD API calls on the calling thread; do not offload them to Task.Run or other threads. Return JSON-safe DTOs; AutoCAD/COM objects are rejected even when nested. LISP inspection is available through dwg_inspect_lisp: sources over 2,000,000 characters are reported uninspectable/dangerous, and the 200-finding display cap does not stop severity detection. Regex matching has a timeout; timed-out scans are reported as incomplete/dangerous, never clean.
Tools
Default startup exposes 41 tools: query (including dwg_inspect_lisp), modify, meta (including dwg_send_code/dwg_run_lisp), view, and default-on dwg_capture_view_image. Optional ToolBaker, annotation, block, dimension, export, and drawing toolsets, enabled through --toolsets, bring the backed MCP surface to 65 tools. The registered counts include dwg_run_lisp, which only returns a refusal; no scan verdict authorizes execution.
General CAD tools operate on the current active document in the selected AutoCAD target. Entity inputs and returned entity IDs use AutoCAD hex handles, such as 7F5AD, returned by selection, creation, or property tools. Creation, copy, offset, and modify responses identify generated or modified entities by hex handle.
Plan 2 query expansion is model-space only: dwg_query_entities, dwg_count_entities, dwg_select_by_layer, and dwg_select_by_type scan model space, not paper-space/layout entities. dwg_select_by_layer and dwg_select_by_type return handle lists for the caller; they do not change AutoCAD's pickfirst selection.
| Tool | Purpose |
|---|---|
dwg_get_drawing_info |
Read current drawing name, current layer, current space/layout, and unit scalars |
dwg_get_entity_properties |
Read properties for entities identified by AutoCAD hex handles |
dwg_list_layers |
List layers in the current drawing with color and state flags |
dwg_query_entities |
Query model-space entities by optional type, layer, color, limit, and geometry flags |
dwg_count_entities |
Count model-space entities by optional type, layer, or color filters |
dwg_select_by_layer |
Return model-space entity handle lists for one layer without changing pickfirst selection |
dwg_select_by_type |
Return model-space entity handle lists for one entity type without changing pickfirst selection |
dwg_get_selected_texts |
Read pickfirst selection, spatially cluster text entities, return grouped text with rewrite mode hints |
dwg_update_texts |
Write new text by handle in one transaction |
dwg_create_layer |
Ensure a layer exists without overwriting an existing layer's properties |
dwg_create_line |
Create one line in the current drawing space |
dwg_create_circle |
Create one circle in the current drawing space |
dwg_create_point |
Create one point and return its hex handle |
dwg_create_polyline |
Create a lightweight polyline from vertices and return its hex handle |
dwg_create_rectangle |
Create a rectangle polyline and return its hex handle |
dwg_create_arc |
Create one arc and return its hex handle |
dwg_create_ellipse |
Create one ellipse and return its hex handle |
dwg_change_layer |
Move entities identified by hex handles to another layer |
dwg_change_color |
Change entity color by AutoCAD color index |
dwg_move_entities |
Move entities identified by hex handles by a displacement vector |
dwg_rotate_entities |
Rotate entities identified by hex handles around a base point |
dwg_scale_entities |
Scale entities identified by hex handles around a base point |
dwg_copy_entities |
Copy entities identified by hex handles and return copied handles |
dwg_erase_entities |
Erase entities identified by hex handles |
dwg_offset_entities |
Offset curve entities and return generated handles |
dwg_translate_and_rewrite |
Preferred. Write translated text back: anchor, delete, MText, font, height |
dwg_apply_unicode_style |
Ensure Bimwright_Unicode style exists and apply to targets |
dwg_collapse_and_rewrite |
Low-level rewrite primitive with explicit geometric control |
dwg_list_available_targets |
List running AutoCAD targets discovered from v2 JSON and legacy 2024 discovery files |
dwg_get_current_target |
Show the pinned target year, if any |
dwg_switch_target |
Pin this server process to AutoCAD 2022 through 2027 |
dwg_batch_execute |
Run multiple internal wire commands as a logical batch |
dwg_send_code |
Execute a C# snippet against the AutoCAD .NET API (globals doc/db/ed, return value + captured stdout, cooperative 30s cancellation; MCPDISABLECODE/MCPENABLECODE toggle per session) |
dwg_run_lisp |
Compatibility endpoint only: all file/code/command inputs are refused with lisp_execution_blocked. No file read, plugin dispatch or execution from this tool. Use dwg_inspect_lisp for analysis only. |
dwg_inspect_lisp |
Static safety scan of a .lsp file or inline AutoLISP — flags process exec (startapp/shell), dangerous COM (WScript.Shell/XMLHTTP), persistence (acaddoc.lsp, registry writes), file deletion, staged (load …), obfuscation (eval/read). Returns verdict clean/caution/dangerous + findings. Pure local analysis; no execution, no AutoCAD needed; available even under --read-only. clean does not certify safety. Reports include execution_authorized=false and safety_assured=false. |
dwg_zoom_extents |
Zoom to the extents of the drawing viewport |
dwg_zoom_window |
Zoom viewport to a window defined by two corner points |
dwg_zoom_to_entity |
Zoom viewport to the extents of a specific drawing entity identified by handle |
dwg_capture_view_image |
Capture drawing graphics inside AutoCAD; return inline image, path, actual size, hash, document/viewport/camera metadata (default-on; path policy applies) |
dwg_inspect_view_region |
Choose a normalized rectangle on a capture; zoom, regenerate and return a fresh inline image with parent linkage |
dwg_restore_view |
Return to an earlier capture's camera and obtain a fresh inline image |
Visual reading: capture → inspect the image → choose a region → dwg_inspect_view_region → inspect again. Keep ancestor IDs and use dwg_restore_view to return to the overview. Source history lasts 30 minutes / 64 captures in one AutoCAD process. Region navigation initially supports one top-down, unrotated, orthographic model-space viewport; unsupported or stale sources are refused. Capture responses now include an MCP image block (8 MiB limit) alongside the existing JSON text. These tools change the visible camera and save images, including under --read-only; they do not edit geometry or save DWG. Installed-host acceptance is pending. See workflow, compatibility and acceptance.
Optional ToolBaker tools are exposed when the toolbaker toolset is enabled:
| Tool | Purpose |
|---|---|
dwg_list_baked_tools |
List accepted baked tools from the server-owned SQLite registry |
dwg_run_baked_tool |
Run an accepted baked tool by name |
dwg_list_bake_suggestions |
List detected repeated-workflow suggestions |
dwg_accept_bake_suggestion |
Validate, smoke-test, and accept a suggestion |
dwg_dismiss_bake_suggestion |
Dismiss or suppress a suggestion |
dwg_create_bake_issue_draft |
Generate a GitHub issue draft for a suggestion without submitting it |
Optional Annotation tools are exposed when the annotation toolset is enabled:
| Tool | Purpose |
|---|---|
dwg_create_text |
Create single-line text (DBText) with target height, rotation, and properties |
dwg_create_mtext |
Create multi-line text (MText) with formatting and width |
dwg_create_leader |
Create a multileader (MLeader) with optional leader text |
dwg_create_table |
Create an AutoCAD table with specified row/column text contents |
Optional Block tools are exposed when the block toolset is enabled:
| Tool | Purpose |
|---|---|
dwg_list_blocks |
List block definitions in the current drawing (read-only safe) |
dwg_get_block_attributes |
Read attributes of a block reference by handle (read-only safe) |
dwg_insert_block |
Insert a block reference, optionally importing from an external DWG |
dwg_set_block_attributes |
Set attributes of a block reference by handle |
dwg_explode_block |
Explode a block reference and return the handles of generated parts |
Optional Dimension tools are exposed when the dimension toolset is enabled:
| Tool | Purpose |
|---|---|
dwg_create_linear_dimension |
Create a rotated linear dimension with rotation degrees |
dwg_create_aligned_dimension |
Create an aligned dimension between two points |
dwg_create_radial_dimension |
Create a radial dimension for a circle or arc |
dwg_create_diameter_dimension |
Create a diametric dimension for a circle or arc |
Optional Export tools are exposed when the export toolset is enabled:
| Tool | Purpose |
|---|---|
dwg_export_dxf |
Export the drawing to a DXF file (guarded by output path policy) |
Optional Drawing tools are exposed when the drawing toolset is enabled:
| Tool | Purpose |
|---|---|
dwg_get_variables |
Read current values of drawing system variables |
dwg_set_system_variable |
Set the value of a drawing system variable |
dwg_save_drawing |
Save the current drawing to a file (requires confirm=true) |
dwg_purge_drawing |
Purge unused named objects (blocks, layers, styles) (supports dry_run=true, actual purge requires confirm=true) |
Output Path Policy
All export operations are strictly guarded by a path policy that enforces:
- Output paths must be absolute.
- File extensions must match the specific tool (e.g.,
.dxffor DXF export). - Existing files are not overwritten unless
overwrite_existing=trueis explicitly provided. - Writing to the repository root directory is rejected unless
allow_repo_output=trueis set.
Optional Toolsets and Read-Only Behavior
By default, only query, modify, meta, and view toolsets are enabled. You can opt-in to others using the --toolsets flag (e.g., --toolsets all or --toolsets query,modify,meta,view,annotation,block,dimension,export,drawing).
- Read-Only Mode (
--read-only): When read-only mode is active, all write-capable toolsets (modify,code,annotation,dimension,export, anddrawingwrite tools) are completely disabled. - Block Toolset Split: The
blocktoolset is split into read-only and write-capable tools. If--read-onlyis active,dwg_list_blocksanddwg_get_block_attributesare still available (safe read inspection), but the mutation/creation tools (dwg_insert_block,dwg_set_block_attributes,dwg_explode_block) are stripped. - View and Read-Only: The
viewtoolset stays registered in read-only mode (zoom tools anddwg_capture_view_image). Capture is marked read-only at the MCP schema level but still writes an image file under the path policy — treat paths carefully under--read-only. - Drawing Operations and Read-Only: The
drawingtoolset retainsdwg_get_variablesin read-only mode, but stripsdwg_set_system_variable,dwg_save_drawing, anddwg_purge_drawing. - Deferred Angular Dimensions: Note that only linear, aligned, radial, and diametric dimension types are currently supported. Angular dimensions are deferred and not yet implemented.
- Native View Capture:
dwg_capture_view_imageuses AutoCAD'sDocument.CapturePreviewImageAPI, with no desktop automation or DWG save. It rejects an active command or a document/camera change during capture. Optionalexpected_document_fingerprintbinds a subsequent capture to a prior result. Save the returned metadata alongside the image for a reading atlas; the tool itself writes only the image. Native output dimensions may differ slightly from the requested size. Camera metadata describes the active viewport, not a universal pixel-to-world mapping for tiled views or paper layouts. See capture contract and validation. - Deferred File Export Tools:
dwg_export_pdfanddwg_export_imageremain deferred; viewport capture does not configure or validate plotting.
Manual smoke checklist
In a scratch DWG:
- Run
dwg_get_drawing_info. - Run
dwg_list_layers. - Create
BIMWRIGHT_TESTwithdwg_create_layer. - Create a point, polyline, rectangle, arc, and ellipse on
BIMWRIGHT_TESTwithdwg_create_point,dwg_create_polyline,dwg_create_rectangle,dwg_create_arc, anddwg_create_ellipse; record the returned hex handles and reserve one curve, such as the arc or ellipse, for color and offset checks. - Query, count, and select those entities by layer and type with
dwg_query_entities,dwg_count_entities,dwg_select_by_layer, anddwg_select_by_type; confirm select tools return handle lists and do not change pickfirst selection. - Move, rotate, and scale non-reserved scratch entities with
dwg_move_entities,dwg_rotate_entities, anddwg_scale_entities. - Copy one non-reserved scratch entity with
dwg_copy_entities, then erase only that disposable copied temp entity withdwg_erase_entities. - Change color on the reserved curve with
dwg_change_color, then offset that curve withdwg_offset_entitiesand confirm the returned generated handles are hex handles. - Confirm the existing text translation workflow still works: select scratch text, run
dwg_get_selected_texts, then rewrite it withdwg_translate_and_rewrite.
Optional smoke — annotation / block / dimension
Enable the optional toolsets first (--toolsets … or --toolsets all). On a scratch DWG:
- Create text, mtext, leader, and table in a scratch DWG with
dwg_create_text,dwg_create_mtext,dwg_create_leader, anddwg_create_table. - List block definitions with
dwg_list_blocks. - Insert a known block from the drawing or from an absolute external DWG path with
dwg_insert_block. - Get and set block attributes with
dwg_get_block_attributesanddwg_set_block_attributes. - Explode a block reference with
dwg_explode_block. - Create linear, aligned, radial, and diameter dimensions with
dwg_create_linear_dimension,dwg_create_aligned_dimension,dwg_create_radial_dimension, anddwg_create_diameter_dimension, confirming linear projected-distance validation succeeds/rejects as expected.
Optional smoke — view / export / drawing
With view, export, and drawing toolsets enabled (as needed):
- Run
dwg_zoom_extents. - Run
dwg_zoom_windowwith coordinates. - Zoom to an entity with
dwg_zoom_to_entityusing a recorded hex handle. - Read drawing variables with
dwg_get_variables. - Export drawing to dxf with
dwg_export_dxf. - Run
dwg_purge_drawingwithdry_run=true, then withconfirm=true(on a copied/disposable DWG only). - Run
dwg_save_drawingwithconfirm=true(on a copied/disposable DWG only).
Migration from 0.1.x tool names
MCP tool names now use the dwg_ prefix. Raw plugin command names remain internal wire commands.
| 0.1.x MCP name | 1.0 MCP name |
|---|---|
get_selected_texts |
dwg_get_selected_texts |
update_texts |
dwg_update_texts |
translate_and_rewrite |
dwg_translate_and_rewrite |
apply_unicode_style |
dwg_apply_unicode_style |
collapse_and_rewrite |
dwg_collapse_and_rewrite |
send_code |
dwg_send_code |
run_lisp |
dwg_run_lisp |
Standard Workflow
1. User selects text entities in AutoCAD
2. Agent calls dwg_get_selected_texts -> receives clustered text groups
3. Agent translates each cluster
4. Agent calls dwg_translate_and_rewrite([{id, new_text}, ...])
Tool handles: anchor, delete, MText, font style, height. Done.
5. User runs REGEN if needed
Two steps from the agent's perspective: read, then write.
Supported AutoCAD Versions
| Version | ObjectARX release | Plugin TFM | Status |
|---|---|---|---|
| AutoCAD 2022 | 24.1 | net48 |
Shell scaffolded; release build requires local Autodesk refs |
| AutoCAD 2023 | 24.2 | net48 |
Shell scaffolded; release build requires local Autodesk refs |
| AutoCAD 2024 | 24.3 | net48 |
Default supported shell and normal solution build |
| AutoCAD 2025 | 25.0 | net8.0-windows |
Shell scaffolded; release build requires local Autodesk refs |
| AutoCAD 2026 | 25.1 | net8.0-windows |
Shell scaffolded; binary-compatible with 2025 but built as its own shell |
| AutoCAD 2027 | 26.0 | net10.0-windows |
Shell scaffolded; not binary-compatible with 2025/2026 |
The server and tests can pass without every AutoCAD shell being release-built. Shipping an AutoCAD year requires building that shell on a prepared machine with the matching Autodesk managed assemblies.
Security
dwg_send_code executes arbitrary C# with full access to AutoCAD and the local filesystem; it is for trusted agents, not a sandbox. dwg_run_lisp is blocked regardless of input, scanner verdict or MCPENABLECODE. No LISP wrapper is created or queued, and no trusted path or SECURELOAD setting is changed. Do not bypass a LISP refusal through C#, batch or ToolBaker. dwg_inspect_lisp is static triage, not antivirus or machine-wide malware protection; clean means no known pattern matched, not safe. All reports set execution_authorized=false and safety_assured=false. Update both server and plugin and restart their processes to apply the restriction; old binaries retain their old behavior.
The security model relies on:
- Local-only transport — TCP on 127.0.0.1 for AutoCAD 2022–2024, loopback Named Pipe for 2025–2027, no remote access.
- Per-session auth token — rotates on each plugin start, verified per request.
- Session kill-switch —
MCPDISABLECODE/MCPENABLECODEcontroldwg_send_code. LISP remains blocked even after enabling code or restarting the listener. - Timeout boundary — script execution runs inline on the document-lock thread with cooperative 30s cancellation.
- Trusted agent assumption — only use with MCP clients you control.
Do not expose the plugin port to the network.
Project Structure
dwg-mcp/
├── src/
│ ├── Bimwright.Dwg.sln
│ ├── server/ # .NET 8 MCP server (global tool)
│ ├── shared/ # Handlers, clustering, rewriting, unicode
│ ├── plugin-acad22/ # AutoCAD 2022 shell (.NET 4.8)
│ ├── plugin-acad23/ # AutoCAD 2023 shell (.NET 4.8)
│ ├── plugin-acad24/ # AutoCAD 2024 shell (.NET 4.8)
│ ├── plugin-acad25/ # AutoCAD 2025 shell (.NET 8)
│ ├── plugin-acad26/ # AutoCAD 2026 shell (.NET 8)
│ └── plugin-acad27/ # AutoCAD 2027 shell (.NET 10)
├── tests/ # xUnit
├── scripts/ # install/uninstall PowerShell
├── lib/acad24/ # Notes only; Autodesk DLLs are never committed
└── .github/workflows/ # CI
The bimwright family
Open-source tools connecting AI assistants to BIM and CAD applications.
The name bimwright combines BIM with wright, an old word for a maker or builder—as in shipwright.
- rvt-mcp — Autodesk® Revit®
- dwg-mcp — Autodesk® AutoCAD®
- nwd-mcp — Autodesk® Navisworks®
- ipt-mcp — Autodesk® Inventor®
- bim-wiki — Vietnamese-first BIM knowledge base
Disclaimer
AutoCAD and Autodesk are registered trademarks of Autodesk, Inc. bimwright is an independent open-source project and is not affiliated with, sponsored by, or endorsed by Autodesk, Inc.
License
Third-party notices: THIRD_PARTY_NOTICES.md
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi