Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"dwg-mcp": {
"env": {
"DWG_MCP_HOST_FOLDERS": "${workspaceFolder}"
},
"args": [
"-y",
"@dmytro-prototypes/dwg-mcp-server"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
DWG MCP Server is an MCP server for inspecting AutoCAD DWG files with AI agents and assistants. It provides read-only access to drawing contents as queryable objects. Agents can open a DWG, inspect available types, fetch objects by handle, and query properties, scopes, and references.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y '@dmytro-prototypes/dwg-mcp-server' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked @dmytro-prototypes/dwg-mcp-server against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in design
MCP server for accessing Figma plugin console logs and screenshots via Cloudflare Workers or local mode
Official Miro MCP server - Supports context to code and creating diagrams, docs, and data tables.
AI image generation and editing with prompt optimization and quality presets. Powered by Nano Banana
Coinbase Design System - MCP Server
MCP Security Weekly
Get CVE alerts and security updates for Dwg Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
DWG MCP Server is an MCP server for inspecting AutoCAD DWG files with AI agents and assistants. It provides read-only access to drawing contents as queryable objects. Agents can open a DWG, inspect available types, fetch objects by handle, and query properties, scopes, and references.
Use DWG MCP Server from the MCP client of your choice.
The npm package launches the published Docker image.
The Docker launcher mounts $HOME by default. For drawings outside $HOME, set
DWG_MCP_DOCKER_MOUNTS.
If your MCP client, AI agent, or test harness does not support MCP roots, set
DWG_MCP_ALLOWED_ROOTS to the folders that should be accessible.
codex mcp add dwg-mcp \
--env DWG_MCP_ALLOWED_ROOTS="$HOME" \
-- npx -y @dmytro-prototypes/dwg-mcp-server
Codex does not currently provide MCP client roots to stdio MCP servers. Configure explicit allowed roots for the folders that contain your drawings.
claude mcp add --scope user --transport stdio dwg-mcp -- npx -y @dmytro-prototypes/dwg-mcp-server
Claude Code provides MCP roots, so no extra path variable is usually needed.
{
"mcpServers": {
"dwg-mcp": {
"command": "npx",
"args": ["-y", "@dmytro-prototypes/dwg-mcp-server"]
}
}
}
| Tool | Purpose |
|---|---|
dwg.list_roots | List folders available for DWG access. |
dwg.open_file | Open a DWG from an available folder and return a documentId. |
dwg.close_file | Close an opened document and release its worker process. |
dwg.list_types | List the globally supported DWG types known to the backend. |
dwg.list_file_types | List only the types that are present in a specific opened DWG. |
dwg.describe_type | Describe a supported type, including its properties and default projection. |
dwg.get_objects | Fetch specific objects by handle, preserving the requested order and reporting missing handles. |
dwg.query_objects | Query objects with filters, scopes, relation traversal, sorting, projection, and pagination. |
A typical flow is:
dwg.list_roots.dwg.open_file.dwg.list_types, dwg.list_file_types, or dwg.describe_type.dwg.get_objects or search the drawing with dwg.query_objects.dwg.close_file.In the packaged deployment, DWG MCP Server is a stdio MCP server implemented in Python and typically run inside a Linux container. The Python host exposes the MCP tools, validates file access, and manages document sessions.
Each dwg.open_file call starts a dedicated Rust dwg-worker process for that DWG and returns a host-side documentId.
All later file-scoped calls use that document id.
dwg.close_file terminates the worker for that session.
The Rust worker speaks newline-delimited JSON over stdin and stdout. When it opens a DWG through LibreDWG, it first builds an in-memory indexed document. That upfront indexing step is central to the design: the server pays the cost once when the file is opened, then answers later requests against the index instead of rescanning the DWG each time.
The indexed model stores object handles, kinds, type names, generic types, summary and full properties, and derived block, layout, and space membership. It also stores supported type metadata such as aliases, default projections, and property definitions.
When you request full object records, responses also include that derived membership under extendedData, including container block, layout, and model or paper space when known.
dwg.get_objects is direct lookup by handle.
dwg.query_objects runs over indices for handle, type, generic type, kind, exact property values, block, layout, and space, then applies filters,