cadkit
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ONSHAPE_ACCESS_KEY | No | Onshape API access key | |
| ONSHAPE_SECRET_KEY | No | Onshape API secret key |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| 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 |
| cad_sketch_filletA | Round the corner where two lines meet with a tangent arc of |
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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