kompas3d
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KOMPAS_SDK_PATH | No | Path to the KOMPAS-3D SDK folder. Used only if the SDK is not in the default location C:/Program Files/ASCON/KOMPAS*/SDK. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| connectA | Connect to or launch local KOMPAS-3D; return version and application handle. |
| attach_active_modelA | Explicitly adopt the active 3D document and return its name/path and stable session ID. Use when the user requests work on an already-open model. Verify returned identity. |
| sdk_searchA | Find installed SDK topics by interface/member/enum filename substring, e.g. fillet. |
| sdk_readA | Read an exact SDK HTML topic as text, including linked topics for navigation. |
| create_partB | Create a new native part without replacing the user's open documents. |
| open_modelA | Open native M3D/A3D or import STEP/IGES/STL, returning an explicit document ID. |
| create_sketchA | Draw circles, arcs and polylines on XY/XZ/YZ or offset planes. Geometry is mm. Revolutions need one open two-point construction polyline as the rotation axis. Sketch coordinates are local to the selected KOMPAS plane, not world XYZ. support_entity_id can select a native face or construction plane instead of plane/offset. |
| extrudeC | Add or cut a finite-depth extrusion from an existing sketch. |
| revolveC | Add or cut a revolution. Sketch must contain a profile and construction axis. |
| inspect_modelA | Return bounding box (success,x1,y1,z1,x2,y2,z2), entity IDs and COM handles. Session entities are only those created by typed tools, not the full feature tree. Use the part's EntityCollection through api_invoke for existing model topology. |
| save_modelA | Save editable native M3D/A3D at an absolute path; no overwrite by default. |
| export_modelC | Export STEP/STL/IGES. Availability depends on installed KOMPAS license/converters. |
| model_previewB | Render the document's current view to a PNG image for visual verification. |
| blueprint_viewA | Read local PNG/JPEG/TIFF/WebP or a PDF page (1-based) as an image. Optional crop is normalized [left,top,right,bottom] in 0..1. Cropping before downsampling helps read small dimensions. Maximum returned dimension is 2400px. This renders input; interpretation/OCR is the MCP client's responsibility. |
| api_constantsA | Find installed SDK enum names/values by case-insensitive substring. |
| api_describeB | Read generated SDK method signatures and readable/writable properties. |
| api_invokeA | Advanced unrestricted local COM access, including mutations and file operations. Inspect the interface first. Pass COM arguments as {"handle":"..."}. Returned COM objects become session handles. This bypasses typed save/ownership protections. Use only documented SDK members within the user's requested work. False/zero results are returned verbatim and may indicate API failure. |
| draw_lineB | Draw a native editable line in a drawing/fragment view; coordinates in mm. |
| draw_circleB | Draw a native editable circle in a drawing/fragment view; radius in mm. |
| draw_linear_dimensionC | Create a native measured 2D linear dimension between points, with chosen text location. |
| draw_textB | Add native editable text to a drawing/fragment view; position mm and angle degrees. |
| list_variablesA | Read user variables or a specific native feature's driving variables and expressions. |
| set_variableC | Set one numeric value OR native expression and rebuild. Explicit create enables new user variables. |
| set_materialB | Assign a part material and physical density in g/cm³, then report updated mass in kg. |
| list_documentsA | List all open native documents with identity, changed/read-only state and typed API7 handles. |
| create_documentA | Create a native part, assembly, drawing, fragment, specification or text document. Returns API7 handles; use create_part when you need a document_id for typed API5 modeling tools. |
| open_documentC | Open any of the six native document formats with explicit read-only/visibility choices. |
| save_documentB | Save a native API7 document. Enforces matching extension, read-only state and overwrite policy. |
| close_documentA | Close this document only. Refuses unsaved changes unless discard_changes is explicitly true. |
| insert_componentB | Insert a native part/subassembly occurrence in an explicit assembly. Returns placement handle. |
| create_standard_viewsC | Create associative engineering views from a native model in a drawing. Coordinates/gaps are mm. |
| api_catalogB | Search/paginate every installed API5/API7 interface by name; discover hidden capabilities. |
| api_describe_interfaceB | Get schema for any installed interface without needing an object of that type first. |
| api_castB | QueryInterface to an additional installed SDK interface, e.g. IPart7 to IModelContainer. A known type does not guarantee that a given object supports it. COM failure is reported. |
| api_batchA | Execute up to 100 ordered SDK steps; stop on first failure and return partial results. Targets/arguments support {handle:id}, {ref:prior_step_id}, {constant:enum_name}. Typed arrays: {variant:{type:dispatch_array|int_array|double_array|variant_array,values:[...]}}. Set expect=truthy for BOOL operations or not_null for object creation. No rollback. This has the same unrestricted local COM authority as api_invoke. |
| list_entitiesA | Discover existing native entities, including imported/reopened models. kind is an installed o3d_ enum, e.g. o3d_edge, o3d_face, o3d_fillet. Edges include endpoint/bounds/length data; faces include area/surface type/bounds. solid_only defaults true to exclude sketch and datum geometry from edges/faces. Select by geometric evidence. Rediscover topology after modifications. |
| create_featureA | Create any API5 NewEntity-supported feature using documented definition settings. entity_type is an o3d_ enum. properties maps writable names to values. calls contain member/arguments/expect and optional via zero-argument getters. References: {entity_id:id} within this document, {handle:id}, {constant:name}. Used for shells, lofts, sweeps, ribs, drafts, patterns, mirrors and more. API7-only operations require api_cast/api_batch. Read SDK first; no universal recipe is implied. |
| update_featureA | Modify an existing native feature definition and rebuild the model. Partial changes may remain on failure. |
| set_entity_stateC | Rename, hide/show, or suppress/restore a native entity and rebuild. |
| delete_featureA | Delete the explicitly selected native feature. Dependents may be affected. Rejects face/edge/vertex deletion because API5 would silently delete its owner. |
| treat_edgesB | Fillet or chamfer selected current edges. size is radius or first chamfer leg in mm. second_size defaults to equal chamfer legs. Edges are IDs from list_entities(o3d_edge). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| model_from_blueprint | Dimension-led reconstruction of a blueprint into an editable native part. |
| model_from_description | Plan and build a dimensioned part from natural language. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 41 tools
Several tool families overlap in purpose, notably open_model/open_document, create_part/create_document, save_model/save_document, and inspect_model/list_entities. The SDK/API discovery cluster (api_describe_interface, api_describe, api_constants, api_catalog, api_cast, sdk_search, sdk_read) is also very hard to distinguish without reading each description. An agent would frequently need to dig into details before confidently choosing a tool.
Most names use snake_case verb_noun form, and subgroups like draw_*, list_*, and create_*/update_*/delete_* are internally consistent. However, conventions are split across api_*, sdk_*, bare verbs like connect/extrude/revolve, and noun-like names such as blueprint_view. api_describe_interface vs api_describe further blurs the otherwise readable pattern.
At 41 tools this is well above the 25-tool threshold for a coherent server, even considering CAD's broad scope. The count is inflated by a large SDK introspection family and parallel API5/API7 document workflows that could be consolidated. It feels heavy rather than curated.
Core workflows are covered: part modeling, sketch creation, features, document lifecycle, drawing views, import/export, variables, and materials. However, assembly support stops at insert_component with no typed assembly constraints, and 2D drawing annotations are limited to line/circle/linear dimension/text. The unrestricted api_invoke/api_batch tools can fill gaps, but only by leaving the typed, safe surface.