CAD-MAX
A safety-first foundation for connecting an MCP client to AutoCAD, currently providing read-only drawing status and health/version/capabilities tools via a Python MCP server and localhost C# bridge.
README
CAD-MAX
CAD-MAX is a safety-first foundation for connecting an MCP client to AutoCAD through a Python MCP server and a localhost C# bridge.
Current version: 0.1.0. Phase 0 repository bootstrap is complete. Phase 1 is active; its plan/governance batch is accepted, and the plugin-bootstrap batch has not started.
Project governance / 项目治理
当前 Phase、下一允许动作和安全能力状态以
current status 顶部的 cad-max-current-authority 区块为唯一
authority。事实源职责、文档预算、验证证据和 CI 生命周期见
current docs。任何 CI 绿色都不表示真实 AutoCAD 或 DWG 能力已实现。
Current real completion
Implemented now:
- Python 3.12 package cad-max-mcp with stdio and Streamable HTTP transports.
- MCP tools cad_system for health, version, and capabilities.
- MCP tool drawing with the read-only status operation.
- NullCadBackend for machines without AutoCAD.
- AutoCadBridgeBackend with bounded localhost HTTP calls and structured failures.
- Shared versioned JSON contracts and matching Python/C# models.
- .NET 8 bridge dispatcher, localhost development Host, and test suite.
- A compilable net8.0-windows AutoCAD plugin boundary with no Autodesk references.
- Read-only, write-disabled, script-disabled, loopback-only defaults.
Not implemented:
- Real AutoCAD attachment.
- Reading a live drawing.
- Creating, modifying, saving, exporting, or validating DWG content.
- Any script, AutoLISP, arbitrary code, write, or remote-network tool.
CAD-MAX does not currently modify DWG files. When no bridge is configured, drawing status returns BACKEND_NOT_CONFIGURED. The development bridge has no AutoCAD command handlers, so an unknown command returns NOT_IMPLEMENTED rather than fake success.
Architecture
MCP client
|
| stdio or Streamable HTTP at 127.0.0.1:47771/mcp
v
Python cad-max-mcp
|
| localhost HTTP and versioned JSON
v
C# CadMax.Bridge.Host at 127.0.0.1:47770
|
| future AutoCAD Managed .NET API adapter
v
AutoCAD 2025 or 2026 plugin
|
v
2D DWG document context
Python owns the MCP protocol and client-facing validation. C# will own all future AutoCAD execution because Autodesk's supported managed API, application context, and document context belong inside the AutoCAD process. See Architecture and ADR 0001.
Supported baseline
- Windows 10 or 11 for the future AutoCAD bridge.
- Python 3.12.
- uv.
- .NET 8 SDK.
- AutoCAD 2025 or 2026 for future plugin integration.
- 2D DWG scope only.
AutoCAD 2024, AutoCAD LT, ZWCAD, GstarCAD, Tianzheng, SolidWorks, FreeCAD, 3D modeling, and cloud batch processing are explicitly outside this phase.
Local setup
Install Python 3.12, uv, and the .NET 8 SDK. Then run:
uv sync --frozen
uv run cad-max-mcp doctor
The doctor command emits structured JSON and returns exit code 0 when the safe base configuration is valid.
Start the MCP server
Stdio:
uv run cad-max-mcp serve --transport stdio
Streamable HTTP:
uv run cad-max-mcp serve --transport streamable-http
The HTTP endpoint is http://127.0.0.1:47771/mcp. Configuration rejects 0.0.0.0 and other non-loopback hosts.
PowerShell wrappers are also available:
.\scripts\run-mcp-stdio.ps1
.\scripts\run-mcp-http.ps1
Start the development bridge
The bridge does not require AutoCAD and exposes only health, capabilities, and a fail-closed command dispatcher:
dotnet run --project src/dotnet/CadMax.Bridge.Host
Endpoints:
- GET http://127.0.0.1:47770/health
- GET http://127.0.0.1:47770/v1/capabilities
- POST http://127.0.0.1:47770/v1/commands
No CAD command handler is registered in Phase 0.
Test and verify
Python:
uv sync --frozen
uv run ruff check .
uv run ruff format --check .
uv run mypy src/python
uv run pytest
.NET:
dotnet restore src/dotnet/CadMax.sln --locked-mode --configfile NuGet.Config
dotnet build src/dotnet/CadMax.sln --configuration Release --no-restore
dotnet test src/dotnet/CadMax.sln --configuration Release --no-build
Unified PowerShell verification:
.\scripts\verify.ps1
The script stops with a non-zero exit code on the first failed check.
MCP client configuration example
Replace the path with your local checkout:
{
"mcpServers": {
"cad-max": {
"command": "uv",
"args": [
"--directory",
"C:\\path\\to\\CAD-MAX",
"run",
"cad-max-mcp",
"serve",
"--transport",
"stdio"
]
}
}
}
More examples are in MCP client setup.
Configuration and safe defaults
Environment variables use the CAD_MAX_ prefix. The committed .env.example contains names and safe example values only. A real .env file is ignored and is not loaded implicitly by the application.
- readOnly is true.
- allowWrite is false.
- allowScript is false.
- httpHost is 127.0.0.1.
- allowedRoots is empty.
- bridgeUrl is unset.
Future file operations must normalize an absolute path and prove it is inside an allowed root. An empty allowlist grants no file access.
Why Autodesk DLLs are not in this repository
AcDbMgd.dll, AcMgd.dll, AcCoreMgd.dll, Autodesk SDK files, and AutoCAD redistributables are proprietary and installation-specific. They must be referenced from a licensed local AutoCAD installation through uncommitted machine-local MSBuild configuration. CI does not install AutoCAD and does not need these DLLs. See AutoCAD SDK setup.
Security warning
CAD automation can alter valuable drawings. Keep the HTTP services on loopback, keep writes and scripts disabled, never expose the development Host through a tunnel, and work on backed-up test drawings when a future write phase is enabled. See Security model.
Roadmap
The ordered delivery plan is in ROADMAP.md. Phase 1 will establish a real AutoCAD 2025/2026 connection and lifecycle boundary without enabling arbitrary DWG editing. The executable read-only scope and numbered work batches are in the Phase 1 AutoCAD Connection plan; that plan does not replace current authority.
License
MIT. See LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.