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:
MCPHTTPSTARTThis 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." |
Recommended flow
Most drawing tasks follow the same order, because querying and updating objects both depend on knowing the schema first:
- Discover the object types you care about (
discoverAutoCADTypes) to learn which fields are queryable and writable. - Analyze — query objects and their properties (
queryAutoCADObjects), or get counts and statistics (aggregateAutoCADObjects). - 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
entitytype bylayer.nameand 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
discoverAutoCADTypesfortextto learn the queryable fields (unless it already has the schema). - It calls
queryAutoCADObjectsfortextfiltered to the TITLE layer. - It calls
manipulateDrawingCanvaswith theshowmeoperation 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"
}
]
}
}
