With ArcGeekCAD MCP you can connect AutoCAD or Civil 3D (2025, 2026, or 2027) to an AI assistant, letting you draw, create layers, dimensions, text, TIN surfaces, contour lines, and more using natural language. In this tutorial we’ll use Claude Desktop, though it also works with OpenCode, Antigravity, Cursor, and Claude Code.
⚠️ Note: ArcGeekCAD MCP is in an experimental development phase. It’s functional, but may have bugs or change in upcoming versions. If you try it, your feedback is very welcome: share your experience, any errors you run into, or ideas in the comments section at the end of this article.
Prerequisites
Make sure you have the following:
- AutoCAD or Civil 3D 2025, 2026, or 2027 installed (it does not work on 2024 or earlier versions).
- Python 3.10 or higher, making sure to check “Add Python to PATH” during installation.
- Claude Desktop (or any MCP-compatible client, such as OpenCode or Claude Code).
Step 1: Copy the Plugin Folder
Copy the entire ArcGeekCAD-MCP folder to the root of your C: drive, so it looks like this:
C:\ArcGeekCAD-MCP\
mcp_server\autocad_mcp_server.py
plugin\MCPAutoCAD.dll
...
Important: keep that exact path. All the configuration in this tutorial is written for that location, so you can copy and paste without changing anything.
Step 2: Install the Python Dependency
Open PowerShell or CMD and run:
pip install mcp
Check that it installed correctly:
python -c "import mcp; print('mcp OK')"
Step 3: Load the Plugin in AutoCAD
- Open AutoCAD or Civil 3D.
- Type
NETLOADand press Enter. - Select the file
C:\ArcGeekCAD-MCP\plugin\MCPAutoCAD.dll. - If a security warning appears, choose “Always Load”.
- Type
MCPARCGEEKand press Enter.
You should see this in the command line:
[ArcGeekCAD] MCP server started on port 17272. Ready for Claude.
You’ll also see an ArcGeekCAD tab on the ribbon, with Start and Stop buttons for the server.
Tip: to have the plugin load automatically every time AutoCAD starts, use APPLOAD → the Contents button under “Startup Suite” → Add → select the DLL.
Step 4: Configure Claude Desktop
Open this file with Notepad (paste the path exactly as-is into the Windows File Explorer address bar):
%APPDATA%\Claude\claude_desktop_config.json
And paste this inside:
{
"mcpServers": {
"arcgeekcad": {
"command": "python",
"args": ["C:\\ArcGeekCAD-MCP\\mcp_server\\autocad_mcp_server.py"]
}
}
}
Note: if the file already had other servers configured, don’t overwrite it entirely; just add the "arcgeekcad": { ... } block inside the existing "mcpServers" object, separating it with a comma.

If editing the JSON by hand feels tricky (whether it’s your first time setting up an MCP or you already have other servers configured), you can paste this same code into any AI chat and ask it to help you add it or keep your existing servers intact; then grant it permission to make the changes.
Close Claude Desktop completely (from the icon next to the clock) and reopen it.
Startup Order (Important)
Always follow this order for the connection to work:
- Open AutoCAD.
- Run
NETLOAD→MCPARCGEEK(the server must be listening). - Open Claude Desktop.
If you open Claude before starting the server, you’ll see the error Could not connect. Run MCPARCGEEK in AutoCAD and try again.
Available Tools
Once connected, the AI can perform these operations directly in AutoCAD or Civil 3D:
- Info and navigation: ping, drawing info, layers, entities, zoom, measure.
- Layers: create, modify, delete, set current layer, linetypes.
- Drawing: line, polyline, circle, arc, rectangle, ellipse, polygon, spline, point.
- Annotation: text, mtext, linear/aligned/radial/diametric/angular dimensions.
- Editing: move, copy, rotate, scale, mirror, offset, fillet, chamfer, explode, delete, hatch.
- Text: list all text and find/replace across all layouts.
- Blocks: list and insert.
- Map 3D: import data, Object Data (OD), elevation from OD.
- Civil 3D: parcels, alignments, surfaces, elevation and slope.
- Civil 3D — TIN surfaces: create, points, breaklines, contours as data, boundaries, rebuild, extract contours, import DEM.
- Utilities: save, undo, run AutoLISP.
Compatibility with Other MCP Clients
ArcGeekCAD MCP isn’t limited to Claude Desktop. You can also connect from OpenCode or Claude Code.
OpenCode — edit %USERPROFILE%\.config\opencode\opencode.json (note: forward slashes here):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"arcgeekcad": {
"type": "local",
"command": ["python", "C:/ArcGeekCAD-MCP/mcp_server/autocad_mcp_server.py"],
"enabled": true
}
}
}
Claude Code (from the terminal):
claude mcp add arcgeekcad -- python "C:\ArcGeekCAD-MCP\mcp_server\autocad_mcp_server.py"
Automatic Installation (Optional)
If you’d rather not configure everything by hand, the folder includes two shortcuts that do exactly the same thing as Steps 2 and 4:
- INSTALAR.bat: checks Python, installs
mcp, and writes the configuration for the client you choose. - VER-CONFIG.bat: just displays the configuration blocks with the real paths on your computer, so you can copy them. It doesn’t change anything.
Common Issues
| Symptom | Solution |
|---|---|
Could not connect | You need to run MCPARCGEEK in AutoCAD |
ModuleNotFoundError: mcp | Run pip install mcp |
| Claude doesn’t see the tools | Close Claude Desktop completely (icon next to the clock) and reopen it |
NETLOAD fails to load | Your AutoCAD is 2024 or earlier — not compatible |
| Multiple Python installations | Use the full path in "command", e.g. "C:\\Users\\YOURUSER\\AppData\\Local\\Programs\\Python\\Python312\\python.exe" |
If AutoCAD Crashes
Don’t ask Claude to edit text by writing raw AutoLISP. Iterating over a collection with vlax-for and modifying it within the same loop (vla-put-textstring, vla-put-layer, deleting entities…) invalidates the iterator and causes AutoCAD to crash with a fatal error.
Ask it to use the plugin’s own tools instead (replace text, modify layer, delete entity), which do the work in two safe steps. If a crash does happen, the report is saved at %LOCALAPPDATA%\Autodesk\CER\.
Testing the Connection
With AutoCAD open and MCPARCGEEK already running, try asking the AI things like:
- Check: “Ping AutoCAD”.
- Layers: “List the layers in the drawing”.
- Drawing: “Draw a 100×50 rectangle on the WALLS layer”.
- Text: “List all the text in the drawing”.
- Civil 3D: “Create a TIN surface from these points and generate contour lines every meter”.
From here, the AI can draw, edit entities, manage layers, and work with Civil 3D TIN surfaces and alignments directly from the chat.
Uninstalling
- Close AutoCAD (a .NET plugin can’t be unloaded while it’s running).
- Remove it from the Startup Suite via
APPLOADif you added it there. - Delete the
"arcgeekcad"block from Claude’s JSON file. - Delete the
C:\ArcGeekCAD-MCPfolder.