# kernelcad (slim) > kernelcad, an MCP server by kernelcad.com, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Agent-first CAD: editable .kcad.ts source, deterministic review, OpenCASCADE kernel. - Full: https://www.anchorterminal.com/tools/kernelcad.md (~3,600 tokens) · this version ~3,530 tokens · JSON https://www.anchorterminal.com/tools/kernelcad.json · canonical https://www.anchorterminal.com/tools/kernelcad - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-04 # kernelcad > Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/ - Kind: MCP server, by kernelcad.com (https://kernelcad.com) - Listed because: It's published in the registry under kernelcad.com, a namespace the registry only gives to whoever proves they control that domain. - What the official MCP registry says: Agent-first CAD: editable .kcad.ts source, deterministic review, OpenCASCADE kernel. ## Facts - MCP registry: `com.kernelcad/kernelcad` 0.11.2 - Endpoint: https://mcp.kernelcad.com/mcp (streamable HTTP) - Package: npm `kernelcad` (stdio) - Source: https://github.com/w1ne/kernelCAD-web - npm downloads a week: 254 - GitHub stars: 25 - Registry entry updated: 2026-06-02 ## Tools - Tools it lists (56, about 52,615 tokens of context, `tools/list` without credentials over MCP 2025-11-25, checked 2026-10-04 22:23 UTC): - `review_paint_peek_latest` (read-only): Return the newest brush-painted review packet from a Studio session. After sharing a /p/ link, the user can open it in the browser and paint marks over… - `open_in_studio` (writes): Save the model as a kernelCAD project AND show it: persists a project revision, returns the interactive Studio viewer (MCP Apps / ChatGPT outputTemplate), and… - `get_project` (read-only): 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… - `get_project_revision` (read-only): 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… - `get_latest_render` (read-only): 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… - `get_model_mesh` (read-only): 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… - `request_upload` (writes): 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,… - `lookup_authoring_skill` (read-only): Return the kernelcad-authoring skill — conventions for writing .kcad.ts scripts (API surface, parameters, evaluation contract, common pitfalls) — in sections.… - `mesh_summary` (read-only): 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… - `evaluate_script` (read-only): Use this when you need to run a script and check it compiles. Run a kernelCAD .kcad.ts script and report pass/fail + feature count + diagnostics. When the… - `diff_scripts` (read-only): 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… - `inspect` (read-only): Use this when you need to read facts about a model. One reader, selected by `of`: - 'assembly' — physical assembly inventory (parts, bboxes, connectors, mates,… - `verify` (read-only): Use this when you need to check a design against a rule set. One verifier, selected by `check`: - 'assembly' — mate-aware assembly validator on the active… - `why_did_this_fail` (read-only): 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… - `set_param` (writes): 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.… - `add_feature` (writes): 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… - `add_surface` (writes): 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… - `add_curve` (writes): 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… - `add_path_segment` (writes): 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… - `trace_from_image` (writes): Use this when you need to trace features from a reference photo into waypoints. Trace pixel-space features from a reference photo into normalized [0..1]… - `add_variable_sweep` (writes): Use this when you need an organic swept solid whose cross-section changes along its length — a tapering body, horn, bottle, fairing, or duct — authored as a… - `add_text` (writes): 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… - `project_curve` (writes): Use this when you need to wrap a 2D closed curve onto a 3D face. Insert a `.projectCurve({ source, face, scaleMode? })` chained call into a kernelCAD… - `add_pattern_feature` (writes): 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… - `remove_feature` (writes): 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… - `query` (read-only): Use this when you need to resolve or inspect topology against a script's lowered geometry. Selected by `mode` (default 'evaluate'): - 'evaluate' — inspect a… - `lookup_api` (read-only): Use this when you need to list the kernelCAD script-runtime surface: global functions (box, path, selectEdges, helix, etc), Shape methods (fillet, sweep,… - `lookup_diagnostics` (read-only): 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… - `export` (writes): 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… - `lookup_cookbook` (read-only): 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… - `find_part` (read-only): 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()`.… - `fetch_part` (read-only): Fetch one bundled catalog part. Prefer `await lib.standard.nema17()` and `await lib.standard.bearing608()` — they are offline and do not download remote STEP.… - `solve_sketch` (read-only): 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… - `add_constraint` (writes): 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,… - `add_part` (writes): Use this when you need to add a part to an assembly. Durably insert `const = .part(partName, shapeExpression, opts?)` before the final… - `add_connector` (writes): Use this when you need to add a mate connector to a part. Durably insert `.connector(name, { type, origin, axis?, normal? })` before the final… - `add_mate` (writes): 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… - `add_workspace_target` (writes): Use this when you need to declare a reachability target for a connector. Durably insert `.workspace(connectorRef, { reachable, toleranceMm? })`… - `set_scene_return` (writes): Use this when you need to set how the script returns its assembly. Replace the final top-level return statement with `return .model();` or `return… - `solve_mates` (read-only): 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?… - `review_cad` (read-only): Use this when you need to review a mechanism for fitness and repair mode. Run the deterministic CAD review loop: evaluate the script, validate the… - `design_loop` (writes): Use this when the goal is complex / production / enclosure / gearbox / robot-arm / multi-body, or when you need evaluate→review/verify→revise until green.… - `flatten_pattern` (read-only): 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… - `evaluate_sdf` (read-only): 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 {… - `capture_animation` (writes): 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… - `render_preview` (writes): 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 →… - `resolve_assumptions` (writes): 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… - `run_fea` (writes): Use this when you need to know whether a part will hold a load. Runs the linear-static structural study a script declares with `shape.feaStudy({ material,… - `fea_summary` (read-only): 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… - `send_to_printer` (writes): 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… - `repair_script` (writes): 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… - `sweep_tolerance` (read-only): Use this when you need to check whether a mechanism stays buildable across a tolerance/dimension range, not just at one nominal value. Declares one or more… - `diff_geometry` (read-only): 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… - `drawing_to_cad` (writes): 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… - `mesh_to_features` (read-only): 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… - `execute_cookbook` (read-only): 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,… - How its tools read to an agent (0 errors, 48 warnings, 0 notes, about 52,615 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score): - warn TC07 add_surface: the description is about 561 tokens - warn TC07 capture_animation: the description is about 640 tokens - warn TC07 export: the description is about 1,751 tokens - warn TC07 get_latest_render: the description is about 505 tokens - warn TC07 inspect: the description is about 803 tokens - warn TC07 mesh_to_features: the description is about 506 tokens - warn TC07 open_in_studio: the description is about 901 tokens - warn TC07 render_preview: the description is about 879 tokens - warn TC11 add_connector: 1 parameter without a description: type - warn TC11 add_pattern_feature: 1 parameter without a description: kind - warn TC11 design_loop: 1 parameter without a description: assembly - warn TC11 fetch_part: 5 parameters without a description: category, family, id, query, standard - warn TC11 find_part: 7 parameters without a description: category, family, limit, query, source, standard and 1 more - warn TC11 flatten_pattern: 2 parameters without a description: code, featureId - warn TC11 send_to_printer: 1 parameter without a description: protocol - warn TC11 set_scene_return: 1 parameter without a description: mode - warn TC11 solve_mates: 1 parameter without a description: assembly - warn TC11 why_did_this_fail: 2 parameters without a description: code, feature_id - warn TC12 add_mate: no type for pose - warn TC12 inspect: no type for edges, faces - warn TC12 query: no type for query - warn TC12 resolve_assumptions: no type for resolutions[].value - warn TC12 trace_from_image: no type for priors[].value - warn TC12 verify: no type for pose - JSON: https://www.anchorterminal.com/api/v1/tools/kernelcad.json - Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming