spaceclaim
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPACECLAIM_MCP_HOST | No | Default host for attach. | localhost |
| SPACECLAIM_MCP_PORT | No | Default port for attach. | 50051 |
| SPACECLAIM_MCP_UNITS | No | Working length unit: mm, cm, m, or in. | mm |
| SPACECLAIM_MCP_HIDDEN | No | Launch without showing the UI. | 0 |
| SPACECLAIM_MCP_PRODUCT | No | What launch starts: spaceclaim, discovery, or geometry-service. | spaceclaim |
| SPACECLAIM_MCP_VERSION | No | Ansys release to launch (252 = 2025 R2, 261 = 2026 R1); empty means newest installed. | 252 |
| SPACECLAIM_MCP_OUTPUT_DIR | No | Where relative save_design paths go. | ~/Documents/mcp-spaceclaim |
| SPACECLAIM_MCP_ALLOW_SCRIPTS | No | Set to 0 to remove the ability to run scripts; run_script returns an error. | 1 |
| SPACECLAIM_MCP_TRANSPORT_MODE | No | Default transport mode for attach; on Windows the default transport is wnua. | auto |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| spaceclaim_connectA | Start SpaceClaim/Discovery (or attach to a running one) and make it the target. Launching starts the product with its API server add-in and takes 30-120 s. Reconnecting closes the previous connection first; a product this server launched exits with it. |
| spaceclaim_statusB | Connection state, backend version, working unit and the open design. |
| spaceclaim_disconnectA | Close the connection. A product launched by this server exits (unsaved work is lost); an attached product keeps running. |
| new_designA | Create an empty design. This closes the currently open design in the product; save_design first if it has unsaved work. |
| open_fileA | Open a CAD file as the active design (closes the current design). |
| save_designB | Save or export the active design. An existing file is replaced. |
| list_bodiesB | All bodies in the design with volume, bounding box and face/edge counts. |
| describe_bodyB | Faces (type, area, normal, radius, centre) and edges (type, length, ends, radius) of one body, with the ids that the face/edge tools take. |
| select_facesB | Find faces by geometry instead of guessing ids (top face, all Ø8 holes ...). |
| select_edgesA | Find edges by geometry (vertical edges, edges of the top face, Ø8 hole rims ...). |
| measure_distanceA | Minimum distance between two bodies and how they collide (none/touch/intersect/ contained). |
| render_viewA | A shaded picture of the model. Use it after every few edits and before reporting a result; highlight faces/edges to confirm a selection before filleting or cutting. |
| sketch_extrudeB | Sketch 2D shapes on a plane or planar face and extrude them into a solid. |
| revolve_sketchA | Revolve sketch profiles about an axis (shafts, pulleys, turned parts). The axis must lie in the sketch plane and must not cross the profile. |
| create_boxC | Axis-aligned block between two corners. |
| create_cylinderC | Cylinder (or, with operation='cut', a round hole of that depth). |
| create_sphereD | Sphere. |
| booleanC | Unite, subtract or intersect bodies into target. |
| move_bodyA | Translate, rotate and/or mirror bodies (applied in that order). |
| pattern_bodyA | Copy a body in a row or around an axis (bolt circles, rib arrays). |
| fillet_edgesA | Round edges with a constant radius (get ids from select_edges). |
| chamfer_edgesB | Bevel edges by an equal distance (get ids from select_edges). |
| pull_facesA | SpaceClaim Pull: offset planar faces to change a size (make a plate thicker, deepen a pocket). To resize a hole, cut a larger cylinder instead. |
| shell_bodyB | Hollow a solid to a wall thickness, optionally opening some faces. |
| rename_bodyC | Rename a body. |
| delete_bodyB | Delete a body from the design (there is no undo through the API). |
| create_named_selectionB | Group bodies/faces/edges under a name (inlet/outlet/wall for CFD, fixed supports for FEA); Fluent and Mechanical pick these up. |
| run_scriptA | Escape hatch: run a script inside the product for anything the typed tools do not cover. The design is re-read afterwards. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Each tool has a clearly distinct role: connection/status, design lifecycle, inspection, selection, primitive creation, sketch modeling, editing, and grouping. The few potentially overlapping areas (e.g. create_cylinder with cut vs boolean subtract, describe_body vs select_faces/select_edges) are explicitly differentiated in the descriptions.
Most tools follow a readable snake_case verb_noun pattern such as create_box, fillet_edges, and delete_body. The main deviations are the spaceclaim_* prefixed connection trio, new_design, and the single-noun boolean, but these remain clear and do not create confusion.
The set is heavier than ideal at 28 tools for an MCP server and could be consolidated in places, such as the connection tools and primitive creators. Still, most tools correspond to genuine CAD operations and do not feel gratuitous for a full modeling workflow.
The surface covers connection, design creation/open/save, inspection, selection, primitives, sketching/extrude/revolve, booleans, transforms, patterns, fillets/chamfers, shelling, named selections, and a run_script escape hatch. Advanced CAD/assembly operations are absent, but the core lifecycle and common modeling workflows are well covered.