Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ONSHAPE_ACCESS_KEYNoOnshape API access key
ONSHAPE_SECRET_KEYNoOnshape API secret key

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
cad_document_createC

Create a document and return documentId + the Main workspaceId.

cad_part_studio_createC

Create a Part Studio; returns elementId.

cad_sketch_beginA

Open a sketch session on a standard plane (Front/Top/Right) OR an existing face (pass its deterministic id from cad_find_faces as face). Returns a sessionId.

cad_sketch_lineB

Add a line; returns its entityId (points are .start / .end).

cad_sketch_circleC

Add a circle; returns entityId. construction=true for a reference circle.

cad_sketch_arcA

Add a center-point arc swept counterclockwise from start to end; returns entityId (points are .start / .end). Radius is set by start; the end snaps to that radius. Swap start/end for the complementary arc. construction=true for a reference arc.

cad_sketch_filletA

Round the corner where two lines meet with a tangent arc of radius (inches). Trims both lines to the tangent points, drops the corner coincident, inserts the arc, and adds tangent constraints. Returns {arc, center, tangentPoints, radius}.

cad_sketch_mirrorA

Mirror sketch lines across an existing line entity (the axis — e.g. a construction line). Emits the reflected copies and a MIRROR constraint tying each copy to its original. Lines only for now. Returns {originalId: copyId}.

cad_sketch_patternA

Repeat sketch lines/circles as geometric copies. kind=linear needs direction=[dx,dy] + spacing (inches between instances); kind=circular needs center=[cx,cy] + angle (degrees between instances). count is the total incl. the original. Copies are geometric (not a live-linked pattern). Returns {originalId: [copyIds...]}.

cad_sketch_rectangleB

Add a constrained rectangle; returns {bottom,right,top,left} line ids.

cad_sketch_slotA

Add an obround (rounded slot) between two centre points, given width — a rectangle + a circle at each end; extruding unions them into a clean slot. Returns {sides, caps} ids.

cad_sketch_polylineA

Add a chain of lines through points. Auto coincident-joins them; closed=True closes the loop; auto_hv applies horizontal/vertical to axis-aligned segments; ground_first grounds the first point to the origin if it is at (0,0). Returns the line ids.

cad_sketch_constrainA

Add a geometric constraint. type one of: coincident, horizontal, vertical, parallel, perpendicular, tangent, equal, concentric, pierce, midpoint, symmetric, fix, ground_origin. 'a'/'b'(/'c' for symmetry line) are entity/point ids like 'ln1' or 'ln1.start'. ground_origin grounds point 'a' to the part-studio origin.

cad_sketch_dimensionA

Add a driving dimension. kind: length (line), radius/diameter (circle), distance (entity+entity2), angle (line+line, value in degrees). value is inches (number) or an expression/#variable (e.g. '#base_len', '60 mm').

cad_sketch_closeA

Post the sketch as one feature; returns its featureId plus diagnostics (grounded, dimensions, wellFormed). Set require_well_formed=true to refuse (without posting) a sketch that is ungrounded or has no driving dimensions.

cad_set_variableA

Set a part-studio variable (assignVariable), update-or-create: re-setting the same name updates it in place instead of adding a duplicate. expression e.g. '2.4 in' or '#other*2'.

cad_extrudeC

Extrude a sketch region. operation: NEW/ADD/REMOVE/INTERSECT. depth is inches (number) or an expression/#variable.

cad_filletC

Fillet edges (deterministic ids from cad_find_edges). radius is inches (number) or an expression/#variable.

cad_find_edgesA

Find edges by geometry. kind: circular (radius+tol), concave/convex (inner/outer corners — concave is ideal for fillets), linear (axis X/Y/Z and/or through point), extreme (ALL edges furthest along axis — e.g. axis=Z max=false for the bottom edges, to fillet at once), on_plane (all edges lying in the plane axis=coordinate, e.g. axis=Z coordinate=0). Returns deterministic ids.

cad_find_facesC

Find faces by geometry. kind: planar_by_normal (normal=[x,y,z]), cylindrical (radius+tol), largest/smallest (by area — e.g. the big flat face to sketch on), extreme (the face furthest along axis — axis=Z max=true is the top face), adjacent_to_extreme (the faces bordering that extreme face), on_plane (the planar face lying in axis=coordinate, e.g. axis=Z coordinate=0). Returns deterministic ids.

cad_chamferB

Equal-distance chamfer on edges (deterministic ids from cad_find_edges). distance is inches (number) or an expression/#variable.

cad_holeA

Hole(s) at the given centers on a plane/face. diameter/depth accept numbers or #variables. plane is Front/Top/Right OR a face id (from cad_find_faces). style: 'simple' (default) | 'counterbore' (needs cboreDiameter + cboreDepth) | 'countersink' (needs csinkDiameter; csinkAngle default 90) — counterbore/countersink use the native Hole feature (proper callouts). Set up=true if the hole reports 'none intersected' (flips the drill direction). through=true for a through-all hole.

cad_revolveB

Revolve a sketch region about an axis edge. angle in degrees (number/#var); omit angle for a full 360 revolve. operation: NEW/ADD/REMOVE/INTERSECT.

cad_shellC

Hollow the solid by removing the given faces and leaving a wall. thickness is inches (number) or #variable; wall is inward.

cad_mirrorB

Mirror whole features across a plane. featureIds = the features to repeat (e.g. an extrude/hole featureId); planeId = Front/Top/Right or a face/plane id. operation matches the seed feature: NEW (default) for an additive boss, REMOVE when mirroring a hole/cut so the copy cuts.

cad_patternA

Pattern whole features. kind=linear needs directionId (an edge) + spacing (number/#var) + count; kind=circular needs axisId (an edge) + count, evenly spaced over angle (default 360). featureIds = the features to repeat. operation matches the seed feature: NEW (default) for an additive boss, REMOVE when patterning a hole/cut so each copy cuts (NEW leaks a stray body for a cut).

cad_measureB

Measure the part studio's solids in ONE FeatureScript eval: solid count, total volume (in^3), and the combined bounding box (min/max/size in inches). Quota-frugal.

cad_get_variablesA

List the cadkit variables in this part studio (name + authored expression, e.g. '#leg' = '2 in'). Reads the assignVariable features; one API call.

cad_delete_featureC

Delete a feature by featureId.

cad_suppressA

Suppress (suppressed=true) or unsuppress (false) a feature by featureId, leaving it in the tree.

cad_edit_featureB

Edit one stored parameter of an existing feature. Give parameterId (e.g. 'depth','radius','length') plus expression (number/#var for a quantity) OR value (enum/bool/string). Retarget a dimension to a #variable without rebuilding.

cad_exportC

Export the part studio to a file format. format: STL/STEP/PARASOLID/GLTF/OBJ (default STEP). Optional partId to export a single part. Returns the translation result.

cad_api_callsA

Report how many SUCCESSFUL Onshape API calls (2xx/3xx — the ones that count against the 2,500/user/yr budget) cadkit has made this session. Costs no API call. Check it before/after live work to keep quota spend visible.

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/saltyeg/cadkit-mcp'

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