trackmcp
Back to directory
barbosaihan

civil3d-mcp

View on GitHub

AI-Powered Civil 3D Modeling

26 stars TypeScriptOthers Updated Aug 24, 2026

Documentation

Civil 3D MCP Server — Code Execution Architecture

An MCP server that enables AI assistants to write and execute C# code directly inside Autodesk Civil 3D. Instead of fixed tools, the AI generates code that runs with full API access.

Architecture

code
┌─────────────────┐     stdio      ┌──────────────────┐     TCP/JSON-RPC    ┌──────────────────┐
│   AI Assistant   │ ◄────────────► │  MCP Server (TS) │ ◄──────────────────► │  Civil 3D Plugin │
│ (Claude, Cline)  │               │   3 meta-tools    │     port 8080       │  Roslyn Engine   │
└─────────────────┘               └──────────────────┘                      └──────────────────┘
                                         │                                         │
                                    Skills Library                           C# Code Execution
                                   (.skill.md files)                      (full Civil 3D API)

3 Meta-Tools

ToolPurposeSafety
`civil3d_execute`Execute C# code with write access (transaction committed)⚠️ Modifies drawing
`civil3d_query`Execute C# code read-only (no commit)✅ No side effects
`civil3d_skills`Browse/search/read code skill templates✅ Metadata only

How It Works

1. AI reads a skill → Gets a documented C# code template

2. AI adapts the code → Fills in parameters, combines patterns

3. AI sends code → Via `civil3d_execute` or `civil3d_query`

4. Roslyn compiles + runs → Inside Civil 3D with full API access

5. Results return as JSON → Back to the AI

Example Interaction

code
User: "What surfaces are in my drawing?"

AI: Uses civil3d_query with:
  var surfaces = new List();
  foreach (ObjectId id in CivilDoc.GetSurfaceIds()) {
    var s = Transaction.GetObject(id, OpenMode.ForRead) as TinSurface;
    surfaces.Add(new { s.Name, s.Layer });
  }
  return surfaces;

Result: [{ "Name": "EG", "Layer": "C-TOPO-EG" }, ...]

Skills Library

Skills are documented C# code templates in `skills/`:

code
skills/
├── surfaces/           # Surface operations
├── alignments/         # Alignment + station/offset
├── points/             # COGO points
├── geometry/           # Lines, polylines, text
├── drawing/            # Drawing info
└── workflows/          # Complex multi-object operations

Script Globals

Code executed via `civil3d_execute` or `civil3d_query` has access to:

GlobalTypeDescription
`Document``Document`Active AutoCAD document
`CivilDoc``CivilDocument`Active Civil 3D document
`Database``Database`Document database
`Transaction``Transaction`Active transaction
`Editor``Editor`Document editor

All Civil 3D namespaces are auto-imported.

Setup

1. Build MCP Server

bash
npm install && npm run build

2. Build Plugin

bash
# Copy DLLs from Civil 3D to C_References/ (see C_References/README.md)
cd plugin/Civil3dMcpPlugin
dotnet build

3. Load in Civil 3D

code
NETLOAD → select Civil3dMcpPlugin.dll
C3DMCPSTATUS → verify running

4. Configure AI

json
{
  "mcpServers": {
    "civil3d": {
      "command": "node",
      "args": ["/path/to/civil3d-mcp/build/index.js"]
    }
  }
}

Environment Variables

VariableDefaultDescription
`CIVIL3D_HOST``localhost`Plugin host
`CIVIL3D_PORT``8080`Plugin port
`CIVIL3D_COMMAND_TIMEOUT``120000`Execution timeout (ms)
`LOG_LEVEL``info`Log level

Security

The Roslyn sandbox blocks:

  • Process execution (`Process.Start`)
  • File deletion (`File.Delete`)
  • Network requests (`HttpClient`, `Sockets`)
  • Registry access
  • Dynamic assembly loading

All Civil 3D API operations are allowed.

License

MIT

Frequently asked questions

What is civil3d-mcp?

civil3d-mcp is AI-Powered Civil 3D Modeling

How do I install civil3d-mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is civil3d-mcp open source?

Yes — it is hosted on GitHub at https://github.com/barbosaihan/civil3d-mcp and has 26 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP