Skip to main content
Glama
SantosSjba

Civil 3D MCP Server

by SantosSjba

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLog levelinfo
CIVIL3D_HOSTNoPlugin hostlocalhost
CIVIL3D_PORTNoPlugin port8080
CIVIL3D_COMMAND_TIMEOUTNoExecution timeout in milliseconds120000

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
civil3d_healthA

Check Civil 3D MCP connection health. Returns plugin status, Civil 3D version, active drawing info, and queue state. Call this first to verify Civil 3D is running and the plugin is loaded.

civil3d_statusA

Get real-time status of the Civil 3D plugin operation queue and any in-progress task. Use during long operations (corridor rebuild, surface build) to check elapsed time without blocking the current operation.

civil3d_discoverA

Discover and inventory Civil 3D drawing objects without writing C# code. Returns structured JSON for surfaces, alignments, profiles, corridors, pipe networks, sites, parcels, COGO points, sample lines, and styles. Use this FIRST to understand what exists in the drawing before executing code.

civil3d_auditA

Read the audit log of Civil 3D MCP operations. Shows timestamp, method, description, success/failure, and duration for each operation. Useful for debugging and traceability.

civil3d_securityA

Read the Civil 3D MCP security policy: sandbox mode (strict/professional/unlocked), allowed file export paths, and whether destructive operations require confirmed: true. Call this before file exports or destructive writes.

civil3d_executeA

Execute C# code in Civil 3D with write access. The code runs inside a committed transaction. Available globals: Document/Doc, CivilDoc/Civil, Database, Transaction/Tr, Editor. Helpers: GetSurfaceByName, GetAlignmentByName, ListSurfaces, ListAlignments, ToRef, ToPoint. All Civil 3D namespaces are auto-imported. Return a value to get results back as JSON. Use civil3d_session for multi-step workflows. Use civil3d_command for native C3D commands.

civil3d_queryA

Execute C# code in Civil 3D in READ-ONLY mode (no changes saved). Available globals: Document/Doc, CivilDoc/Civil, Database, Transaction/Tr, Editor. Helpers: GetSurfaceByName, GetAlignmentByName, ListSurfaces, ListAlignments, ListCogoPoints. All Civil 3D namespaces are auto-imported. Return a value to get results as JSON. Use this for querying data: listing objects, getting properties, analyzing surfaces, etc.

civil3d_commandA

Execute a native Civil 3D or AutoCAD command string (same as typing in the command line). Use for operations not easily done via C# API: CREATECORRIDOR, EXPORTLANDXML, etc. Prefer civil3d_execute/civil3d_query when the C# API is sufficient.

civil3d_sessionA

Manage multi-step Civil 3D script sessions with a shared transaction. Use 'begin' to start, 'execute' for each script step (no commit), 'commit' to save all changes, or 'abort' to discard. Useful for complex workflows that need multiple code steps in one transaction.

civil3d_skillsA

Browse and read Civil 3D code skills (documented C# code templates). Use 'list' to see available skills, 'search' to find by keyword, 'get' to read the full skill with code template. Skills are pre-built C# patterns you can adapt and execute via civil3d_execute or civil3d_query.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SantosSjba/mcp-to-c3d'

If you have feedback or need assistance with the MCP directory API, please join our Discord server