CAD-MAX

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.

Category
Visit Server

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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured