### Example Conversations Source: https://github.com/sacred-g/civil3d-mcp/blob/main/README.md Illustrative examples of user queries and the corresponding MCP tools to address them. ```APIDOC ## Example Conversations > *"What alignments are in this drawing and how long is each one?"* > → `civil3d_alignment` → returns names, station ranges, lengths > *"Run a full QC check on the corridor and give me a report."* > → `civil3d_workflow_corridor_qc_report` → checks targets, regions, rebuild errors, exports report > *"Trace the flow path from coordinate (5000, 3200) and estimate the peak runoff using the Rational Method."* > → `civil3d_hydrology_watershed_runoff_workflow` → delineates watershed, calculates Q=CiA > *"Create a Plan/Profile sheet set for alignment 'Mainline' and export to PDF."* > → `civil3d_plan_profile_sheet_create` → `civil3d_workflow_plan_production_publish` > *"Size the storm drain network for a 10-year storm and check all pipe velocities."* > → `civil3d_pipe_network_size` → `civil3d_pipe_network_hydraulics` > *"Calculate cut/fill volumes between the existing ground and proposed surface."* > → `civil3d_surface_volume_calculate` → `civil3d_surface_volume_report` ``` -------------------------------- ### civil3d_pipe_design.automate_profile_view Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Automates the setup of gravity-pipe profile views. Requires the network name and alignment name. ```APIDOC ## civil3d_pipe_design.automate_profile_view ### Description Automates gravity-pipe profile-view setup. ### Parameters #### Request Body - **action** (string) - Required - `"automate_profile_view"` - **networkName** (string) - Required - Network name - **alignmentName** (string) - Required - Alignment name ### Request Example { "action": "automate_profile_view", "networkName": "MainStreet", "alignmentName": "Centerline" } ### Response #### Success Response (200) - **result** (object) - Details of the automated profile view setup. ``` -------------------------------- ### Get detailed properties of a specific surface Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Use the `get` action with a surface name to retrieve comprehensive details about a specific surface, including its style, layer, statistics, and bounding box. ```json { "action": "get", "name": "SurfaceName" } ``` -------------------------------- ### Clone and Build Node Side Source: https://github.com/sacred-g/civil3d-mcp/blob/main/README.md Clone the repository, install Node.js dependencies, and build the Node side of the project. This is the first step in setting up the Civil3D-MCP project. ```bash git clone https://github.com/Sacred-G/Civil3D-mcp.git cd Civil3D-mcp npm install npm run build ``` -------------------------------- ### Get Corridor Surfaces Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Lists all surfaces that have been generated by a specified corridor. Requires the corridor name. ```json { "action": "get_surfaces", "name": "string" } ``` -------------------------------- ### Sample Elevations Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Samples elevations along a profile at regular intervals. Optional start and end stations can be specified. ```APIDOC ## civil3d_profile sample_elevations ### Description Returns elevations at regular intervals along the profile. ### Parameters #### Query Parameters - **action** (string) - Required - `"sample_elevations"` - **alignmentName** (string) - Required - Parent alignment name - **profileName** (string) - Required - Profile name - **startStation** (number) - Optional - Default: profile start - **endStation** (number) - Optional - Default: profile end - **interval** (number) - Required - Sampling interval in drawing units ### Response #### Success Response (200) (Response structure not explicitly defined in source, but would typically be an array of station-elevation pairs) ### Response Example ```json [ {"station": 0.0, "elevation": 55.0}, {"station": 10.0, "elevation": 55.1}, {"station": 20.0, "elevation": 55.3} ] ``` ``` -------------------------------- ### civil3d_assembly get Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves detailed properties of a specific assembly, including its subassemblies. ```APIDOC ## civil3d_assembly get ### Description Returns detailed properties of an assembly including its subassemblies. ### Method APICALL ### Endpoint civil3d_assembly ### Parameters #### Query Parameters - **action** (string) - Required - `"get"` - **name** (string) - Required - Assembly name ### Response #### Success Response (200) - **name** (string) - Name of the assembly. - **handle** (string) - Unique identifier for the assembly. - **style** (string) - The style of the assembly. - **subassemblies** (array) - List of subassemblies within the assembly. - **name** (string) - Name of the subassembly. - **side** (string) - Side of the assembly the subassembly is on (`"left"`, `"right"`, `"none"`). - **className** (string) - The class name of the subassembly. - **parameters** (object) - Key-value pairs of subassembly parameters. - **usedByCorridors** (array) - List of corridors that use this assembly. ### Response Example ```json { "name": "string", "handle": "string", "style": "string", "subassemblies": [ { "name": "string", "side": "left" | "right" | "none", "className": "string", "parameters": { "key": "value" } } ], "usedByCorridors": ["string"] } ``` ``` -------------------------------- ### Get Specific Profile Details Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Fetches detailed information for a single profile, including its entities and properties. Requires alignment and profile names. ```json { "action": "get", "alignmentName": "", "profileName": "" } ``` -------------------------------- ### Create COGO Points Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Creates one or more COGO points with specified coordinates and descriptions. Point numbers can be auto-assigned or started from a given number. ```python civil3d_point.create(points=[{"x": 100, "y": 200, "z": 50, "description": "Corner"}], startNumber=5) ``` -------------------------------- ### Sample Elevations Along Profile Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Obtains elevation data at regular intervals across a profile. Optional start and end stations can be specified; otherwise, the profile's full range is used. Requires alignment, profile, and sampling interval. ```json { "action": "sample_elevations", "alignmentName": "", "profileName": "", "interval": } ``` -------------------------------- ### Get Corridor Details Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Fetches detailed properties for a specific corridor, including its baselines, regions, and surfaces. Requires the corridor name. ```json { "action": "get", "name": "string" } ``` -------------------------------- ### Get Assembly Details in Civil 3D Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Fetches detailed information about a specific assembly, including its subassemblies and usage in corridors. Requires the assembly's name as input. ```json { "action": "get", "name": "Assembly Name" } ``` -------------------------------- ### Get Specific Structure Details Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves detailed information about a single structure within a specified pipe network. Requires the network name and the structure name. ```json { "action": "get_structure", "networkName": "NetworkName", "structureName": "StructureName" } ``` -------------------------------- ### Add MCP Server to Claude Code (Project Scope) Source: https://github.com/sacred-g/civil3d-mcp/blob/main/README.md Registers the MCP server with Claude Code for project-scoped interaction using stdio transport. Automatically handles dependency installation and server builds. ```powershell claude mcp add --scope project --transport stdio civil3d-mcp -- powershell -NoProfile -ExecutionPolicy Bypass -File "$PWD\scripts\claude-bootstrap-and-run.ps1" ``` -------------------------------- ### Get Specific Pipe Details Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Fetches detailed properties for a single pipe within a specified network. Requires both the network name and the pipe name as parameters. ```json { "action": "get_pipe", "networkName": "NetworkName", "pipeName": "PipeName" } ``` -------------------------------- ### Create a new empty TIN surface Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Use the `create` action to create a new, empty TIN surface. You must provide a unique name for the surface. Optional parameters include style, layer, and description. ```json { "action": "create", "name": "NewSurfaceName", "style": "MySurfaceStyle", "layer": "Surfaces", "description": "A newly created TIN surface." } ``` -------------------------------- ### Get computed statistics for a surface Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Use the `get_statistics` action to retrieve computed statistics for a surface. You can optionally specify an `analysisType` to get specific analyses like elevations, slopes, contours, or watersheds. ```json { "action": "get_statistics", "name": "SurfaceName" } ``` ```json { "action": "get_statistics", "name": "SurfaceName", "analysisType": "contours" } ``` -------------------------------- ### civil3d_superelevation - get Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves superelevation design data. ```APIDOC ## civil3d_superelevation get ### Description Retrieves superelevation design data. ### Parameters #### Query Parameters - **action** (string) - Required - `"get"` - **alignmentName** (string) - Required - Alignment name ``` -------------------------------- ### Command Step Schema Source: https://github.com/sacred-g/civil3d-mcp/blob/main/tests/integration/README.md Specifies the structure for each command step within the 'expectedCommandSequence' in a fixture. Includes step number, action, description, and parameters. ```json { "step": 1, "action": "civil3d_alignment", "description": "What this step does", "params": { "action": "create", "name": "My Alignment", ... } } ``` -------------------------------- ### civil3d_intersection - get Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Returns detailed properties of an intersection. ```APIDOC ## civil3d_intersection get ### Description Returns detailed properties of an intersection. ### Parameters #### Query Parameters - **action** (string) - Required - `"get"` - **name** (string) - Required - Intersection name ``` -------------------------------- ### civil3d_pressure_network get Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves detailed properties of a specified pressure network. ```APIDOC ## civil3d_pressure_network get ### Description Returns detailed properties of a pressure network. ### Method APICALL ### Endpoint civil3d_pressure_network ### Parameters #### Query Parameters - **action** (string) - Required - `"get"` - **name** (string) - Required - Network name ### Response #### Success Response (200) - **name** (string) - Name of the network. - **handle** (string) - Unique identifier for the network. - **pipeCount** (number) - The number of pipes in the network. - **fittingCount** (number) - The number of fittings in the network. - **appurtenanceCount** (number) - The number of appurtenances in the network. ### Response Example ```json { "name": "string", "handle": "string", "pipeCount": 0, "fittingCount": 0, "appurtenanceCount": 0 } ``` ``` -------------------------------- ### Build Civil 3D Plugin Source: https://github.com/sacred-g/civil3d-mcp/blob/main/README.md Build the Civil 3D plugin using .NET. This step is necessary to compile the plugin for use within Civil 3D. ```powershell dotnet build .\Civil3D-MCP-Plugin\Civil3DMcpPlugin.csproj -c Release ``` -------------------------------- ### Create Sample Lines Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Creates new sample lines along an alignment at specified stations or intervals. ```APIDOC ## create_sample_lines ### Description Creates sample lines at specified stations along an alignment. ### Parameters #### Query Parameters - **action** (string) - Required - `"create_sample_lines"` - **alignmentName** (string) - Required - Alignment name - **groupName** (string) - Required - New sample line group name - **stations** (array) - Optional - Explicit stations. If omitted, uses interval. - **interval** (number) - Optional - Station interval for automatic generation. - **leftWidth** (number) - Required - Sample width to the left of alignment - **rightWidth** (number) - Required - Sample width to the right of alignment - **surfaces** (array) - Required - Surface names to sample. ``` -------------------------------- ### civil3d_cogo.traverse Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Solves a traverse starting from a given point and following a series of courses. ```APIDOC ## civil3d_cogo.traverse ### Description Solves a traverse from a starting point. ### Parameters #### Request Body - **action** (string) - Required - Must be set to "traverse" - **courses** (array) - Required - Array of bearing/distance courses. Each course object should have: - **bearing** (string) - Required - The bearing for the course - **distance** (number) - Required - The distance for the course ``` -------------------------------- ### List Sample Lines Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Returns all sample line groups for a given alignment. ```APIDOC ## list_sample_lines ### Description Returns all sample line groups for an alignment. ### Parameters #### Query Parameters - **action** (string) - Required - `"list_sample_lines"` - **alignmentName** (string) - Required - Parent alignment name ### Response #### Success Response (200) - **sampleLineGroups** (array) - List of sample line group objects, each containing name, handle, sampleLineCount, and stations. ``` -------------------------------- ### Run Integration Tests Source: https://github.com/sacred-g/civil3d-mcp/blob/main/tests/integration/README.md Execute integration tests for the Civil3D MCP workflow fixtures from the project root. These tests are automatically discovered by Vitest. ```bash # From the project root: pnpm test tests/integration # Or run the full test suite: pnpm test ``` -------------------------------- ### civil3d_parcel get Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves detailed properties for a single parcel within a specified site. ```APIDOC ## civil3d_parcel get ### Description Returns detailed properties of a single parcel. ### Method Not specified (assumed to be a tool action) ### Endpoint Not specified ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **action** (string) - Required - Must be "get" - **siteName** (string) - Required - Site name - **parcelName** (string) - Required - Parcel name ### Request Example ```json { "action": "get", "siteName": "MainSite", "parcelName": "Parcel1" } ``` ### Response #### Success Response Detailed properties of the specified parcel. #### Response Example None specified ``` -------------------------------- ### Create Survey Database Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Creates a new survey database. The database name must be unique. ```python civil3d_survey.create_database(action="create_database", name="MyNewDatabase") ``` -------------------------------- ### Get Section Data Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves cross-section data for a specific station along an alignment. ```APIDOC ## get_section_data ### Description Returns cross-section data at a specific station. ### Parameters #### Query Parameters - **action** (string) - Required - `"get_section_data"` - **alignmentName** (string) - Required - Alignment name - **sampleLineGroupName** (string) - Required - Sample line group name - **station** (number) - Required - Station value ### Response #### Success Response (200) - **station** (number) - The station value for the cross-section. - **surfaces** (array) - List of surface data, each containing surfaceName, offsets, and elevations. - **units** (object) - Contains horizontal and vertical unit information. ``` -------------------------------- ### Sync Incoming Data Shortcuts Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Updates all incoming data shortcut references to their latest versions. Use this command to ensure your drawing reflects the most current data from external sources. ```json { "action": "sync" } ``` -------------------------------- ### civil3d_hydrology.trace_flow_path Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Traces the water flow path starting from a specified point on a given surface. ```APIDOC ## trace_flow_path ### Description Traces water flow path from a specified point on a surface. ### Method Not specified (assumed to be a function call or RPC method) ### Parameters #### Query Parameters - **action** (string) - Required - Must be set to `"trace_flow_path"`. - **surfaceName** (string) - Required - The name of the surface to analyze. - **x** (number) - Required - The starting X coordinate for the flow path trace. - **y** (number) - Required - The starting Y coordinate for the flow path trace. ### Response #### Success Response - **flowPath** (array) - A list of coordinates representing the traced flow path. ``` -------------------------------- ### civil3d_feature_line get Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Fetches detailed properties for a specific feature line, including its vertices and elevations. ```APIDOC ## civil3d_feature_line get ### Description Returns detailed properties of a feature line including vertices and elevations. ### Method Not specified (assumed to be a tool action) ### Endpoint Not specified ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **action** (string) - Required - Must be "get" - **name** (string) - Required - Feature line name or handle ### Request Example ```json { "action": "get", "name": "FeatureLine1" } ``` ### Response #### Success Response (200) - **name** (string) - The name of the feature line. - **handle** (string) - The unique handle of the feature line. - **layer** (string) - The layer the feature line belongs to. - **style** (string) - The style applied to the feature line. - **length** (number) - The total length of the feature line. - **vertexCount** (number) - The number of vertices in the feature line. - **vertices** (array) - An array of vertex objects, each with x, y, and z coordinates. - **minElevation** (number) - The minimum elevation of the feature line. - **maxElevation** (number) - The maximum elevation of the feature line. - **units** (string) - The units used for measurements. #### Response Example ```json { "name": "FeatureLine1", "handle": "1234", "layer": "FLAYER", "style": "FSTYLE", "length": 100.5, "vertexCount": 5, "vertices": [ { "x": 0.0, "y": 0.0, "z": 0.0 }, { "x": 10.0, "y": 0.0, "z": 1.0 }, { "x": 20.0, "y": 5.0, "z": 1.5 }, { "x": 30.0, "y": 5.0, "z": 1.5 }, { "x": 40.0, "y": 10.0, "z": 2.0 } ], "minElevation": 0.0, "maxElevation": 2.0, "units": "US Survey Feet" } ``` ``` -------------------------------- ### Configure Claude Desktop MCP Server Source: https://github.com/sacred-g/civil3d-mcp/blob/main/README.md JSON configuration for Claude Desktop to connect to the Civil3D-MCP server using Node.js. ```json { "mcpServers": { "civil3d-mcp": { "command": "node", "args": ["C:/path/to/Civil3D-mcp/build/index.js"] } } } ``` -------------------------------- ### Create Layout Profile Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Creates a new empty layout profile for a design. Specify the parent alignment, new profile name, and optionally style, layer, and label set. ```json { "action": "create_layout", "alignmentName": "string", "profileName": "string", "style": "string", "layer": "string", "labelSet": "string" } ``` -------------------------------- ### civil3d_alignment_edit - add_tangent Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Appends a fixed tangent entity to an alignment with specified start and end coordinates. ```APIDOC ## civil3d_alignment_edit - add_tangent ### Description Appends a fixed tangent entity to an alignment. ### Parameters #### Request Body - **action** (string) - Required - "add_tangent" - **name** (string) - Required - Alignment name - **x1** (number) - Required - Start X coordinate - **y1** (number) - Required - Start Y coordinate - **x2** (number) - Required - End X coordinate - **y2** (number) - Required - End Y coordinate ``` -------------------------------- ### List all surfaces in the drawing Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Use the `list` action to retrieve a list of all surfaces present in the current Civil 3D drawing. This is useful for understanding available surfaces and their basic properties. ```json { "action": "list" } ``` -------------------------------- ### Civil3D Section Tool: Create Sample Lines Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Creates new sample lines along an alignment, forming a new sample line group. You can specify explicit stations or an interval for automatic generation, along with widths and surfaces to sample. This action requires the alignment name, a new group name, left and right widths, and a list of surface names. ```json { "action": "create_sample_lines", "alignmentName": "string", "groupName": "string", "stations": number[], "interval": number, "leftWidth": number, "rightWidth": number, "surfaces": string[] } ``` -------------------------------- ### List Survey Databases Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Use this action to retrieve a list of all available survey databases within the Civil 3D environment. ```python civil3d_survey.list_databases(action="list_databases") ``` -------------------------------- ### Sample elevation at a point on a surface Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Use the `get_elevation` action to find the elevation of a surface at a given X, Y coordinate. This is useful for checking elevations at specific locations. ```json { "action": "get_elevation", "name": "SurfaceName", "x": 100.0, "y": 200.0 } ``` -------------------------------- ### civil3d_pipe_network.list Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Returns all pipe networks present in the Civil3D drawing. This action is useful for getting an overview of available pipe networks. ```APIDOC ## civil3d_pipe_network.list ### Description Returns all pipe networks in the drawing. ### Method POST ### Endpoint /tools/civil3d_pipe_network ### Parameters #### Request Body - **action** (string) - Required - Must be the literal string "list". ### Request Example ```json { "action": "list" } ``` ### Response #### Success Response (200) - **networks** (array) - A list of pipe network objects. - **name** (string) - The name of the pipe network. - **handle** (string) - The internal handle of the pipe network. - **pipeCount** (number) - The number of pipes in the network. - **structureCount** (number) - The number of structures in the network. - **surface** (string | null) - The name of the reference surface, or null if none is set. #### Response Example ```json { "networks": [ { "name": "Main Sewer Line", "handle": "{GUID-1234}", "pipeCount": 50, "structureCount": 25, "surface": "Ground Surface" } ] } ``` ``` -------------------------------- ### Get Corridor Feature Lines Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves a list of feature lines that have been extracted from a specified corridor. Requires the corridor name. ```json { "action": "get_feature_lines", "name": "string" } ``` -------------------------------- ### Civil3D Section Tool: List Sample Lines Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Use this action to retrieve all sample line groups associated with a given alignment. This is useful for understanding the existing sample line configuration before performing other section-related operations. ```json { "action": "list_sample_lines", "alignmentName": "string" } ``` -------------------------------- ### Create Data Shortcut Reference Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Creates a new data shortcut reference to a specified object in another drawing. This is essential for linking external Civil 3D objects into your current project. ```json { "action": "create_reference", "sourceFilePath": "path/to/source.dwg", "objectName": "MyAlignment", "objectType": "alignment" } ``` -------------------------------- ### Get Single COGO Point Details Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Fetches detailed information for a specific COGO point using its unique point number. ```python civil3d_point.get(pointNumber=10) ``` -------------------------------- ### Civil3D-MCP Architecture Diagram Source: https://github.com/sacred-g/civil3d-mcp/blob/main/README.md Illustrates the interaction flow between AI clients, the Node.js MCP server, and the Civil 3D environment via a .NET plugin. ```mermaid flowchart LR Client["AI Client (Claude / Cline / Cursor)"] -->|"MCP stdio"| Server["civil3d-mcp Node.js MCP Server"] Server -->|"POST :8765/execute"| Plugin subgraph Civil3D ["Autodesk Civil 3D"] Plugin["Civil3D-MCP-Plugin.dll HTTP Listener"] Queue["ConcurrentQueue (thread-safe)"] Idle["Application.Idle (main thread)"] Router["CommandRouter"] API["Civil 3D .NET API"] Plugin --> Queue --> Idle --> Router --> API end ``` -------------------------------- ### create_layout Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Creates a new empty layout profile for design. It allows specifying the parent alignment, new profile name, and optional style, layer, and label set. ```APIDOC ## `create_layout` ### Description Creates a new empty layout profile for design. ### Parameters #### Path Parameters - **action** (string) - Required - `"create_layout"` - **alignmentName** (string) - Required - Parent alignment name - **profileName** (string) - Required - New profile name - **style** (string) - Optional - Profile style. Uses default if omitted - **layer** (string) - Optional - Layer name. Uses default if omitted - **labelSet** (string) - Optional - Label set name. Uses default if omitted ``` -------------------------------- ### Get Profile Details Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves detailed information about a specific profile, including its geometric entities. Requires alignment and profile names. ```APIDOC ## civil3d_profile get ### Description Returns detailed properties of a specific profile. ### Parameters #### Query Parameters - **action** (string) - Required - `"get"` - **alignmentName** (string) - Required - Parent alignment name - **profileName** (string) - Required - Profile name ### Response #### Success Response (200) - **name** (string) - The name of the profile. - **handle** (string) - The unique handle of the profile. - **type** (string) - The type of profile. - **style** (string) - The style applied to the profile. - **layer** (string) - The layer the profile is on. - **startStation** (number) - The starting station of the profile. - **endStation** (number) - The ending station of the profile. - **minElevation** (number) - The minimum elevation of the profile. - **maxElevation** (number) - The maximum elevation of the profile. - **entityCount** (number) - The number of geometric entities in the profile. - **entities** (array) - A list of geometric entities. - **index** (number) - The index of the entity. - **type** (string) - The type of entity ('tangent', 'circular_curve', 'parabola', 'asymmetric_parabola'). - **startStation** (number) - The starting station of the entity. - **endStation** (number) - The ending station of the entity. - **startElevation** (number) - The starting elevation of the entity. - **endElevation** (number) - The ending elevation of the entity. - **grade** (number | null) - The grade of the entity. - **length** (number) - The length of the entity. - **pviCount** (number) - The number of Points of Vertical Intersection (PVI). - **units** (object) - Units used for horizontal and vertical measurements. - **horizontal** (string) - Horizontal unit (e.g., 'meters', 'feet'). - **vertical** (string) - Vertical unit (e.g., 'meters', 'feet'). ### Response Example ```json { "name": "Design Grade", "handle": "{GUID-2}", "type": "layout", "style": "Standard Design", "layer": "PROFILES", "startStation": 0.0, "endStation": 1000.0, "minElevation": 55.0, "maxElevation": 70.0, "entityCount": 3, "entities": [ { "index": 0, "type": "tangent", "startStation": 0.0, "endStation": 300.0, "startElevation": 55.0, "endElevation": 58.0, "grade": 0.01, "length": 300.0 } ], "pviCount": 2, "units": {"horizontal": "meters", "vertical": "meters"} } ``` ``` -------------------------------- ### civil3d_data_shortcut list Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Returns all data shortcuts, including incoming references and exportable objects. ```APIDOC ## civil3d_data_shortcut list ### Description Returns all data shortcuts (incoming references and exportable objects). ### Parameters #### Query Parameters - **action** (string) - Required - Must be the value `"list"`. ### Response #### Success Response (200) - **incoming** (array) - A list of incoming data shortcuts. - **objectName** (string) - The name of the referenced object. - **objectType** (string) - The type of the referenced object (`"surface"`, `"alignment"`, `"profile"`, or `"pipe_network"`). - **sourceFilePath** (string) - The path to the source drawing. - **isSynced** (boolean) - Indicates if the shortcut is synchronized. - **isValid** (boolean) - Indicates if the shortcut is valid. - **exportable** (array) - A list of exportable objects. - **objectName** (string) - The name of the exportable object. - **objectType** (string) - The type of the exportable object. - **isExported** (boolean) - Indicates if the object is exported. ### Response Example ```json { "incoming": [ { "objectName": "Surface1", "objectType": "surface", "sourceFilePath": "C:\\Path\\To\\Source.dwg", "isSynced": true, "isValid": true } ], "exportable": [ { "objectName": "Alignment1", "objectType": "alignment", "isExported": false } ] } ``` ``` -------------------------------- ### Get Survey Figure Details Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Fetches detailed information for a specific survey figure, including its vertices. Requires both database and figure names. ```python civil3d_survey.get_figure(action="get_figure", databaseName="MyDatabase", figureName="MyFigure") ``` -------------------------------- ### Get Elevation at Station Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves the elevation, grade, and units at a specific station along a given profile. Requires alignment, profile, and station. ```APIDOC ## civil3d_profile get_elevation ### Description Returns the elevation at a specific station along a profile. ### Parameters #### Query Parameters - **action** (string) - Required - `"get_elevation"` - **alignmentName** (string) - Required - Parent alignment name - **profileName** (string) - Required - Profile name - **station** (number) - Required - Station value ### Response #### Success Response (200) - **station** (number) - The station at which the elevation was queried. - **elevation** (number) - The calculated elevation at the specified station. - **grade** (number) - The grade at the specified station. - **units** (string) - The vertical units (e.g., 'meters', 'feet'). ### Response Example ```json { "station": 500.0, "elevation": 60.5, "grade": 0.02, "units": "meters" } ``` ``` -------------------------------- ### Create Profile from Surface Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Creates a new profile by sampling elevations from a specified surface along an alignment. Optional style, layer, and label set can be provided. ```APIDOC ## civil3d_profile create_from_surface ### Description Creates a new profile by sampling surface elevations along an alignment. ### Parameters #### Query Parameters - **action** (string) - Required - `"create_from_surface"` - **alignmentName** (string) - Required - Parent alignment name - **profileName** (string) - Required - New profile name - **surfaceName** (string) - Required - Source surface to sample - **style** (string) - Optional - Profile style. Uses default if omitted. - **layer** (string) - Optional - Layer name. Uses default if omitted. - **labelSet** (string) - Optional - Label set name. Uses default if omitted. ### Response #### Success Response (200) (Response structure not explicitly defined in source, but would typically be a confirmation message or the created profile's identifier) ### Response Example ```json { "message": "Profile 'New Surface Profile' created successfully." } ``` ``` -------------------------------- ### Get Elevation at Station Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves the elevation, grade, and units at a specific station along a given profile. Requires alignment, profile, and station. ```json { "action": "get_elevation", "alignmentName": "", "profileName": "", "station": } ``` -------------------------------- ### civil3d_surface create Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Creates a new, empty TIN surface with a specified name. Optional parameters include style, layer, and a description for the surface. ```APIDOC ## civil3d_surface create ### Description Creates a new empty TIN surface. ### Method POST ### Endpoint /tools/civil3d_surface ### Parameters #### Request Body - **action** (string) - Required - Must be set to "create" - **name** (string) - Required - The name for the new surface. Must be unique within the drawing. - **style** (string) - Optional - The name of the style to apply to the surface. Uses the drawing's default if omitted. - **layer** (string) - Optional - The name of the layer to place the surface on. Uses the drawing's default if omitted. - **description** (string) - Optional - A brief description for the surface. ### Request Example ```json { "action": "create", "name": "NewSurface_TIN", "style": "StandardTIN", "layer": "SURFACES", "description": "A newly created TIN surface." } ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message indicating the surface was created successfully. #### Response Example ```json { "message": "Surface 'NewSurface_TIN' created successfully." } ``` ``` -------------------------------- ### civil3d_pressure_network_components.add_pipe Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Adds a pressure pipe segment to a network. Requires network name, start and end points, and the pipe part name from the catalog. ```APIDOC ## add_pipe ### Description Adds a pressure pipe segment to a network. ### Parameters #### Request Body - **action** (string) - Required - "add_pipe" - **networkName** (string) - Required - Network name - **startPoint** ({ x: number, y: number, z: number }) - Required - Start coordinates - **endPoint** ({ x: number, y: number, z: number }) - Required - End coordinates - **partName** (string) - Required - Pipe part name from catalog ``` -------------------------------- ### List Profiles for Alignment Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Use this action to retrieve all profiles associated with a specific alignment. Requires the alignment name. ```json { "action": "list", "alignmentName": "" } ``` -------------------------------- ### civil3d_assembly_create.create Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Creates a new assembly at a specified location. ```APIDOC ## create ### Description Creates a new assembly at a specified location. ### Parameters #### Request Body - **action** (string) - Required - Must be "create" - **name** (string) - Required - Assembly name (must be unique) - **x** (number) - Required - Insertion X coordinate - **y** (number) - Required - Insertion Y coordinate ``` -------------------------------- ### Sample elevations along a series of points Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Use the `get_elevation_along` action to sample elevations along a path defined by an array of points. This is useful for generating profiles or cross-sections. ```json { "action": "get_elevation_along", "name": "SurfaceName", "points": [ { "x": 100.0, "y": 200.0 }, { "x": 150.0, "y": 250.0 } ] } ``` -------------------------------- ### Get Pressure Network Details in Civil 3D Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves comprehensive details for a specified pressure network. This action requires the network's name. ```json { "action": "get", "name": "Network Name" } ``` -------------------------------- ### Get Parcel Details Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Fetches detailed information for a single parcel within a given site. This includes its name, handle, number, area, perimeter, and style. ```python civil3d_parcel.get(siteName='MySite', parcelName='Parcel1') ``` -------------------------------- ### civil3d_qty_extended.earthwork_summary Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Generates a running earthwork cut/fill summary. This tool has no additional parameters beyond the action. ```APIDOC ## civil3d_qty_extended.earthwork_summary ### Description Generates running earthwork cut/fill summary. ### Parameters #### Path Parameters - **action** (string) - Required - Must be set to "earthwork_summary". ``` -------------------------------- ### Get Detailed Alignment Information Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieve comprehensive details about a specific alignment, including its entities, dependent objects, and properties. Requires the alignment's name. ```json { "action": "get", "name": "Alignment Name" } ``` -------------------------------- ### civil3d_surface get Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves detailed properties for a specific surface by its name. This includes style, layer, statistical data, bounding box, units, and associated alignments/corridors. ```APIDOC ## civil3d_surface get ### Description Returns detailed properties of a specific surface. ### Method POST ### Endpoint /tools/civil3d_surface ### Parameters #### Request Body - **action** (string) - Required - Must be set to "get" - **name** (string) - Required - The name of the surface to retrieve properties for. ### Request Example ```json { "action": "get", "name": "MainStreet_FG" } ``` ### Response #### Success Response (200) - **name** (string) - The name of the surface. - **handle** (string) - The unique identifier for the surface. - **type** (string) - The type of the surface (TIN, Grid, TINVolume). - **style** (string) - The style applied to the surface. - **layer** (string) - The layer the surface resides on. - **statistics** (object) - Computed statistics for the surface. - **minimumElevation** (number) - The minimum elevation value. - **maximumElevation** (number) - The maximum elevation value. - **meanElevation** (number) - The average elevation value. - **area2d** (number) - The 2D area of the surface. - **area3d** (number) - The 3D area of the surface. - **numberOfPoints** (number) - The total number of points in the surface. - **numberOfTriangles** (number) - The number of triangles (for TIN surfaces). - **boundingBox** (object) - The bounding box coordinates of the surface. - **minX** (number) - Minimum X coordinate. - **minY** (number) - Minimum Y coordinate. - **maxX** (number) - Maximum X coordinate. - **maxY** (number) - Maximum Y coordinate. - **units** (string) - The drawing units. - **isReference** (boolean) - Indicates if the surface is a reference. - **dependentAlignments** (array) - List of names of alignments dependent on this surface. - **dependentCorridors** (array) - List of names of corridors dependent on this surface. #### Response Example ```json { "name": "MainStreet_FG", "handle": "{12345678-ABCD-EFGH-IJKL-MNOPQRSTUVWXYZ1234}", "type": "TIN", "style": "Standard", "layer": "SURFACES", "statistics": { "minimumElevation": 100.5, "maximumElevation": 110.2, "meanElevation": 105.8, "area2d": 5000.0, "area3d": 5100.5, "numberOfPoints": 1500, "numberOfTriangles": 2800 }, "boundingBox": { "minX": 1000.0, "minY": 2000.0, "maxX": 1100.0, "maxY": 2100.0 }, "units": "Meters", "isReference": false, "dependentAlignments": ["MainStreet_AL"], "dependentCorridors": [] } ``` ``` -------------------------------- ### Required Civil 3D API DLLs Source: https://github.com/sacred-g/civil3d-mcp/blob/main/README.md Lists the minimum set of local DLLs required for the Civil 3D API references. ```text accoremgd.dll AcDbMgd.dll acmgd.dll AecBaseMgd.dll AeccDbMgd.dll ``` -------------------------------- ### civil3d_pressure_network_components.add_appurtenance Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Adds a pressure appurtenance like a valve, hydrant, or meter to a network. Requires network name, coordinates, and the appurtenance part name. ```APIDOC ## add_appurtenance ### Description Adds a pressure appurtenance (valve, hydrant, meter). ### Parameters #### Request Body - **action** (string) - Required - "add_appurtenance" - **networkName** (string) - Required - Network name - **x** (number) - Required - X coordinate - **y** (number) - Required - Y coordinate - **partName** (string) - Required - Appurtenance part name ``` -------------------------------- ### List Parcels in a Site Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Returns all parcels belonging to a specified site. Requires the site name as a parameter. The response includes parcel names, handles, numbers, and geometric properties. ```python civil3d_parcel.list(siteName='MySite') ``` -------------------------------- ### Get Feature Line Details Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves detailed properties for a specific feature line by its name or handle. The response includes vertex data, elevations, and other geometric information. ```python civil3d_feature_line.get(name='MyFeatureLine') ``` -------------------------------- ### Get Civil 3D Style Details Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Retrieves detailed properties for a specific Civil 3D style. You need to provide the object type and the exact style name. ```python civil3d_style.get(objectType='surface', styleName='MySurfaceStyle') ``` -------------------------------- ### civil3d_data_shortcut_extended Source: https://github.com/sacred-g/civil3d-mcp/blob/main/docs/tools.md Provides extended data shortcut operations for Civil 3D objects. Supports creating data shortcuts and promoting references. ```APIDOC ## Tool 53: `civil3d_data_shortcut_extended` Extended data shortcut operations. ### Actions: #### `create` Creates a data shortcut for a Civil 3D object. ### Parameters: #### Request Body - **action** (string) - Required - Must be `"create"` - **objectName** (string) - Required - Object name - **objectType** (string) - Required - Object type (surface, alignment, profile, pipe_network) #### `promote` Promotes a data shortcut reference to a full editable object. ### Parameters: #### Request Body - **action** (string) - Required - Must be `"promote"` - **objectName** (string) - Required - Shortcut object name ```