Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_pointB

Create a point at (x, y). Coordinates are converted from unit (default mm) to internal mm. Optional layer is a layer name (created if missing).

create_lineC

Create a line from (x1,y1) to (x2,y2). Lengths use unit (default mm).

create_circleC

Create a circle with centre (cx,cy) and radius. Lengths use unit (default mm).

create_arcA

Create a circular arc: centre (cx,cy), radius, startAngle and endAngle in radians (counterclockwise from +X; mathematical Y-up). Radius uses unit (default mm). Stored as coords [cx,cy,r,startAngle,endAngle] in mm.

create_rectangleB

Axis-aligned rectangle: corner (x,y), width, height, optional cornerRadius. Lengths use unit (default mm). Y increases upward; (x,y) is the lower-left corner. Stored as coords [x,y,width,height] in mm; cornerRadius in properties.

create_polygonC

Create a polygon path from vertices. closed selects closed vs open stroke in preview (stored on entity properties). Points use unit (default mm).

create_polylineB

Create a polyline. If closed is true, stroke is closed in SVG preview. Points use unit (default mm).

create_layerB

Create a named layer with optional color (e.g. #ff0000). Layers are keyed by name; default geometry layer is "0".

set_entity_layerC

Assign entities to a layer by name.

list_entitiesC

List entities. Optional filter: { kind or type?, layer?, ids? } — kind/type is an EntityType string or array (point, line, circle, arc, rectangle, polygon, polyline).

list_layersB

List all layers (name, color, visible, locked).

get_entity_propertiesC

Return one entity record by id.

delete_entityC

Remove an entity by id.

render_preview_svgC

Wireframe SVG preview of entities (mm). Optional entity_ids limits which shapes are drawn.

import_dxfA

Import DXF content (UTF-8 text or base64) into the scene: ensures layers exist and adds LINE, CIRCLE, ARC, POINT, LWPOLYLINE, and 2D POLYLINE entities (mm; arcs as radians internally).

export_dxfB

Export 2D entities to DXF (internal mm). Optional entity_ids limits which entities are written.

begin_transactionA

Start a nested editing transaction; pair with commit_transaction or rollback_transaction.

commit_transactionA

Commit the innermost active transaction.

rollback_transactionA

Discard changes since the matching begin_transaction and restore scene state.

push_undo_checkpointA

Record the current scene state on the undo stack (clears redo). Call before a batch of edits you want to revert in one step.

undoB

Restore the scene to the previous undo checkpoint.

redoB

Re-apply the last undone scene state.

geometry_backend_statusA

Report the current 3D geometry backend. Returns one of: { backend: "occt", available: true, version? } when OpenCascade.js is loaded, { backend: "occt-error", available: false, reason } when load failed, or { backend: "mock", available: false, reason } when running with the lightweight fallback. Use this to verify whether STEP/STL/IGES/GLTF tools are running on real OCCT or on stubbed geometry.

delete_layerA

Delete a layer by name. Entities on that layer are reassigned to the default layer 0.

rename_layerB

Rename an existing layer. Any entities on the old layer are updated to the new layer name.

set_layer_visibleC

Set whether a layer is visible in previews and listings.

set_layer_lockedC

Set whether a layer is locked against editing.

set_layer_colorA

Set or clear a layer display color. Pass an empty string to clear the stored color.

get_layer_listC

Alias for listing all layers.

get_entity_typeC

Get the entity type string for a specific entity id.

find_entities_by_layerC

Return entities assigned to a specific layer name.

find_entities_in_regionC

Find entities whose bounding boxes intersect the given region.

find_entities_by_propertyC

Find entities by direct field or property-bag value using exact matching.

get_bounding_boxC

Compute a bounding box for all entities or a selected subset.

get_curve_lengthC

Measure length or perimeter for a 2D entity in internal millimetres.

set_entity_propertyB

Set a mutable entity field (layer, coords, closed, properties) or a custom property-bag value. Reserved fields id and type cannot be changed.

set_entity_colorC

Set entity color display metadata on one or more entities.

set_entity_linetypeC

Set entity linetype display metadata on one or more entities.

set_entity_lineweightC

Set entity lineweight display metadata on one or more entities.

mirror_2dC

Create mirrored copies of one or more entities across an axis line.

array_rectangularC

Create rectangular array copies using row and column spacing in the current units.

array_polarC

Create polar array copies around a center. Angle is in radians and includes the source entity.

offsetB

Create an offset copy of a supported 2D entity. Use left/right for open curves and inside/outside or inward/outward for closed curves.

create_boxC

Create a box solid at origin with width, height, and depth.

create_sphereC

Create a sphere solid.

create_cylinderC

Create a vertical cylinder solid.

create_coneC

Create a frustum or cone solid.

create_torusC

Create a torus solid.

create_prismC

Create a prism from a 2D profile entity and height.

create_revolutionC

Create a simplified revolved solid from a 2D profile around an axis.

boolean_unionC

union two 3D solids and return a simplified composite result.

boolean_subtractC

subtract two 3D solids and return a simplified composite result.

boolean_intersectC

intersect two 3D solids and return a simplified composite result.

fillet_3dC

Create a simplified filleted copy of a solid.

chamfer_3dC

Create a simplified chamfered copy of a solid.

shellC

Create a simplified shelled copy of a solid.

draft_angleC

Create a simplified drafted copy of a solid.

loftC

Create a simplified lofted solid from one or more profiles.

sweepC

Create a simplified swept solid from a profile and path.

set_parameterC

Create or replace a named parameter.

get_parameterC

Get a parameter by name.

list_parametersC

List all named parameters.

update_parameterC

Update an existing parameter value.

add_constraint_coincidentD

Add a coincident constraint.

add_constraint_parallelD

Add a parallel constraint.

add_constraint_perpendicularD

Add a perpendicular constraint.

add_constraint_tangentD

Add a tangent constraint.

add_constraint_concentricD

Add a concentric constraint.

add_constraint_equalD

Add a equal constraint.

add_constraint_symmetricD

Add a symmetric constraint.

add_constraint_horizontalC

Add a horizontal constraint.

add_constraint_verticalC

Add a vertical constraint.

add_constraint_fixedC

Add a fixed constraint.

add_constraint_midpointD

Add a midpoint constraint.

add_dimension_linearD

Add a dimension_linear constraint.

add_dimension_angularD

Add a dimension_angular constraint.

add_dimension_radialD

Add a dimension_radial constraint.

add_dimension_diameterD

Add a dimension_diameter constraint.

create_blockC

Create a block definition from entity ids.

insert_blockC

Insert a block definition by cloning its member entities.

explode_blockB

Explode an inserted block group back into loose entities.

list_blocksC

List block definitions.

edit_blockC

Return a block definition for editing.

define_attributeC

Define an attribute on a block definition.

create_groupC

Create a named group from entity ids.

ungroupC

Remove a group by id.

select_groupC

Return entities in a group.

create_assemblyC

Create an empty assembly.

add_componentC

Add a component reference to an assembly.

remove_componentC

Remove a component instance from an assembly.

mate_coincidentC

Create a coincident mate between two references.

mate_concentricC

Create a concentric mate between two references.

mate_distanceC

Create a distance mate between two references.

mate_angleC

Create a angle mate between two references.

mate_parallelC

Create a parallel mate between two references.

set_component_flexibleC

Mark a component as flexible or rigid.

create_exploded_viewC

Create an exploded view definition for an assembly.

add_explode_stepC

Add an explode step to an exploded view.

animate_explodeC

Return a simple explode animation plan.

measure_distanceC

Measure distance between two points.

measure_angleC

Measure angle between two lines.

measure_areaC

Measure planar area from an entity.

measure_perimeterC

Measure perimeter or curve length for an entity.

measure_volumeC

Measure solid volume.

measure_surface_areaC

Measure solid surface area.

measure_centroidC

Measure solid centroid.

measure_moment_of_inertiaC

Measure simplified moment of inertia from bbox.

measure_bounding_boxC

Measure the combined bounding box of entities.

measure_minimum_distanceB

Approximate minimum distance between two solids via bounding boxes.

check_interferenceC

Check component interference using transformed component bounding boxes.

check_clearanceC

Check if minimum distance meets a clearance threshold. Accepts entity ids or assembly component ids; use assembly_id to scope component lookup.

set_materialC

Attach material metadata to a solid.

get_mass_propertiesC

Return mass properties based on simplified volume and material density.

add_linear_dimensionC

Add a linear dimension annotation.

add_aligned_dimensionD

Add an aligned dimension annotation.

add_angular_dimensionC

Add an angular dimension annotation.

add_radius_dimensionD

Add a radius dimension.

add_diameter_dimensionC

Add a diameter dimension.

add_ordinate_dimensionC

Add an ordinate dimension.

add_baseline_dimensionD

Add baseline dimensions.

add_continued_dimensionD

Add continued dimensions.

add_textC

Add a single-line text annotation.

add_mtextC

Add a multi-line text annotation.

add_leaderC

Add a leader annotation.

add_multileaderC

Add a multileader annotation.

create_tableC

Create a table annotation.

set_table_cellC

Set a table cell value.

add_surface_finish_symbolD

Add symbol annotation add_surface_finish_symbol.

add_weld_symbolD

Add symbol annotation add_weld_symbol.

add_gdt_frameD

Add symbol annotation add_gdt_frame.

add_center_markD

Add symbol annotation add_center_mark.

add_center_lineD

Add symbol annotation add_center_line.

create_viewportC

Create a viewport entity.

set_view_standardC

Store active drawing standard in parameter state.

set_visual_styleC

Store active visual style in parameter state.

create_drawingC

Create a drawing sheet.

add_viewD

Add a add_view to a drawing.

add_section_viewD

Add a add_section_view to a drawing.

add_detail_viewD

Add a add_detail_view to a drawing.

add_auxiliary_viewD

Add a add_auxiliary_view to a drawing.

update_drawing_viewsC

Return current drawing state after a logical refresh.

render_previewC

Render current scene or selected entities to a base64 image payload.

generate_pdfC

Generate a minimal PDF summary for a drawing.

generate_svgC

Generate SVG for selected entities or the full scene.

create_map_layoutC

Create a map-oriented drawing layout using current project extent and drawing scale metadata.

apply_thesis_templateC

Apply a stored thesis/map template to an existing drawing and persist layout/export metadata.

add_north_arrowC

Add a north arrow symbol annotation for a map drawing.

add_scale_barC

Add a simple scale bar annotation to a map drawing.

add_legendC

Add a simple map legend annotation listing domain layers or categories.

add_coordinate_gridC

Add a coordinate grid using the provided extent and spacing.

batch_generate_svgC

Generate SVG files for one or more drawings and write them into an output directory.

batch_generate_pdfC

Generate summary PDF files for one or more drawings and write them into an output directory.

import_stepC

Import STEP content.

import_igesC

Import IGES content.

import_stlD

Import STL content.

import_objD

Import OBJ content.

import_svgD

Import SVG content.

import_pdf_as_underlayD

Import PDF_AS_UNDERLAY content.

export_stepC

Export entities to STEP-like text.

export_igesC

Export entities to IGES-like text.

export_stlC

Export entities to STL-like text.

export_objC

Export entities to OBJ-like text.

export_svgD

Export entities to SVG-like text.

export_gltfC

Export entities to GLTF-like text.

export_3mfC

Export entities to 3MF-like text.

import_dwgA

Import DWG by piping through LibreDWG's dwg2dxf. Provide either path (DWG on disk) or base64 content. Falls back with an error if dwg2dxf is not installed (run dwg_tools_status to check).

export_dwgA

Export the current 2D scene to DWG by writing a DXF and converting via LibreDWG's dxf2dwg. Returns base64 DWG bytes; pass path to also write to disk. Run dwg_tools_status to confirm dxf2dwg is installed.

dwg_tools_statusA

Report whether LibreDWG's dwg2dxf / dxf2dwg binaries are available on PATH so import_dwg / export_dwg can actually convert. Returns the resolved binary paths when present.

import_csv_pointsC

Import CSV rows into point entities for sampling points or monitoring wells while preserving tabular attributes.

import_geojsonC

Import GeoJSON FeatureCollection data into point, line, polyline, and polygon entities.

import_shapefileC

Import ESRI Shapefile geometry and DBF attributes into point, line, polyline, and polygon entities.

export_geojsonB

Export 2D entities to a GeoJSON FeatureCollection while preserving layer and properties metadata.

export_shapefileB

Export 2D entities as a zipped ESRI Shapefile package and optionally write it to disk.

set_project_crsC

Set project CRS and optional origin metadata for resource/environment mapping workflows.

get_project_crsB

Return current project georeferencing metadata.

set_map_extentC

Set the current map extent used for paper layout, grids, and exports.

set_drawing_scaleC

Set a drawing scale factor between local drawing units and world coordinates.

transform_coordsB

Transform coordinates between local drawing space and world space using project origin and drawing scale.

reproject_pointA

Reproject a single point between two CRSes using proj4. from/to accept EPSG codes (e.g. 'EPSG:4326', '4326') or full proj4 strings. Common CN CRSes (EPSG:4326/3857/4490/4513-4533) are pre-registered.

reproject_pointsC

Reproject many points between two CRSes in one call. Same from/to semantics as reproject_point.

register_crs_definitionA

Register an EPSG-style CRS definition with proj4 so future reprojection tools can use it. code should be like 'EPSG:4548' and definition is a proj4 string.

list_known_crsA

List CRS codes currently registered with proj4 in this session (pre-registered defaults plus any added via register_crs_definition).

create_sampling_pointC

Create a resource/environment sampling point with optional label, elevation, and attribute metadata.

create_monitoring_wellC

Create a monitoring well point with optional depth and screened interval metadata.

create_profile_lineC

Create a profile line used for section sampling and resource/environment transects.

create_boundary_polygonC

Create a study boundary or management zone polygon with domain metadata.

list_entities_by_domain_kindB

List entities tagged with a domain kind such as sampling_point, monitoring_well, or profile_line.

measure_polygon_area_statsC

Summarize polygonal area by entity, optionally grouped by a property field for study zones.

measure_profile_lengthC

Measure the length of a profile line or transect.

compute_section_areaC

Sample elevated points along a profile line and compute the section area against a baseline elevation.

compute_cut_fill_volumeC

Estimate cut/fill volume inside a polygon from enclosed elevated sample points and a base elevation.

compute_grid_surface_volumeC

Estimate surface volume from elevated point samples and a representative cell area.

import_geotiff_metadataA

Read a GeoTIFF file and return width / height / sample format / bbox / origin / resolution / CRS without attaching it to the session. Use attach_raster_layer to keep it as a session basemap.

attach_raster_layerB

Attach a GeoTIFF on disk to the session as a raster basemap layer. Returns the assigned layer id and parsed metadata. Use list_raster_layers / render_raster_layer_png afterwards.

list_raster_layersB

List all raster (basemap) layers attached to the session.

get_raster_layerB

Return one raster layer record by id.

remove_raster_layerB

Remove a raster layer by id.

set_raster_layer_visibleC

Toggle a raster layer's visibility flag.

rename_raster_layerC

Rename a raster layer for human reference.

render_raster_layer_pngA

Decode an attached raster layer (or a GeoTIFF on disk) into a PNG preview. Single-band rasters are auto-stretched to grayscale; multi-band rasters use the first three bands. Returns base64 PNG bytes; pass output_path to also write to disk.

create_ellipseC

Create an ellipse with radii and rotation.

create_splineC

Create a control-point spline entity.

trimC

Trim a line-like entity by shortening it toward its midpoint.

extendC

Extend a line-like entity by 20 percent.

fillet_2dC

Create a simple arc fillet between two lines using their intersection midpoint.

chamfer_2dC

Create a simple chamfer line between two lines.

get_face_normalC

Return a simplified face normal for an axis-aligned face id.

get_edge_listC

Return simplified edge ids for a solid.

get_face_listC

Return simplified face ids for a solid.

get_vertex_listC

Return solid bbox corner vertices.

get_topologyC

Return simplified brep-like topology for a solid.

new_projectA

Start a new empty CAD project (default layer 0, no entities). Optional project name.

get_project_infoB

Return current project metadata and scene counts.

save_projectB

Save the current scene to a project JSON file on disk (cad-mcp-project v1).

load_projectB

Load a project JSON file from disk and replace the current scene (undo/redo cleared).

open_projectA

Alias for load_project: load a project JSON file from disk and replace the current scene.

autocad_statusA

Inspect a running AutoCAD application through COM: window/process identity, current binding, active document and idle state. This does not establish a persistent binding or operate on the internal CAD session.

autocad_list_documentsA

List COM-reachable AutoCAD applications and their open documents. Returns data.applications and data.documents with window/process identity for target selection. COM may not expose every same-version AutoCAD process.

autocad_attachA

Bind this MCP server to a COM-reachable AutoCAD application window/process and document. Use a decimal windowHandle and document name/full path returned by status/list calls; omit them to select the current target. activate defaults to true and activates the selected document; false only establishes the binding without activating it. Later commands reject if the bound document is no longer active. COM may not expose every same-version AutoCAD process.

autocad_detachA

Clear this MCP server's AutoCAD binding. Does not close AutoCAD, close a document, or discard drawing changes.

autocad_activate_documentA

Activate an already-open AutoCAD document by its exact name or full path and update the binding to that document. Does not open files. Use autocad_list_documents to identify the target.

autocad_get_variablesA

Read 1–50 AutoCAD system variables from the live document, for example CMDACTIVE, CMDNAMES, CLAYER or INSUNITS. Use readback to verify command effects; an idle state alone does not prove command success.

autocad_list_layersB

List layers from the live AutoCAD document through COM, respecting the current application/document binding. Separate from the internal CAD session's list_layers.

autocad_list_modelspace_entitiesA

List entities from the live AutoCAD document's ModelSpace, respecting the current binding. Optional filters: layer, objectName, limit. Separate from the internal CAD session's list_entities.

autocad_send_commandA

Submit a raw command to the live AutoCAD document. Rejects a busy document or a bound document that is no longer active. Example: _.ZOOM _E. waitForIdle defaults to false; true polls for idle for timeoutMs (1000–30000 ms) after the COM SendCommand call returns. A separate 45-second bridge timeout bounds blocking COM calls. Result state is submitted, idle_observed or timeout; none proves semantic command success. timeout is an MCP error with result data. Query intended results afterward. Submission is not retried; after an error or timeout do not resend before inspecting the drawing.

Prompts

Interactive templates invoked by user choice

NameDescription
cad-session-introStarter context for working with the CAD MCP server (placeholder).
design_partGuide the model through requirements, material choice, critical dimensions, and CAD-friendly modeling steps.
generate_drawingProduce drawing views, sheet layout, and annotation strategy from the current 3D or 2D scene.
dimension_drawingPlan complete, standards-aware dimensions and notes for the current drawing or layout.
create_assemblyPlan component structure, mates, and assembly order from a parts list or current scene.
optimize_designReview the model for weight, manufacturability, maintainability, and simplification opportunities.
check_manufacturabilityReview the design for process-specific manufacturing risks and documentation gaps.
create_parametricIdentify driving dimensions and propose a reusable parameter scheme for the current design.
research_sampling_workflowResource/environment domain workflow: ingest CSV sampling points, set CRS, clip by boundary polygon, compute area / count / class statistics, and emit an A3 thesis-style map.
profile_section_workflowPick a profile line, sample elevations along it, build a section figure, and produce an A4 thesis-style figure.
cut_fill_reportEstimate simplified cut/fill between an existing-surface DEM and a design-surface DEM (or a flat target elevation) within a boundary, and produce a short report.
georeferenced_basemap_setupWalk through attaching a GeoTIFF as a raster basemap, aligning it with the project CRS, and overlaying vector layers on top.
dwg_dxf_round_tripVerify that a DWG file can be imported via LibreDWG, edited, and exported back without losing layers or core entities.

Resources

Contextual data attached and managed by the client

NameDescription
cad-templates-listAvailable drawing/map template files (JSON)
cad-templates-thesis-a3-mapA3 thesis map layout template (JSON)
cad-templates-thesis-a4-figureA4 thesis figure layout template (JSON)
cad-project-currentProject metadata and server version (JSON)
cad-project-georefCRS, origin, extent, and drawing scale metadata (JSON)
cad-project-extentActive project extent for mapping and layout workflows (JSON)
cad-entities-listAll entities in the current scene (JSON array)
cad-domain-sampling-pointsSampling point entities and attributes in the current scene (JSON)
cad-domain-profile-linesProfile line entities used for section and transect work (JSON)
cad-layers-listLayer definitions for the current scene (JSON)
cad-preview-currentCurrent SVG preview for the active scene
cad-parametrics-variablesNamed parameters driving the model (JSON object)
cad-history-undo-stackCurrent undo and redo stack sizes (JSON)
cad-blocks-libraryStatic block catalog placeholder (JSON)
cad-materials-libraryStatic materials catalog placeholder (JSON)
cad-linetypes-listBuilt-in line type definitions (JSON)
cad-text-stylesBuilt-in text styles (JSON)
cad-dimension-stylesBuilt-in dimension styles (JSON)
cad-standards-isoStarter ISO drafting rules (JSON)
cad-standards-ansiStarter ANSI drafting rules (JSON)

TDQS

C2.2/5.0

Scored across 225 tools

Disambiguation2/5

Many tools overlap heavily: dimension annotations vs dimension constraints (add_dimension_linear vs add_linear_dimension, add_dimension_angular vs add_angular_dimension), multiple measurement/bounding-box tools, aliases like open_project and get_layer_list, and parallel internal-CAD vs AutoCAD COM operations. With 225 tools, an agent faces frequent ambiguity and near-duplicate selection risks.

Naming Consistency3/5

Names are overwhelmingly snake_case, but verb conventions are inconsistent (create/add/set/get/list/measure/compute/import/export/generate/render/apply), with direct aliases and a few single-word or noun-first tools (offset, shell, loft, draft_angle). Still generally readable, but not a predictable verb_noun pattern throughout.

Tool Count1/5

225 tools is an extreme mismatch for an MCP server, far beyond the 3-15 well-scoped range. The set is massively overgrown and likely overwhelming for agents to navigate.

Completeness3/5

The surface is broad across 2D/3D creation, annotation, dimensions, layers, blocks, constraints, assemblies, measurement, import/export, and geospatial workflows. However, core CAD editing gaps remain (e.g., no obvious move/rotate/scale for existing 2D entities), and many tools are explicitly simplified or stub-like.

Maintenance

ActivityMaintained
ResponsivenessNo issues