Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
MCP gateway for AutoCAD 2022-2027: DWG text, layers, entities, views and automation.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"dwg": {
"command": "dnx",
"args": [
"Bimwright.Dwg.Server",
"--yes"
]
}
}
}Run this in your terminal
claude mcp add dwg -- dnx Bimwright.Dwg.Server --yesPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"dwg": {
"command": "dnx",
"args": [
"Bimwright.Dwg.Server",
"--yes"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"dwg": {
"type": "stdio",
"command": "dnx",
"args": [
"Bimwright.Dwg.Server",
"--yes"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account bimwright, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (2.1.1) reached the registry 7 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need .NET on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, sync. labs
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Lipsync videos, dub them into other languages, make talking videos and open sync. Studio.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
dwg-mcp
English · Tiếng Việt · 简体中文 · 日本語
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.
dwg-mcp is a local MCP gateway for Autodesk AutoCAD 2022-2027 DWG workflows.
It has two parts:
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.
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:
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 |
+---------------------------+
| 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.
Download the client setup ZIP from GitHub Releases. It includes a self-contained MCP server and release-specific AutoCAD plugins. Check packedAutocadYears in the downloaded ZIP's manifest.json and its bundle PackageContents.xml for the included years; check the release notes for years verified in a running AutoCAD host. Source shells cover 2022–2027, while packaged plugins and tested host years depend on the release. For a year absent from the package, 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 Invoke-WebRequest "https://github.com/bimwright/dwg-mcp/releases/download/$tag/DwgMcp.Setup-$tag-win-x64.zip.sha256" -OutFile "$zip.sha256" $expected = ((Get-Content "$zip.sha256" -Raw).Trim() -split '\s+')[0] if ($expected -notmatch '^[a-fA-F0-9]{64}$' -or (Get-FileHash $zip -Algorithm SHA256).Hash -ne $expected) { throw 'Setup ZIP checksum mismatch' } if (Test-Path -LiteralPath $dir) { throw 'Use a fresh extraction directory; existing files were preserved.' } Expand-Archive $zip -DestinationPath $dir
powershell -ExecutionPolicy Bypass -File "$dir\install.ps1" -WhatIf -Years 2024 -Client none -SetupZip $zip -ReleaseTag $tag powershell -ExecutionPolicy Bypass -File "$dir\install.ps1" -Years 2024 -Client none -SetupZip $zip -ReleaseTag $tag
The installer:
acad.exe exists) and installs every packed year that matches; -Years 2024,2027 forces an explicit list;%APPDATA%\Autodesk\ApplicationPlugins\Bimwright.Dwg.bundle\ (removing stale bundles with the same ProductCode) and the server at the fixed path %LOCALAPPDATA%\Bimwright\dwg-mcp\server\current\dwg-mcp.exe;%LOCALAPPDATA%\Bimwright\dwg-mcp\dwgmcp.config.json with "toolsets": ["all"] on a fresh install — an existing toolsets key is kept;-Client (none skips edits; omission still selects detected clients). Use an explicit scope in both preview/apply. Routes without a verified CLI recovery path, currently Grok, stop before replacement. Config edits keep JSONC comments; existing .bak files are preserved and a unique backup is created instead. Existing Codex entries receive command-only repoints so args/env/other TOML tables survive. The entry name is dwg-mcp.Restart AutoCAD, then restart wired MCP clients to load dwg-mcp.
Updating: keep the exact reviewed release tag, verify its ZIP/sidecar and complete extracted manifest, then preview/apply the same explicit year/client scope. Close AutoCAD and affected clients first. The server path stays server\current\. The installer preserves settings, ToolBaker data and captures. Ambiguous legacy/current roots stop without merging; a committed DWG migration marker permits retaining both separately. Recovery covers caught errors; process crashes/power loss and actual client reconnect still require separate verification. Uninstall is not upgrade rollback.
Uninstall: uninstall.ps1 removes the bundle, the server copies, discovery files and caches under %LOCALAPPDATA%\Bimwright\dwg-mcp\ (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 first.
NuGet (gateway only): dotnet tool install --global Bimwright.Dwg.Server --version 2.1.2 installs the framework-dependent gateway and requires .NET 8. Install the matching AutoCAD plugins from the Setup ZIP separately; the NuGet package does not install plugins.
Claude Desktop: download dwg-mcp-desktop-2.1.2.mcpb and its checksum from the same release, then install it through Settings → Extensions → Advanced settings. It launches the exact gateway executable supplied by the 2.1.2 Setup ZIP; it does not install the gateway or plugins and does not fall back to a NuGet/PATH copy. An executable override must have the same SHA-256.
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.
Check the selected clients' Client : summary lines. The example above uses -Client none, so wiring remains a separate step: preview/apply the intended client selection or wire by hand in that client's supported config (e.g., .mcp.json):
{
"mcpServers": { "dwg-mcp": { "command": "C:\\Users\\ \\AppData\\Local\\Bimwright\\dwg-mcp\\server\\current\\dwg-mcp.exe", "args": [] } } }
Select an initial AutoCAD instance by PID (or an unambiguous 4-digit year):
{
"mcpServers": { "dwg-mcp": { "command": "C:\\Users\\ \\AppData\\Local\\Bimwright\\dwg-mcp\\server\\current\\dwg-mcp.exe", "args": ["--target", "pid:12345"] } } }
Before writes, call dwg_list_available_targets and dwg_switch_target(target="pid: "). The default verify=true authenticates the selected process and confirms the active drawing; verify=false permits reads only. --target controls initial selection and does not authorize writes. A year or automatic selection matching multiple instances returns AMBIGUOUS_TARGET.
Once bound, changing instances requires pid: or id:acad- - ; leaving a live confirmed target also requires rebind=true. Reselecting the same process with verify=false removes write confirmation. It retains the previous expected drawing lifetime ID unless rebind=true resets it or an explicit expected_document_id replaces it. After opening or switching drawings, inspect dwg_health().target; confirming a different drawing requires its matching expected_document_id or rebind=true. Failed verification preserves the previous binding, and pending calls under an older binding are refused before sending. Update gateway and plugin together: legacy plugins cannot be verified for writes, and new plugins refuse unguarded writes from old gateways.
With --read-only, dwg_switch_target is unavailable and direct calls are refused. Start the gateway with --read-only --target pid: (or --target id:acad- - ), then check health and the current target. On TARGET_LOST or TARGET_CHANGED, call dwg_list_available_targets and restart the gateway with the intended explicit --target. A lost binding never selects another instance automatically.
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. Use --enable-send-code / --disable-send-code (JSON enableSendCode; e
Only the beginning is shown; read the rest in the repo