Share

Autodesk AutoCAD and Civil 3D MCP Server

The AutoCAD and Civil 3D MCP server is a Model Context Protocol (MCP) server that lets Autodesk Assistant inspect and modify the drawing you have open in AutoCAD or Civil 3D. It runs locally inside the application, so Assistant works against your live drawing session — the same objects, layers, styles, and selection you see on screen.

With the server connected, Assistant can discover object types and their schemas, query and analyze objects, compute statistics, change what is selected or in view, modify object properties, check a drawing against a template for compliance, and query or modify Civil 3D styles.

At a glance

Best for Querying, analyzing, navigating, and modifying objects in an open AutoCAD or Civil 3D drawing, checking drawings against a template, and working with Civil 3D styles using natural language.
Access Read-only, with write tools in Civil 3D
Availability AutoCAD and Civil 3D on Windows
Supported AI client Autodesk Assistant

Requirements

  • AutoCAD or Civil 3D on Windows.
  • Autodesk Assistant open, with Tech Preview turned on.

How it works

The server runs inside Autodesk Assistant in AutoCAD or Civil 3D on your machine and exposes its tools over local HTTP. It does not run in the cloud and does not require a remote endpoint.

  • Scope: the active drawing in your running session. Queries default to your current canvas selection, and switch to the whole drawing when you ask for it explicitly.
  • Available tools: the tool set depends on the host application. Civil 3D exposes the full tool set, including object modification and Civil 3D style operations. AutoCAD exposes the read and analysis tools. See Tools and language support.

Start here (2–5 minutes)

1) Start the server

In AutoCAD or Civil 3D, run the command:

MCPHTTPSTART

This finds an available port in the range 5001–5050, starts the server, and displays the server URL (for example, http://localhost:5001/mcp) along with the enabled tools and configuration status.

To stop the server, run MCPHTTPSTOP. To view the current tool configuration, run MCPCONFIG.

2) Verify it works

Ask Assistant to list the drawing's layers, or to select something in the drawing:

"What layers are in this drawing?"

"Show me all the text on the TITLE layer."

Success looks like Assistant returning real data from your open drawing, or your AutoCAD/Civil 3D view zooming to and selecting the objects it named.

What you can do

Capability Natural language example
Analyze the drawing "How many objects are on each layer?"
Find objects "List every polyline longer than 100 units."
Navigate and select "Zoom to and select all the arcs."
Modify objects (Civil 3D) "Set the height of all Standard-style text to 10."
Check compliance "Compare this drawing to our company template and list the differences."
Work with Civil 3D styles (Civil 3D) "Turn off the boundary display component on the surface style."

Most drawing tasks follow the same order, because querying and updating objects both depend on knowing the schema first:

  1. Discover the object types you care about (discoverAutoCADTypes) to learn which fields are queryable and writable.
  2. Analyze — query objects and their properties (queryAutoCADObjects), or get counts and statistics (aggregateAutoCADObjects).
  3. Act — change the view or selection (manipulateDrawingCanvas), modify object properties (updateAutoCADObjects), or adjust Civil 3D styles (civil3dQueryModifyStyles).

See Tools and language support for the full tool reference.

Examples

Example 1: Count objects by layer

Natural language query:

"How many objects are on each layer in this drawing?"

What happens:

  • Assistant recognizes this as a counting request and calls aggregateAutoCADObjects (not a plain query).
  • It groups the entity type by layer.name and orders by count.
  • It reports the per-layer totals.

Behind the scenes (tool call):

{
  "name": "aggregateAutoCADObjects",
  "arguments": {
    "operations": [
      {
        "type": "entity",
        "aggregations": [
          { "type": "count", "groupBy": "layer.name", "orderBy": "count" }
        ]
      }
    ],
    "context": "drawing"
  }
}

Example 2: Find and show text on a layer

Natural language query:

"Show me all the text on the TITLE layer."

What happens:

  • Assistant calls discoverAutoCADTypes for text to learn the queryable fields (unless it already has the schema).
  • It calls queryAutoCADObjects for text filtered to the TITLE layer.
  • It calls manipulateDrawingCanvas with the showme operation to zoom to and select those objects in the drawing.

Behind the scenes (tool call):

{
  "name": "queryAutoCADObjects",
  "arguments": {
    "queries": [
      {
        "type": "text",
        "fields": ["textString", "height", "layer.name"],
        "filter": "layer.name = TITLE"
      }
    ]
  }
}

Was this information helpful?