home / schema
Public MCP schema
Machine-readable tool contract for agents and clients. Generated from the same local registry that powers /docs/mcp-tools.
/schema/mcp-tools.json
· alias /schema.json
· human reference MCP tools
· example library
schemaVersion 1, scope
local, 60 tools.
Hosted discovery can differ by auth and profile — ask the connected server for its live tool list.
| Tool | Description |
|---|---|
evaluate_script |
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 o… |
diff_scripts |
Use this when you need to see exactly what changed between two script versions. Structured geometric delta between two versions of a kern… |
inspect |
Use this when you need to read facts about a model. One reader, selected by `of`: - 'assembly' — physical assembly inventory (parts, bbox… |
verify |
Use this when you need to check a design against a rule set. One verifier, selected by `check`: - 'assembly' — static assembly review ({ … |
why_did_this_fail |
Use this when you need to trace why a feature failed. Walk the upstream chain of a failing feature. Returns the diagnostics of the reques… |
set_param |
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-… |
add_feature |
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-… |
add_surface |
Use this when you need an organic, freeform, or swept shape — a body shell, panel, fairing, ergonomic curve, lens, or sculpted form — aut… |
add_curve |
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 Cu… |
add_path_segment |
Use this when you need a freeform/organic 2D outline — an eyewear brow, ergonomic grip, sneaker midsole, or body silhouette — by appendin… |
trace_from_image |
Use this when you need to trace a reference image into normalized waypoints. Trace pixel-space features from a reference photo into norma… |
add_variable_sweep |
Use this when you need an organic swept solid whose cross-section changes along its length — a tapering body, horn, bottle, handle, ring … |
add_text |
Use this when you need to author text into a kernelCAD script before the last top-level return. One authoring path, selected by `mode`: -… |
project_curve |
Use this when you need to wrap a 2D closed curve onto a 3D face. Insert a `<shape>.projectCurve({ source, face, scaleMode? })` chained ca… |
add_pattern_feature |
Use this when you need to repeat a feature in a pattern. Insert a Shape.patternLinear / .patternCircular / .patternGrid call into a kerne… |
remove_feature |
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 mat… |
query |
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 … |
lookup_api |
Use this when you need to list the kernelCAD script-runtime surface: global functions (box, path, selectEdges, helix, etc), Shape methods… |
lookup_diagnostics |
Use this when you need the kernelCAD 26-code diagnostic catalogue with hint templates. Tiny one-shot call; useful for an agent that wants… |
export |
Use this when you need to export geometry to a file. One exporter, selected by `target`: - target:'model' — export the script geometry to… |
lookup_cookbook |
Use this when you need a canonical pattern snippet for a CAD task. Search the kernelCAD cookbook for canonical pattern snippets. Returns … |
find_part |
Use this when you need to find a part in the catalog. Discover bundled (and optionally remote) part-catalog records by fuzzy query and fa… |
fetch_part |
Use this when you need to download a catalog part as a STEP file. Resolve an id (or single-match query) to a part record and write its ST… |
solve_sketch |
Use this when you need to solve a 2D sketch constraint set. Solve a 2D sketch constraint set. Side-effect-free: pass { entities, constrai… |
add_constraint |
Use this when you need to add a sketch constraint to a list. Append one validated sketch constraint to a constraint list. Side-effect-fre… |
add_part |
Use this when you need to add a part to an assembly. Durably insert `const <binding> = <assembly>.part(partName, shapeExpression, opts?)`… |
add_connector |
Use this when you need to add a mate connector to a part. Durably insert `<partBinding>.connector(name, { type, origin, axis?, normal? })… |
add_mate |
Use this when you need to author a mate-graph relationship into the source, selected by `relation` (default 'mate'): - 'mate' — a typed m… |
add_workspace_target |
Use this when you need to declare a reachability target for a connector. Durably insert `<assembly>.workspace(connectorRef, { reachable, … |
set_scene_return |
Use this when you need to set how the script returns its assembly. Replace the final top-level return statement with `return <assembly>.m… |
solve_mates |
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 { statu… |
review_cad |
Run a deterministic mechanism-fitness review on supplied kernelCAD code or a file. It performs a full evaluation, replaces the active MCP… |
design_loop |
Use this when the goal is complex / production / enclosure / gearbox / robot-arm / multi-body, or when you need evaluate→review/verify→re… |
flatten_pattern |
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 Sh… |
evaluate_sdf |
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 poi… |
capture_animation |
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 kernelCA… |
render_preview |
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… |
resolve_assumptions |
Use this when you need to confirm or override the open facts in an assumption ledger from trace_from_image (missing scale, inferred/assum… |
run_fea |
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 Mis… |
fea_summary |
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_f… |
send_to_printer |
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 a… |
repair_script |
Use this when evaluate_script reported an error and you want the fix applied rather than described. Takes the candidates why_did_this_fai… |
sweep_tolerance |
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 nomina… |
diff_geometry |
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_scrip… |
drawing_to_cad |
Use this when the reference for a part is a 2D engineering drawing PDF (orthographic views with dimensions), not a photo. Deterministic, … |
mesh_to_features |
Use this when you are handed an STL, OBJ or 3MF of a mostly prismatic mechanical part (plate, bracket, spacer, flange, housing block) and… |
execute_cookbook |
Use this when you need evaluate_script (and optionally open_in_studio) for an industry / cookbook demo in ONE step — after lookup_cookboo… |
get_selection |
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 curr… |
set_selection |
Use this when you need to replace the shared local Studio face/edge selection, or clear it with selection:null. The viewer highlights the… |
import_step |
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 … |
fab_pack |
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 publi… |
dfm_review |
Use this when you need a manufacturability (DFM) report before printing or machining a part: returns a pass/fail checklist, no dfmSpec(..… |
ray_pick |
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… |
inspect_nurbs |
Evaluate supplied kernelCAD code or a file to capture an authored NURBS curve (nurbsCurve/spline3d). Returns degree, distinct knots and m… |
fit_plane |
Use this when you need to fit an orthogonal least-squares plane to XYZ point-cloud data. Returns centroid, deterministic unit normal, sig… |
mesh_boolean |
Use this when the user wants to union, subtract, or intersect two imported triangle mesh solids (STL, OBJ, or 3MF). Supports union, subtr… |
explode_view |
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 … |
apply_surface_blend |
Use this when you need to author and evaluate a fillet or chamfer on a kernelCAD Shape. Inserts Shape.fillet(radius, selector, { continui… |
write_bom |
Merge a supplied handoff BOM with optional KernelCAD catalog parts, MPNs and pricing, then write a local CSV and return Sheets-ready rows… |
blockout_assembly |
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 … |