Civil 3D MCP Server — TCCE edition
Provides tools for working inside Autodesk Civil 3D 2027 through the Civil 3D .NET API, enabling natural-language reading and drawing of geometry, road and alignment design, earthwork and volume computation, surface sampling, block/hatch/style management, and other Civil 3D operations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Civil 3D MCP Server — TCCE editiondraw a polyline from (0,0) to (10,10) to (20,0)"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Civil 3D MCP Server — TCCE edition
An MCP (Model Context Protocol) server that lets Claude work inside Autodesk Civil 3D 2027 through natural language: read and draw geometry, model roads, compute earthwork and manage styles.
This is TCCE's fork of barbosaihan/civil3d-mcp. It adds:
Support for Civil 3D 2027 (.NET 10).
Fixes so the project compiles.
Six new tool groups: blocks, hatches, road design, styles, earthwork, and surface sampling.
Status: the plugin compiles against the Civil 3D 2027 API. Tools marked (to verify) below have not yet been fully tested on a real drawing. Try them on a test drawing first.
Architecture
┌──────────────┐ stdio ┌───────────────────┐ TCP / JSON-RPC ┌────────────────────┐
│ Claude │ ◄───────► │ MCP Server (TS) │ ◄────────────────► │ Civil 3D Plugin │
│ (desktop) │ │ Node.js │ port 8080 │ (.NET 10, C#) │
└──────────────┘ └───────────────────┘ └─────────┬──────────┘
│
Civil 3D .NET APIMCP Server (TypeScript/Node.js): talks to Claude over the MCP protocol.
Civil 3D Plugin (C#): runs inside Civil 3D and calls the Civil 3D API.
Related MCP server: Civil3D MCP Server
Tools
Original tools
Tool | Actions |
| health |
| info, settings, save, undo, redo, list_object_types, get_selected |
| list, get, get_elevation, get_statistics, create, delete, add_points, compute_volume, sample_grid, get_elevations |
| list, get, delete, station_to_point, point_to_station |
| list, get, get_elevation, delete |
| list, get, rebuild |
| list_networks, get_network, get_pipe, get_structure, create_network, add_pipe, add_structure, check_interference |
| list, get, create, delete, list_groups, import |
| create_line, create_polyline, create_3d_polyline, create_text, create_mtext |
Some original actions still return planned:
In
civil3d_alignmentandcivil3d_profile: create. Usecivil3d_roadinstead.In
civil3d_surface: add_breakline, add_boundary, extract_contours. Usecivil3d_earthworkfor the first two.In
civil3d_corridor: corridor surfaces and volumes. Usecivil3d_earthworkinstead.
TCCE tools
Tool | What it does |
|
|
|
|
| Full road workflow: |
| Read and edit styles: |
|
|
Notes
Pads: the Civil 3D .NET API cannot create Grading objects.
create_padcomputes the daylight line geometrically by projecting the slope from each edge point, with ray fans at convex corners. It draws the pad edge and the daylight as 3D polylines (layerC-GRAD-PAD) and builds a TIN surface from them.Volumes: results are in drawing units³. The CY values assume feet.
cutFactormultiplies cut (swell) andfillFactormultiplies fill (compaction).Styles: collections are addressed by path, e.g.
SurfaceStylesorLabelStyles.AlignmentLabelStyles.MajorStationLabelStyles. Properties are addressed by path too, e.g.Text.HeightorGeneral.Visible. Copy a style (create_stylewithcopyFrom) before editing a shared one.
Suggested road workflow
list_styles → create_alignment_by_pis → set_alignment_design → create_surface_profile (EG)
→ create_profile_view → create_layout_profile → check_design → apply_superelevation
→ create_assembly → create_corridor (target EG) → earthwork corridor_surfaces (Top/Datum)
→ create_sample_lines → create_section_views → earthwork section_volumes (EG vs Datum)Requirements
Software | Version |
Civil 3D | 2027 (.NET 10). For 2025/2026 see the note under Build step 2 |
Node.js | LTS |
Git | any |
.NET SDK | 10.x ( |
Claude Desktop | current |
Setup
1. Build the MCP server
git clone https://github.com/JhulVF/Civil3d-mcp-tcce.git
cd Civil3d-mcp-tcce
npm install
npm run build2. Build the Civil 3D plugin
Copy the 5 Autodesk DLLs into C_References\. They are proprietary and are not included in the repository.
$repo = "$PWD"
$src = "C:\Program Files\Autodesk\AutoCAD 2027"
"accoremgd","AcDbMgd","acmgd","AecBaseMgd","AeccDbMgd" | % {
$f = Get-ChildItem $src -Recurse -Filter "$_.dll" -ErrorAction SilentlyContinue | Select-Object -First 1
Copy-Item $f.FullName "$repo\C_References\"; "OK $($f.Name)"
}
cd plugin\Civil3dMcpPlugin
dotnet buildThe plugin is written to plugin\Civil3dMcpPlugin\bin\Debug\net10.0-windows\Civil3dMcpPlugin.dll.
Civil 3D 2025/2026: these versions use .NET 8. In
Civil3dMcpPlugin.csproj, changenet10.0-windowstonet8.0-windowsand install the .NET 8 SDK.
3. Load the plugin in Civil 3D
Open Civil 3D with any drawing.
Type
NETLOADand select the DLL. Choose Always Load if prompted.Run
C3DMCPSTATUS. It should reportlistener running: True.
To load the plugin automatically, run APPLOAD → Startup Suite → add the DLL.
4. Configure Claude Desktop
Add the server to %APPDATA%\Claude\claude_desktop_config.json inside "mcpServers":
"civil3d": {
"command": "node",
"args": ["C:\\path\\to\\Civil3d-mcp-tcce\\build\\index.js"]
}Fully quit Claude (tray icon → Quit), reopen it and start a new task.
Updating
After pulling changes, rebuild both parts. Close Civil 3D first, because it locks the DLL.
git pull
npm run build
cd plugin\Civil3dMcpPlugin; dotnet buildThen reload the plugin with NETLOAD, quit and reopen Claude, and start a new task.
Environment variables
Variable | Default | Description |
|
| Plugin host |
|
| Plugin port |
|
| Connection timeout (ms) |
|
| Command timeout (ms) |
|
| debug, info, warn, error |
The plugin port is hard-coded to 8080 in PluginRuntime.cs. If another add-in (e.g. a Revit MCP) uses 8080, change Port there and set CIVIL3D_PORT to the same value in the Claude config.
Plugin commands
Command | Description |
| Start the TCP listener |
| Stop the TCP listener |
| Check listener status |
Changes from upstream
The plugin targets .NET 10 for Civil 3D 2027.
Added the missing
using Autodesk.Civil.ApplicationServices;to the Pipe, Surface, Alignment and Corridor command files.Replaced APIs that don't exist:
GetCorridorIds()→CorridorCollection.ActiveProduct?.Name→ActiveProduct.ToString().TinSurface.GetVolumeProperties→ a temporaryTinVolumeSurface.
Added the TCCE tools listed above.
License
MIT. See LICENSE. Original work by barbosaihan; TCCE additions © TCCE.
This server cannot be deployed
Maintenance
Related MCP Connectors
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Create projects, nodes, and tasks in UluP Spaces by conversation with Claude.
Revit MCP: lets AI read and edit your open model. Windows, best supported on Revit 2021+, free beta.
1
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Autodesk Civil 3D, allowing them to retrieve project data, create/modify/delete drawing elements, and execute code to automate Civil 3D operations.339MIT
- AlicenseNot gradedqualityDmaintenanceConnects Claude to a running Autodesk Civil 3D instance via COM automation to perform drawing, surface, alignment, COGO point, line, and corridor operations.9MIT
- AlicenseAqualityCmaintenanceEnables Claude to control AutoCAD—draw, edit, query, layers, blocks, annotations, screenshots, plot to PDF—using plain language.86MIT
- AlicenseNot gradedqualityDmaintenanceConnects Claude AI to AutoCAD for architectural design, enabling natural language to execute 684 commands. Automates drawing creation and editing through the Model Context Protocol.16 npm8MIT