
kernelCAD
This connects Claude to a browser-based programmatic CAD environment backed by OpenCASCADE. You get deterministic, code-first 3D modeling where geometry is defined in JavaScript using the Replicad API and stored as editable .kcad.ts source files. The MCP endpoint at mcp.kernelcad.com lets Claude write sketches with operations like extrude, revolve, fillet, chamfer, and boolean combinations, then export to STEP or STL. Reach for this when you need reproducible CAD workflows that can be version controlled, reviewed like code, and integrated into agent pipelines rather than clicking through traditional CAD GUIs.
- tools
- 77
- transport
- HTTP
- last updated
- Oct 27, 2026
Install
From registry metadata$ npx add-mcp https://mcp.kernelcad.com/mcp --name kernelcadRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http kernelcad https://mcp.kernelcad.com/mcpRun in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 77 toolsVerified live against the running server on Nov 6, 2026.
review_paint_peek_latestReturn the newest brush-painted review packet from a Studio session. After sharing a /p/<slug> link, the user can open it in the browser and paint marks over the 3D viewport to give visual feedback. Call this tool with the `slug` from that link to see the strokes — screenshot...3 params
Return the newest brush-painted review packet from a Studio session. After sharing a /p/<slug> link, the user can open it in the browser and paint marks over the 3D viewport to give visual feedback. Call this tool with the `slug` from that link to see the strokes — screenshot...
freshness_secintegerpaths_onlybooleanslugstringopen_in_studioSave the model as a kernelCAD project AND show it: persists a project revision, returns the interactive Studio viewer (MCP Apps / ChatGPT outputTemplate), and includes a PNG preview in the SAME tool result (image content + previewUrl when available). ONE VIEWER PER PROJECT PER...17 params
Save the model as a kernelCAD project AND show it: persists a project revision, returns the interactive Studio viewer (MCP Apps / ChatGPT outputTemplate), and includes a PNG preview in the SAME tool result (image content + previewUrl when available). ONE VIEWER PER PROJECT PER...
anon_tokenstringattachmentsarraybody_bboxobjectcabin_bboxobjectcodestringcontinue_designbooleaninclude_previewbooleanintentstringlikeness_profilestringautomotivenew_projectbooleanparametersarrayprojectstringrequire_stillsbooleanslugstringstill_verdictsarraytitlestringwheelsarrayget_projectUse this when you need to reopen a saved project or browse what the user has saved — it fetches a kernelCAD Studio project, or lists the signed-in user's saved projects. Pass `slug` (from a /p/<slug> link or a prior listing) to fetch that project's full .kcad source and metada...1 params
Use this when you need to reopen a saved project or browse what the user has saved — it fetches a kernelCAD Studio project, or lists the signed-in user's saved projects. Pass `slug` (from a /p/<slug> link or a prior listing) to fetch that project's full .kcad source and metada...
slugstringget_project_revisionFetch the exact immutable .kcad source and parameters captured at a prior `open_in_studio` version. Use this to read-after-write verify a release: pass the returned `slug` and `version`, then hash or inspect the returned source. Public/unlisted projects use the slug as capabil...2 params
Fetch the exact immutable .kcad source and parameters captured at a prior `open_in_studio` version. Use this to read-after-write verify a release: pass the returned `slug` and `version`, then hash or inspect the returned source. Public/unlisted projects use the slug as capabil...
slug*stringversion*integerget_latest_renderRender a project's current model server-side and return it as an inline image so you can SEE what you built. Prefer open_in_studio for the happy path — it already includes an iso PNG preview in the same publish result when previewDelivered is true. Use this tool for a differen...3 params
Render a project's current model server-side and return it as an inline image so you can SEE what you built. Prefer open_in_studio for the happy path — it already includes an iso PNG preview in the same publish result when previewDelivered is true. Use this tool for a differen...
paths_onlybooleanslug*stringviewstringall · iso · front · back · left · rightget_model_meshReturn the raw per-feature triangle mesh (positions/indices/normals) of a project's current model, by slug. For the in-chat 3D viewer widget to render geometry; delivered over the MCP Apps bridge. The slug is the capability: public/unlisted need no OAuth; private requires the...1 params
Return the raw per-feature triangle mesh (positions/indices/normals) of a project's current model, by slug. For the in-chat 3D viewer widget to render geometry; delivered over the MCP Apps bridge. The slug is the capability: public/unlisted need no OAuth; private requires the...
slug*stringrequest_uploadUse this when the user has a photo, PDF drawing, STEP, STL, DXF, SVG or 3MF file on their device and you need it in a kernelCAD tool (trace_from_image, drawing_to_cad, mesh_to_features, inspect of:"step", or lib.fromSTEP / fromSTL / fromDXF / fromSVG / referenceImage in a scri...1 params
Use this when the user has a photo, PDF drawing, STEP, STL, DXF, SVG or 3MF file on their device and you need it in a kernelCAD tool (trace_from_image, drawing_to_cad, mesh_to_features, inspect of:"step", or lib.fromSTEP / fromSTL / fromDXF / fromSVG / referenceImage in a scri...
purposestringlookup_authoring_skillReturn the kernelcad-authoring skill — conventions for writing .kcad.ts scripts (API surface, parameters, evaluation contract, common pitfalls) — in sections. Call with NO arguments first: you get the quick-start (units, axes, the return rule, the rules that prevent most failu...3 params
Return the kernelcad-authoring skill — conventions for writing .kcad.ts scripts (API surface, parameters, evaluation contract, common pitfalls) — in sections. Call with NO arguments first: you get the quick-start (units, axes, the return rule, the rules that prevent most failu...
querystringsectionstringtopicstringmesh_summaryMesh a kernelCAD .kcad.ts source server-side and return a COMPACT geometry summary — overall bounds plus, per feature, its id, kind, triangle count, and bounding box. Use this to INSPECT a model's geometry without a viewer: confirm a part is the size/shape you expect, see how...3 params
Mesh a kernelCAD .kcad.ts source server-side and return a COMPACT geometry summary — overall bounds plus, per feature, its id, kind, triangle count, and bounding box. Use this to INSPECT a model's geometry without a viewer: confirm a part is the size/shape you expect, see how...
fileNamestringparamsobjectsource*stringreport_needUse this when the user needed something kernelCAD does not have, so the gap is recorded instead of papered over. kind: asset (search_assets returned coverage none or poor: the catalog does not model it), capability (a tool cannot do what was needed), output (a tool answered, b...4 params
Use this when the user needed something kernelCAD does not have, so the gap is recorded instead of papered over. kind: asset (search_assets returned coverage none or poor: the catalog does not model it), capability (a tool cannot do what was needed), output (a tool answered, b...
contextstringkindstringasset · capability · output · docsdefault: assetneed*stringtoolstringsearch_assetsSearch the public kernelCAD asset catalogue of published models. This is not find_part (screws, bearings, NEMA). Read-only. Anonymous callers are allowed. Do not send an API key. Use source:"library" for the free built-in model library. Search its titles, tags or kit IDs, and...13 params
Search the public kernelCAD asset catalogue of published models. This is not find_part (screws, bearings, NEMA). Read-only. Anonymous callers are allowed. Do not send an API key. Use source:"library" for the free built-in model library. Search its titles, tags or kit IDs, and...
categorystringcursorstringikstringany · arm · legskitstringlicensestringCC-BY-4.0 · CC-BY-SA-4.0 · CC-BY-NC-4.0 · CC-BY-NC-SA-4.0 · CC0-1.0 · MITlimitintegermax_trianglesintegermin_trianglesintegerqstringrigbooleansortstringlatest · triangles · remixedsourcestringlibrary · communitytagsarrayget_assetFetch one public catalogue asset by slug. Read-only. No sign-in and no API key. A built-in kit/id returns the free editable downloads.source (.kcad.ts), studio_url, thumbnail_url and license. Download the source with plain GET. For community slugs, returns the search fields pl...1 params
Fetch one public catalogue asset by slug. Read-only. No sign-in and no API key. A built-in kit/id returns the free editable downloads.source (.kcad.ts), studio_url, thumbnail_url and license. Download the source with plain GET. For community slugs, returns the search fields pl...
slug*stringget_asset_packReturn a short-lived signed URL for a catalogue asset zip (mesh, params, licence). Read-only. No sign-in. The URL is already signed. Fetch it with GET. Do not send an API key or an Authorization header. It expires quickly; read expires_at. Share download_url with the user. Uni...1 params
Return a short-lived signed URL for a catalogue asset zip (mesh, params, licence). Read-only. No sign-in. The URL is already signed. Fetch it with GET. Do not send an API key or an Authorization header. It expires quickly; read expires_at. Share download_url with the user. Uni...
slug*stringevaluate_scriptUse this when you need to run a script and check it compiles. Full local builds return viewerUrl: a live Studio link reused and updated on later full builds in the same MCP process. Hosted builds return viewerMode: hosted and viewerHint pointing to open_in_studio; they do not...8 params
Use this when you need to run a script and check it compiles. Full local builds return viewerUrl: a live Studio link reused and updated on later full builds in the same MCP process. Hosted builds return viewerMode: hosted and viewerHint pointing to open_in_studio; they do not...
baselinearraycodestringdryRunbooleanfilestringintentstringkernelstringocct · smlibrequirementsarrayskipMechanismCheckbooleandiff_scriptsUse this when you need to see exactly what changed between two script versions. Structured geometric delta between two versions of a kernelCAD script — a baseline ({ baseFile } or { baseCode }) and a revision ({ file } or { code }). Returns agent-readable JSON: per-part added/...4 params
Use this when you need to see exactly what changed between two script versions. Structured geometric delta between two versions of a kernelCAD script — a baseline ({ baseFile } or { baseCode }) and a revision ({ file } or { code }). Returns agent-readable JSON: per-part added/...
baseCodestringbaseFilestringcodestringfilestringinspectUse this when you need to read facts about a model. One reader, selected by `of`: - 'assembly' — physical assembly inventory (parts, bboxes, connectors, mates, disconnected solids). - 'robot' — URDF/SDFormat export preview (links, joints, planning groups, end-effectors, issues...17 params
Use this when you need to read facts about a model. One reader, selected by `of`: - 'assembly' — physical assembly inventory (parts, bboxes, connectors, mates, disconnected solids). - 'robot' — URDF/SDFormat export preview (links, joints, planning groups, end-effectors, issues...
assemblystringatnumberaxisstringx · y · zcategorystringcodestringdensitynumberedgesobject | array | stringface_namestringtop · bottom · left · right · front · backfacesobject | array | stringfeature_idstringfilestringgyration_axisobjectof*stringassembly · robot · step · shape · mass · featuresplanestring | objectqueryobjectspike_factornumberstackobjectverifyUse this when you need to check a design against a rule set. One verifier, selected by `check`: - 'assembly' — static assembly review ({ file | code }, or the session evaluate_script left): mate validator, default-pose interference, joint topology, mechanical plausibility. ok:...67 params
Use this when you need to check a design against a rule set. One verifier, selected by `check`: - 'assembly' — static assembly review ({ file | code }, or the session evaluate_script left): mate validator, default-pose interference, joint topology, mechanical plausibility. ok:...
angleToleranceDegnumberassemblystringasserted_planeobjectcheck*stringassembly · urdf · dfm · dfm-preflight · swept-collision · reachablecodestringcollision_tolerance_mm3numbercontactToleranceMmnumberdirectionsarraydisassemblyOrderbooleandxfstringedgesobject | array | stringfacesobject | array | stringfastenersarrayfeatureIdstringfeature_idstringfilestringfixturesarraygravityarrayheatmapsbooleanjointstring+47 more parameters. See the server's own documentation for the full schema.
why_did_this_failUse this when you need to trace why a feature failed. Walk the upstream chain of a failing feature. Returns the diagnostics of the requested feature plus the diagnostics of every upstream feature in topological order (the requested feature is the last entry). Per-code hints ar...3 params
Use this when you need to trace why a feature failed. Walk the upstream chain of a failing feature. Returns the diagnostics of the requested feature plus the diagnostics of every upstream feature in topological order (the requested feature is the last entry). Per-code hints ar...
codestringfeature_idstringfilestringset_paramUse this when you need to edit a param() default value in a kernelCAD script. Returns the modified code as text plus diagnostics from re-evaluating the result. Caller persists the new code via standard file-write tools (this tool has no side effects). With preview: true it bui...4 params
Use this when you need to edit a param() default value in a kernelCAD script. Returns the modified code as text plus diagnostics from re-evaluating the result. Caller persists the new code via standard file-write tools (this tool has no side effects). With preview: true it bui...
code*stringnew_value*valueparam_name*stringpreviewbooleanadd_featureUse this when you need to insert a new feature line into a script. Insert a new feature line into a kernelCAD script before the last top-level return statement. Returns the modified code as text plus diagnostics from re-evaluating the result. Side-effect-free. Primitives that...2 params
Use this when you need to insert a new feature line into a script. Insert a new feature line into a kernelCAD script before the last top-level return statement. Returns the modified code as text plus diagnostics from re-evaluating the result. Side-effect-free. Primitives that...
code*stringfeature_code*stringadd_surfaceUse this when you need an organic, freeform, or swept shape — a body shell, panel, fairing, ergonomic curve, lens, or sculpted form — authored as a NURBS Surface into the user's .kcad.ts, OR when you need to finish surfaces into a watertight solid or taper faces for moldabilit...23 params
Use this when you need an organic, freeform, or swept shape — a body shell, panel, fairing, ergonomic curve, lens, or sculpted form — authored as a NURBS Surface into the user's .kcad.ts, OR when you need to finish surfaces into a watertight solid or taper faces for moldabilit...
angle_degnumberbinding_namestringby_bindingstringcode*stringcontinuityvaluecontrolsarraycurve_bindingsarraydegreeobjectfacestringkind*stringnurbs · boundary · trim · sew · draftknotsobjectneutral_planestringopstringtrim · splitperiodicobjectpull_dirarrayrequire_closedbooleansamplingintegersection_sketch_idsarrayshape_bindingstringsurface_bindingstring+3 more parameters. See the server's own documentation for the full schema.
add_curveUse this when you need a freeform/organic 3D curve — a body feature line, brow, spine rail, or G2 blend between panels — authored as a Curve3D into the user's .kcad.ts immediately before the last top-level return. One authoring path, selected by `kind`: - 'nurbs' — insert a `n...10 params
Use this when you need a freeform/organic 3D curve — a body feature line, brow, spine rail, or G2 blend between panels — authored as a Curve3D into the user's .kcad.ts immediately before the last top-level return. One authoring path, selected by `kind`: - 'nurbs' — insert a `n...
aobjectbobjectbinding_namestringclosedbooleancode*stringcontrolPointsarraydegreeintegerkind*stringnurbs · hermiteknotsarrayweightsarrayadd_path_segmentUse this when you need a freeform/organic 2D outline — an eyewear brow, ergonomic grip, sneaker midsole, or body silhouette — by appending a curved segment to an existing PathBuilder chain on the named `chain_anchor` variable. The call is injected at the END of the chain, imme...14 params
Use this when you need a freeform/organic 2D outline — an eyewear brow, ergonomic grip, sneaker midsole, or body silhouette — by appending a curved segment to an existing PathBuilder chain on the named `chain_anchor` variable. The call is injected at the END of the chain, imme...
aobjectbobjectbinding_namestringchain_anchor*stringcode*stringcontrolPointsarraydegreeintegerendTangentarraykind*stringspline · nurbs · hermiteknotsarraypointsarraystartTangentarraytensionnumberweightsarraytrace_from_imageUse this when you need to trace a reference image into normalized waypoints. Trace pixel-space features from a reference photo into normalized [0..1] waypoints the agent can map to mm via a known scale anchor and feed to path().spline / path().nurbsSegment. Three backends are...9 params
Use this when you need to trace a reference image into normalized waypoints. Trace pixel-space features from a reference photo into normalized [0..1] waypoints the agent can map to mm via a known scale anchor and feed to path().spline / path().nurbsSegment. Three backends are...
backendstringopencv · vision-llm · hybrid · autofeaturesarrayhintstringimageUrl*stringintentstringmaxWaypointsPerFeatureintegerpriorsarrayscaleAnchorobjectvalidatestringwarn · erroradd_variable_sweepUse this when you need an organic swept solid whose cross-section changes along its length — a tapering body, horn, bottle, handle, ring band, fairing, or duct — authored as a variable-section sweep along a spine. Inserts `variableSweep(spine, sections, opts?)` into the .kcad....8 params
Use this when you need an organic swept solid whose cross-section changes along its length — a tapering body, horn, bottle, handle, ring band, fairing, or duct — authored as a variable-section sweep along a spine. Inserts `variableSweep(spine, sections, opts?)` into the .kcad....
binding_namestringclosedbooleancode*stringcontinuitystringC0 · C1 · C2sections*arrayspine_bindingstringspine_closedbooleanspine_pointsarrayadd_textUse this when you need to author text into a kernelCAD script before the last top-level return. One authoring path, selected by `mode`: - 'sketch' — insert a sketch.text(...) call. The emitted sketch is chainable: pair with subsequent .extrude(...) / cut(...) edits to land an...17 params
Use this when you need to author text into a kernelCAD script before the last top-level return. One authoring path, selected by `mode`: - 'sketch' — insert a sketch.text(...) call. The emitted sketch is chainable: pair with subsequent .extrude(...) / cut(...) edits to land an...
alignstringleft · center · rightanchorUnumberanchorVnumberbindAsstringcode*stringcontentstringdepthnumberfacestringfontstringfontFamilystringmode*stringsketch · embosspositionarrayrotationnumberscaleModestringoriginal · native · boundssizenumbertargetstringtextContentstringproject_curveUse this when you need to wrap a 2D closed curve onto a 3D face. Insert a `<shape>.projectCurve({ source, face, scaleMode? })` chained call into a kernelCAD script. The `source` is the structured `{ kind: "sketchCommands", commands: [...] }` wire format the runtime API accepts...7 params
Use this when you need to wrap a 2D closed curve onto a 3D face. Insert a `<shape>.projectCurve({ source, face, scaleMode? })` chained call into a kernelCAD script. The `source` is the structured `{ kind: "sketchCommands", commands: [...] }` wire format the runtime API accepts...
asEdgebooleanbindAsstringcode*stringcommands*arrayface*stringscaleModestringoriginal · native · boundstarget*stringadd_pattern_featureUse this when you need to repeat a feature in a pattern. Insert a Shape.patternLinear / .patternCircular / .patternGrid call into a kernelCAD script before the last top-level return. Pass structured args (kind + the matching spec object). Returns the modified code plus diagnos...7 params
Use this when you need to repeat a feature in a pattern. Insert a Shape.patternLinear / .patternCircular / .patternGrid call into a kernelCAD script before the last top-level return. Pass structured args (kind + the matching spec object). Returns the modified code plus diagnos...
assign_tostringcircularobjectcode*stringgridobjectkind*stringlinear · circular · gridlinearobjecttarget*stringremove_featureUse this when you need to remove a feature line from a script. Remove a single line from a kernelCAD script identified by a substring match. Returns the modified code plus diagnostics from re-evaluating. Refuses to remove the line containing the return statement. Side-effect-f...2 params
Use this when you need to remove a feature line from a script. Remove a single line from a kernelCAD script identified by a substring match. Returns the modified code plus diagnostics from re-evaluating. Refuses to remove the line containing the return statement. Side-effect-f...
code*stringmatch*stringqueryUse this when you need to resolve or inspect topology against a script's lowered geometry. Pass the script as `code` (inline; works on a hosted server) or `file`. Selected by `mode` (default 'evaluate'): - 'evaluate' — list the faces a Query matches ({ query }). Pass expect:'u...7 params
Use this when you need to resolve or inspect topology against a script's lowered geometry. Pass the script as `code` (inline; works on a hosted server) or `file`. Selected by `mode` (default 'evaluate'): - 'evaluate' — list the faces a Query matches ({ query }). Pass expect:'u...
codestringexpectstringany · uniquefeature_idstringfilestringmodestringevaluate · resolve · lineagequerystring | objectrefstringlookup_apiUse this when you need to list the kernelCAD script-runtime surface: global functions (box, path, selectEdges, helix, etc), Shape methods (fillet, sweep, lower, etc), Sketch methods (extrude, revolve, sweep), PathBuilder methods, EdgeQuery/FaceQuery key sets, and featureKindFa...1 params
Use this when you need to list the kernelCAD script-runtime surface: global functions (box, path, selectEdges, helix, etc), Shape methods (fillet, sweep, lower, etc), Sketch methods (extrude, revolve, sweep), PathBuilder methods, EdgeQuery/FaceQuery key sets, and featureKindFa...
intentstringlookup_diagnosticsUse this when you need the kernelCAD 26-code diagnostic catalogue with hint templates. Tiny one-shot call; useful for an agent that wants to pre-populate retry strategies. Hints are also inline on every emitted diagnostic — this tool just gives you the canonical list up front.
Use this when you need the kernelCAD 26-code diagnostic catalogue with hint templates. Tiny one-shot call; useful for an agent that wants to pre-populate retry strategies. Hints are also inline on every emitted diagnostic — this tool just gives you the canonical list up front.
No parameters. Call it with no arguments.
exportUse this when you need to export geometry to a file. One exporter, selected by `target`: - target:'model' — export the script geometry to one file. Pass { file | code }, a required { output_path }, and { format }. Supported formats: stl (binary STL mesh), step (BREP CAD interc...11 params
Use this when you need to export geometry to a file. One exporter, selected by `target`: - target:'model' — export the script geometry to one file. Pass { file | code }, a required { output_path }, and { format }. Supported formats: stl (binary STL mesh), step (BREP CAD interc...
codestringfeature_idstringfilestringformatstringstl · step · dxf · 3mf · glb · objintentstringno_verifybooleanoptionsobjectoutput_dirstringoutput_pathstringpartstringtarget*stringmodel · partlookup_cookbookUse this when you need a canonical pattern snippet for a CAD task. Search the kernelCAD cookbook for canonical pattern snippets. Returns top-k snippets matching the natural-language query, ranked by BM25 over title/tags/keywords/trigger. Use when you need a canonical pattern f...4 params
Use this when you need a canonical pattern snippet for a CAD task. Search the kernelCAD cookbook for canonical pattern snippets. Returns top-k snippets matching the natural-language query, ranked by BM25 over title/tags/keywords/trigger. Use when you need a canonical pattern f...
idstringintentstringknumberquerystringfind_partSearch the bundled parts catalog (offline). For a NEMA-17 motor write `await lib.standard.nema17()`; for a 608 bearing write `await lib.standard.bearing608()`. Do not fan out parallel lookups and do not pass partsBaseUrl unless you set source:"remote". Remote lookups fail with...9 params
Search the bundled parts catalog (offline). For a NEMA-17 motor write `await lib.standard.nema17()`; for a 608 bearing write `await lib.standard.bearing608()`. Do not fan out parallel lookups and do not pass partsBaseUrl unless you set source:"remote". Remote lookups fail with...
categorystringfamilystringintentstringlimitnumberpartsBaseUrlstringquerystringsourcestringlocal · remote · autostandardstringtagstringfetch_partFetch one bundled catalog part. Prefer `await lib.standard.nema17()` and `await lib.standard.bearing608()` — they are offline and do not download remote STEP. A lookup that cannot finish fails within 45s with errorCode parts.lookup.timeout. Do not retry in parallel.8 params
Fetch one bundled catalog part. Prefer `await lib.standard.nema17()` and `await lib.standard.bearing608()` — they are offline and do not download remote STEP. A lookup that cannot finish fails within 45s with errorCode parts.lookup.timeout. Do not retry in parallel.
categorystringfamilystringidstringincludeModelbooleanmodelobjectpartsBaseUrlstringquerystringstandardstringsolve_sketchUse this when you need to solve a 2D sketch constraint set. Solve a 2D sketch constraint set. Side-effect-free: pass { entities, constraints } and receive solved entities plus the original constraints. Entities are POINT, LINE, and CIRCLE records; constraints use the kernelCAD...2 params
Use this when you need to solve a 2D sketch constraint set. Solve a 2D sketch constraint set. Side-effect-free: pass { entities, constraints } and receive solved entities plus the original constraints. Entities are POINT, LINE, and CIRCLE records; constraints use the kernelCAD...
constraints*arrayentities*arrayadd_constraintUse this when you need to add a sketch constraint to a list. Append one validated sketch constraint to a constraint list. Side-effect-free: pass { constraints, constraint } and receive the updated list.2 params
Use this when you need to add a sketch constraint to a list. Append one validated sketch constraint to a constraint list. Side-effect-free: pass { constraints, constraint } and receive the updated list.
constraint*objectconstraintsarrayadd_partUse this when you need to add a part to an assembly. Durably insert `const <binding> = <assembly>.part(partName, shapeExpression, opts?)` before the final top-level return in a kernelCAD source string. Returns modified source plus diagnostics from re-evaluating it. Side-effect...6 params
Use this when you need to add a part to an assembly. Durably insert `const <binding> = <assembly>.part(partName, shapeExpression, opts?)` before the final top-level return in a kernelCAD source string. Returns modified source plus diagnostics from re-evaluating it. Side-effect...
assembly_binding*stringatarraybinding_namestringcode*stringpart_name*stringshape_expression*stringadd_connectorUse this when you need to add a mate connector to a part. Durably insert `<partBinding>.connector(name, { type, origin, axis?, normal? })` before the final top-level return. Use the part binding returned by add_part. Returns modified source plus diagnostics from re-evaluation....7 params
Use this when you need to add a mate connector to a part. Durably insert `<partBinding>.connector(name, { type, origin, axis?, normal? })` before the final top-level return. Use the part binding returned by add_part. Returns modified source plus diagnostics from re-evaluation....
axisarraycode*stringname*stringnormalarrayorigin*valuepart_binding*stringtype*stringframe · axis · planar · balladd_mateUse this when you need to author a mate-graph relationship into the source, selected by `relation` (default 'mate'): - 'mate' — a typed mate between two connectors ({ name, a, b, type, pose?, limitsDeg?, limitsMm? }). - 'coupling' — couple a driven mate to a source mate by rat...22 params
Use this when you need to author a mate-graph relationship into the source, selected by `relation` (default 'mate'): - 'mate' — a typed mate between two connectors ({ name, a, b, type, pose?, limitsDeg?, limitsMm? }). - 'coupling' — couple a driven mate to a source mate by rat...
astringactuatorstringassembly_binding*stringbstringcode*stringdrivenstringdrivenMatesarrayinputstringkindstringdirect · link-rod · four-bar · gear-pair · belt · tendonlimitsDegarraylimitsMmarraynamestringnotesstringoffsetnumberoutputstringpatharrayposeobjectrationumberrelationstringmate · coupling · transmissionsourcestring+2 more parameters. See the server's own documentation for the full schema.
add_workspace_targetUse this when you need to declare a reachability target for a connector. Durably insert `<assembly>.workspace(connectorRef, { reachable, toleranceMm? })` before the final top-level return. Workspace targets are checked by solvedModel validation/review pose-envelope gates. Retu...5 params
Use this when you need to declare a reachability target for a connector. Durably insert `<assembly>.workspace(connectorRef, { reachable, toleranceMm? })` before the final top-level return. Workspace targets are checked by solvedModel validation/review pose-envelope gates. Retu...
assembly_binding*stringcode*stringconnector_ref*stringreachable*arraytoleranceMmnumberset_scene_returnUse this when you need to set how the script returns its assembly. Replace the final top-level return statement with `return <assembly>.model();` or `return <assembly>.solvedModel(poses, options?);`. Use solvedModel for mate-authored mechanisms so FK and validation run. Return...5 params
Use this when you need to set how the script returns its assembly. Replace the final top-level return statement with `return <assembly>.model();` or `return <assembly>.solvedModel(poses, options?);`. Use solvedModel for mate-authored mechanisms so FK and validation run. Return...
assembly_binding*stringcode*stringmode*stringmodel · solvedModeloptionsobjectposesobjectsolve_matesUse this when you need to solve the mate graph and get part poses. Run the v0.6 mate-graph solver on the active assembly. Returns { status, poses, iterations? } where each pose is a serialized Transform ({ translation, rotateAxis, rotateDeg }). Optional poses overrides mate po...2 params
Use this when you need to solve the mate graph and get part poses. Run the v0.6 mate-graph solver on the active assembly. Returns { status, poses, iterations? } where each pose is a serialized Transform ({ translation, rotateAxis, rotateDeg }). Optional poses overrides mate po...
assemblystringposesobjectreview_cadRun a deterministic mechanism-fitness review on supplied kernelCAD code or a file. It performs a full evaluation, replaces the active MCP session model on success, and clears that session if evaluation fails. The script may load referenced assets. The review validates the asse...15 params
Run a deterministic mechanism-fitness review on supplied kernelCAD code or a file. It performs a full evaluation, replaces the active MCP session model on success, and clears that session if evaluation fails. The script may load referenced assets. The review validates the asse...
assemblystringcodestringcombinatorialbooleandesignGoalstringepsilonMm3numberfilestringincludeInterferencebooleanincludePoseEnvelopebooleanphysicalUseCaseLevelstringreachability · statics · reactionsphysicalUseCaseSamplesPerMateintegerpreserveInterfacesarrayrequirePhysicalUseCasebooleansamplesPerMateintegertimeBudgetMsnumbertrackConnectorsarraydesign_loopUse this when the goal is complex / production / enclosure / gearbox / robot-arm / multi-body, or when you need evaluate→review/verify→revise until green. PREFERRED over one-shot evaluate_script+open_in_studio for Adam-level parts. Runs a CAD design loop over attempt scripts:...19 params
Use this when the goal is complex / production / enclosure / gearbox / robot-arm / multi-body, or when you need evaluate→review/verify→revise until green. PREFERRED over one-shot evaluate_script+open_in_studio for Adam-level parts. Runs a CAD design loop over attempt scripts:...
allowReviewWarningsarrayassemblystringattempts*arrayautoRevisebooleancombinatorialbooleanconsensusbooleanepsilonMm3numbergoal*stringincludeInterferencebooleanincludePoseEnvelopebooleanoutputRecordPathstringpreserveInterfacesarrayrecordTitlestringrequirePhysicalAcceptancebooleanrequireVisualReviewbooleanrequirementsarraysamplesPerMateintegerstopOnPassbooleantrackConnectorsarrayflatten_patternUse this when you need the unfolded flat pattern of a bent sheet-metal part. Return the unfolded 2D flat-pattern of a bent sheet-metal Shape as a Region (outer polyline + holes + bend lines + sketch plane). Any number of parallel bends; crossing bends need corner relief. Pass...3 params
Use this when you need the unfolded flat pattern of a bent sheet-metal part. Return the unfolded 2D flat-pattern of a bent sheet-metal Shape as a Region (outer polyline + holes + bend lines + sketch plane). Any number of parallel bends; crossing bends need corner relief. Pass...
codestringfeatureIdstringfilestringevaluate_sdfUse this when you need to sample a signed-distance field at a point. Sample the signed distance from an in-script sdf.* field at a 3D point. Returns { distance, inside, aabb, kind }. Distance is in mm; negative = inside the surface, 0 = exactly on the surface, positive = outsi...4 params
Use this when you need to sample a signed-distance field at a point. Sample the signed distance from an in-script sdf.* field at a 3D point. Returns { distance, inside, aabb, kind }. Distance is in mm; negative = inside the surface, 0 = exactly on the surface, positive = outsi...
codestringfieldName*stringfilestringpoint*arraycapture_animationUse this when you need to render a script's animation timeline to a video, or a 360° turntable of a model for sharing. Capture a kernelCAD script's animationView({...}) timeline to an MP4 (ffmpeg) or a PNG frame sequence, verifying the sampled poses for part interference. FILE...17 params
Use this when you need to render a script's animation timeline to a video, or a 360° turntable of a model for sharing. Capture a kernelCAD script's animationView({...}) timeline to an MP4 (ffmpeg) or a PNG frame sequence, verifying the sampled poses for part interference. FILE...
backgroundstringduration_msnumberelevation_degnumberenvironmentstringfile*stringfocusarrayfpsnumberframes_dirstringheightintegerhidearrayno_verifybooleanoutput_pathstringpresetstringdefault · publishshadowbooleanturntablebooleanverify_everyintegerwidthintegerrender_previewUse this when you need to LOOK at a kernelCAD model — render its script to deterministic PNG views for visual self-check (the visual half of the evaluate → render → inspect → fix loop), with NO studio or dev server required. Pass { code } (inline source) or { file } (a .kcad.t...23 params
Use this when you need to LOOK at a kernelCAD model — render its script to deterministic PNG views for visual self-check (the visual half of the evaluate → render → inspect → fix loop), with NO studio or dev server required. Pass { code } (inline source) or { file } (a .kcad.t...
backgroundstringbase_urlstringcodestringenvironmentstringexplodeobjectfilestringfocusarrayheightintegerhidearrayintentstringno_mechanism_checkbooleanno_watermarkbooleanout_dirstringoverlaystringzebra · curvature · continuityposestringpresetstringdefault · publishscreenshot_timeout_msintegersectionobjectshadingstringsmooth · flatshadowboolean+3 more parameters. See the server's own documentation for the full schema.
resolve_assumptionsUse this when you need to confirm or override the open facts in an assumption ledger from trace_from_image (missing scale, inferred/assumed values) before committing geometry built from a reference photo. Reads the persisted `<model>.ledger.json` at `ledgerPath`, applies each...2 params
Use this when you need to confirm or override the open facts in an assumption ledger from trace_from_image (missing scale, inferred/assumed values) before committing geometry built from a reference photo. Reads the persisted `<model>.ledger.json` at `ledgerPath`, applies each...
ledgerPath*stringresolutions*arrayrun_feaUse this when you need to know whether a part will hold a load. Runs a linear-static structural study and returns evidence — peak von Mises stress (MPa), peak displacement (mm), the minimum safety factor against the material yield (taken away from the clamp-singular edges of t...14 params
Use this when you need to know whether a part will hold a load. Runs a linear-static structural study and returns evidence — peak von Mises stress (MPa), peak displacement (mm), the minimum safety factor against the material yield (taken away from the clamp-singular edges of t...
codestringfilestringfixedstring | objectheatmapsbooleanloadsarraymaterialstring | objectmesh_sizenumbermesh_timeout_msnumbermin_safety_factornumberoutput_dirstringrefinebooleansolve_timeout_msnumbersolverstringauto · calculix · in-processstudystringfea_summaryUse this when you need a structural check's context without paying for a solve. Read-only: returns the stored summary of a previous run_fea (pass the same `output_dir`), whether the CalculiX + gmsh toolchain is available on this machine (with the install command when it is not...1 params
Use this when you need a structural check's context without paying for a solve. Read-only: returns the stored summary of a previous run_fea (pass the same `output_dir`), whether the CalculiX + gmsh toolchain is available on this machine (with the install command when it is not...
output_dirstringsend_to_printerUse this when you need to upload a .gcode file (e.g. written by export with target: "model", format: "gcode") to a real network printer and, by default, start the print. protocol: 'octoprint' (POST /api/files/local with an X-Api-Key), 'moonraker' (Klipper's POST /server/files/...12 params
Use this when you need to upload a .gcode file (e.g. written by export with target: "model", format: "gcode") to a real network printer and, by default, start the print. protocol: 'octoprint' (POST /api/files/local with an X-Api-Key), 'moonraker' (Klipper's POST /server/files/...
access_codestringapi_keystringdry_runbooleanfilenamestringgcode_path*stringhost*stringmodel_3mf_pathstringportnumberprinterstringgeneric-fdm · bambu-a1-mini · bambu-a1 · bambu-p1s · bambu-p1p · bambu-x1cprotocol*stringoctoprint · moonraker · bambu-lanserialstringstart_printbooleanrepair_scriptUse this when evaluate_script reported an error and you want the fix applied rather than described. Takes the candidates why_did_this_fail derives for a diagnostic, applies them one at a time, re-evaluates after each, and keeps the first that clears the diagnostic without intr...6 params
Use this when evaluate_script reported an error and you want the fix applied rather than described. Takes the candidates why_did_this_fail derives for a diagnostic, applies them one at a time, re-evaluates after each, and keeps the first that clears the diagnostic without intr...
codestringdiagnosticstringfilestringintentstringmax_attemptsintegerstrategystringapply-first · try-all · dry-runsweep_toleranceUse this when you need to know where and why a design breaks across a tolerance/dimension range, not just whether it builds at one nominal value. Declares one or more param() names with a { values: [...] } list or a { min, max, steps } range (number params are bisected; choice...7 params
Use this when you need to know where and why a design breaks across a tolerance/dimension range, not just whether it builds at one nominal value. Declares one or more param() names with a { values: [...] } list or a { min, max, steps } range (number params are bisected; choice...
assemblystringboundaryBudgetnumberboundaryTolerancenumbercodestringfilestringgatesobjectparams*objectdiff_geometryUse this when you need to know WHAT MATERIAL changed between two versions of a model, not just how much. The deeper sibling of diff_scripts: a volume delta alone is ambiguous (a boss that grew and a pocket that deepened report the same magnitude, and a part that only moved rep...7 params
Use this when you need to know WHAT MATERIAL changed between two versions of a model, not just how much. The deeper sibling of diff_scripts: a volume delta alone is ambiguous (a boss that grew and a pocket that deepened report the same magnitude, and a part that only moved rep...
baseCodestringbaseFilestringcodestringfilestringout_dirstringparamsobjectrenderbooleandrawing_to_cadUse this when the reference for a part is a 2D engineering drawing PDF (orthographic views with dimensions), not a photo. Deterministic, no vision model: reads the vector linework (stroke width, dash) and positioned text; classifies visible / hidden / center / dimension / exte...7 params
Use this when the reference for a part is a 2D engineering drawing PDF (orthographic views with dimensions), not a photo. Deterministic, no vision model: reads the vector linework (stroke width, dash) and positioned text; classifies visible / hidden / center / dimension / exte...
intentstringoutstringpageintegerpathstringpdfBase64stringprojectionstringthird-angle · first-angleverifybooleanmesh_to_featuresUse this when you are handed an STL, OBJ or 3MF of a mostly prismatic mechanical part (plate, bracket, spacer, flange, housing block) and need an EDITABLE kernelCAD model of it rather than a faceted lib.fromSTL import. Deterministic, measured, self-verifying: it welds and chec...9 params
Use this when you are handed an STL, OBJ or 3MF of a mostly prismatic mechanical part (plate, bracket, spacer, flange, housing block) and need an EDITABLE kernelCAD model of it rather than a faceted lib.fromSTL import. Deterministic, measured, self-verifying: it welds and chec...
datastringfilestringformatstringstl · obj · 3mfmaxDeviationMmnumbermaxPassesnumbermaxTrianglesnumberminIoUnumberoutstringweldToleranceMmnumberexecute_cookbookUse this when you need evaluate_script (and optionally open_in_studio) for an industry / cookbook demo in ONE step — after lookup_cookbook for industry demos, prefer execute_cookbook when you need evaluate+Studio together; empty lookup is not a stop (freehand-author instead)....9 params
Use this when you need evaluate_script (and optionally open_in_studio) for an industry / cookbook demo in ONE step — after lookup_cookbook for industry demos, prefer execute_cookbook when you need evaluate+Studio together; empty lookup is not a stop (freehand-author instead)....
continue_designbooleandryRunbooleanidstringintentstringkernelstringocct · smlibnew_projectbooleanopenInStudiobooleanprojectstringquerystringget_selectionUse this when you need to read the human/agent selection in a local Studio session. Returns one clicked face or edge (or null), with current-generation mesh-local shapeIndex/kind/id and creating featureId. During a rebuild selection is null with “selection pending rebuild” unt...2 params
Use this when you need to read the human/agent selection in a local Studio session. Returns one clicked face or edge (or null), with current-generation mesh-local shapeIndex/kind/id and creating featureId. During a rebuild selection is null with “selection pending rebuild” unt...
session*stringstudio_url*stringset_selectionUse this when you need to replace the shared local Studio face/edge selection, or clear it with selection:null. The viewer highlights the pick on its next sync (300 ms). Does not edit geometry. Pass model_generation from get_selection; writes from an older generation are rejec...4 params
Use this when you need to replace the shared local Studio face/edge selection, or clear it with selection:null. The viewer highlights the pick on its next sync (300 ms). Does not edit geometry. Pass model_generation from get_selection; writes from an older generation are rejec...
model_generation*integerselection*valuesession*stringstudio_url*stringimport_stepUse this when the user wants to start from their own STEP or STL file (a part they designed elsewhere, a vendor model). Give exactly one source: url (a public https direct-download link), upload (a file the user attached in ChatGPT), or content_base64 (raw bytes, small files o...8 params
Use this when the user wants to start from their own STEP or STL file (a part they designed elsewhere, a vendor model). Give exactly one source: url (a public https direct-download link), upload (a file the user attached in ChatGPT), or content_base64 (raw bytes, small files o...
allow_openbooleancontent_base64stringfile_namestringformatstringstep · stlnamestringoutput_dirstringuploadobjecturlstringfab_packUse this when the user wants to get a part made: packages the fabrication files into one directory plus a zip, and returns links to public instant-quote pages. Pass { file | code } and output_dir; optional scope ('part', default — one script's files; 'bom' — the whole assembly...7 params
Use this when the user wants to get a part made: packages the fabrication files into one directory plus a zip, and returns links to public instant-quote pages. Pass { file | code } and output_dir; optional scope ('part', default — one script's files; 'bom' — the whole assembly...
codestringfilestringformatsarraynamestringoutput_dir*stringprocessesarrayscopestringpart · bom · workshopdfm_reviewUse this when you need a manufacturability (DFM) report before printing or machining a part: returns a pass/fail checklist, no dfmSpec(...) needed. Pass { file | code } and optional processes (default ['fdm', 'cnc']). FDM 3D printing checks: fdm.overhangs (unsupported overhang...11 params
Use this when you need a manufacturability (DFM) report before printing or machining a part: returns a pass/fail checklist, no dfmSpec(...) needed. Pass { file | code } and optional processes (default ['fdm', 'cnc']). FDM 3D printing checks: fdm.overhangs (unsupported overhang...
approach_axesarraybuild_directionstring+x · -x · +y · -y · +z · -zcodestringfilestringmax_bridge_mmnumbermax_overhang_degnumbermax_undercut_area_mm2numbernozzle_mmnumberprinterstringgeneric-fdm · bambu-a1-mini · bambu-a1 · bambu-p1s · bambu-p1p · bambu-x1cprocessesarraytool_diameter_mmnumberray_pickUse this when you need the faces a ray hits in a local Studio model, nearest first, with points, distances, and normals. Inputs are model units (mm); direction is normalized. Requires the local Studio URL and session token for the same script, reads the current model generatio...7 params
Use this when you need the faces a ray hits in a local Studio model, nearest first, with points, distances, and normals. Inputs are model units (mm); direction is normalized. Requires the local Studio URL and session token for the same script, reads the current model generatio...
codestringdirection*arrayfeature_idstringfilestringorigin*arraysession*stringstudio_url*stringinspect_nurbsEvaluate supplied kernelCAD code or a file to capture an authored NURBS curve (nurbsCurve/spline3d). Returns degree, distinct knots and multiplicities, poles, weights, rational and uniformWeights flags, hasNonUnitWeights, and parameter range. Defaults to the last captured curv...3 params
Evaluate supplied kernelCAD code or a file to capture an authored NURBS curve (nurbsCurve/spline3d). Returns degree, distinct knots and multiplicities, poles, weights, rational and uniformWeights flags, hasNonUnitWeights, and parameter range. Defaults to the last captured curv...
codestringfeature_idstringfilestringfit_planeUse this when you need to fit an orthogonal least-squares plane to XYZ point-cloud data. Returns centroid, deterministic unit normal, signed point residuals, RMS residual and maximum absolute residual. Accepts points already parsed by the caller from scan data or mesh vertices...1 params
Use this when you need to fit an orthogonal least-squares plane to XYZ point-cloud data. Returns centroid, deterministic unit normal, signed point residuals, RMS residual and maximum absolute residual. Accepts points already parsed by the caller from scan data or mesh vertices...
points*arraymesh_booleanUse this when the user wants to union, subtract, or intersect two imported triangle mesh solids (STL, OBJ, or 3MF). Supports union, subtract (A minus B) and intersect. Pass each operand as { file } on the MCP server or { data } with base64 mesh bytes; formats are detected or m...5 params
Use this when the user wants to union, subtract, or intersect two imported triangle mesh solids (STL, OBJ, or 3MF). Supports union, subtract (A minus B) and intersect. Pass each operand as { file } on the MCP server or { data } with base64 mesh bytes; formats are detected or m...
a*objectb*objectmaxTrianglesintegeroperation*stringunion · subtract · intersecttoleranceMmnumberexplode_viewUse this when you need an ordered exploded-view plan for an assembly. Supply parts as {name,center:[x,y,z],size:[x,y,z]} in mm. Optional assembly_order sets the sequence; missing order falls back to input part order, and unlisted/unknown order refs are reported. Choose mode ax...6 params
Use this when you need an ordered exploded-view plan for an assembly. Supply parts as {name,center:[x,y,z],size:[x,y,z]} in mm. Optional assembly_order sets the sequence; missing order falls back to input part order, and unlisted/unknown order refs are reported. Choose mode ax...
assembly_orderarrayaxisarrayduration_msintegermodestringaxis · radialpartsarrayspacingnumberapply_surface_blendUse this when you need to author and evaluate a fillet or chamfer on a kernelCAD Shape. Inserts Shape.fillet(radius, selector, { continuity: G1|G2 }) or Shape.chamfer(distance, selector) through the existing public API and returns the patched source plus evaluation diagnostics...7 params
Use this when you need to author and evaluate a fillet or chamfer on a kernelCAD Shape. Inserts Shape.fillet(radius, selector, { continuity: G1|G2 }) or Shape.chamfer(distance, selector) through the existing public API and returns the patched source plus evaluation diagnostics...
code*stringcontinuitystringG1 · G2distancenumberoperationstringfillet · chamferradiusnumberselectorvalueshape_binding*stringwrite_bomUse this to merge a supplied handoff BOM with optional KernelCAD catalog parts, MPNs and pricing, write a local CSV, and return Sheets-ready rows. Pass exactly one of handoff, handoff_json or handoff_path. The default output is a new file under artifacts/bom; an explicit outpu...6 params
Use this to merge a supplied handoff BOM with optional KernelCAD catalog parts, MPNs and pricing, write a local CSV, and return Sheets-ready rows. Pass exactly one of handoff, handoff_json or handoff_path. The default output is a new file under artifacts/bom; an explicit outpu...
catalog_partsarrayhandoffobjecthandoff_jsonstringhandoff_pathstringoutput_pathstringoverwritebooleanblockout_assemblyUse this when you have a list of parts with bounding boxes and positions (from a layout, spreadsheet, another tool or a sketch) and need an evaluable placeholder assembly script. Pass parts as { name, bboxMm:[x,y,z], positionMm:[x,y,z], rotationDeg?, anchors? } in mm; position...3 params
Use this when you have a list of parts with bounding boxes and positions (from a layout, spreadsheet, another tool or a sketch) and need an evaluable placeholder assembly script. Pass parts as { name, bboxMm:[x,y,z], positionMm:[x,y,z], rotationDeg?, anchors? } in mm; position...
connectionsarraynamestringparts*arrayprice_partStart or read the real price for making the part. Cheap. Returns status "ready" with estimate_cents and summary, or "pricing" while the makers are asked (call again in a few seconds). Creates nothing and charges nothing.3 params
Start or read the real price for making the part. Cheap. Returns status "ready" with estimate_cents and summary, or "pricing" while the makers are asked (call again in a few seconds). Creates nothing and charges nothing.
methodobjectslugstringsourcestringorder_partOrder the part made: creates the production request and returns a pay_url for the user. Propose the manufacturing method from the user's words and the part, pass it as method with a one-line reason. The price is the real maker price; never invent or send one. Tell the user the...3 params
Order the part made: creates the production request and returns a pay_url for the user. Propose the manufacturing method from the user's words and the part, pass it as method with a one-line reason. The price is the real maker price; never invent or send one. Tell the user the...
methodobjectslugstringsourcestringestimate_assembly_manufacturingPrepare an indicative estimate and durable manufacturing checklist for a whole CAD assembly, including mixed materials and processes. The server reads material and sheet thickness from CAD, selects supported processes, checks live supplier offers, and reports any missing price...5 params
Prepare an indicative estimate and durable manufacturing checklist for a whole CAD assembly, including mixed materials and processes. The server reads material and sheet thickness from CAD, selects supported processes, checks live supplier offers, and reports any missing price...
assemblystringparamsobjectprojectSlugstringprojectVersionintegersourcestringrequest_assembly_quoteSubmit a manufacturing quote request after the user has reviewed and explicitly approved the checklist and every displayed warning. KernelCAD staff will confirm the final itemized price. This sends the request for human review and does not charge the customer or start checkout.10 params
Submit a manufacturing quote request after the user has reviewed and explicitly approved the checklist and every displayed warning. KernelCAD staff will confirm the final itemized price. This sends the request for human review and does not charge the customer or start checkout.
accessTokenstringassemblystringchecklist*objectemail*stringidempotencyKey*stringparamsobjectprojectSlugstringprojectVersionintegerrequestId*stringsourcestringSponsors
Readme
kernelCAD — CAD for coding agents, with editable source and checks
Describe a mechanical part in ChatGPT, Claude, Codex, Cursor, or the browser. kernelCAD turns the brief into editable parametric CAD, lets you inspect and revise the geometry, and exports STEP, STL, and drawings.
Start here: Open Studio · Connect your agent · Watch real tool workflows · Read the prompt-to-STEP guide
A parameterized planetary gear stage produced through the kernelCAD agent workflow
Why not just generate an image? Your design remains .kcad.ts source:
named features, editable dimensions and assembly structure. Agents can
evaluate it, check constraints and clearances, revise the source, and export
files for an engineer to inspect. Reproducible example source
and documented checks are public.
Geometry checks are not material-strength or manufacturing certification.
Details
- Repository
- github.com/w1ne/kernelcad-web
- Website
- kernelcad.com
- Categories
- Communication & Messaging, Design & Creative
- Transport
- HTTP
- Registry
- MCP registry, active
- Resources
- 2
- Tools verified
- Nov 6, 2026