Back to search
100
MCP live v0.11.1 streamable-http

com.kernelcad/kernelcad

com.kernelcad/kernelcad

Agent-first CAD: editable .kcad.ts source, deterministic review, OpenCASCADE kernel.

Uptime
50.0%
4 probes
Response
307ms
last probe
Tools
48
callable

Tools · 48

lookup_authoring_skill

Return the kernelcad-authoring SKILL.md body — conventions for writing .kcad.ts scripts (imports, parameters, evaluation contract, common pitfalls). Use this tool BEFORE generating CAD code if your M…

evaluate_script

Run a kernelCAD .kcad.ts script and report pass/fail + feature count + diagnostics. Pass either { file: "<path>" } or { code: "<inline source>" }.

list_features

List the features captured by a kernelCAD script — kind, id, params, inputs, transforms count, suppression. Pass either { file } or { code }.

list_assemblies

List assembly intent captured by a kernelCAD script: assemblies, parts, named connectors, fixed connections, joints, and aggregate assembly models. Pass either { file } or { code }.

inspect_assembly

Evaluate a kernelCAD script and return an agent-facing physical assembly inventory: named parts, bboxes, connectors, mates, disconnected solids, mechanical review facts, and a next-action prompt. Use …

get_shape_info

Run + recompute a script, return volume/surfaceArea/bbox for one feature (default: last). Pass { file?, code?, feature_id? }.

list_topology

List the canonical face names available on a feature (top/bottom/left/right/front/back for box; top/bottom for cylinder; none for sphere or non-primitives) plus the total edge count. Pass { file?, cod…

get_edges_of

Return the boundary edges of a named canonical face on an un-transformed primitive — index, centroid, length, isClosed. Pass { file?, code?, feature_id?, face_name: 'top' | ... }.

why_did_this_fail

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 en…

set_param_value

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 t…

add_feature

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. Primit…

add_nurbs_surface

Insert a nurbsSurface(...) or surfaceFromCurves(...) call into the user's .kcad.ts. The returned Surface is captured but produces no Shape until you chain .thicken(t) or .toShape() (do that via add_fe…

add_nurbs_curve

Insert a `nurbsCurve(controlPoints, opts?)` declaration into the user's .kcad.ts immediately before the last top-level return. The returned binding has type Curve3D (peer to Shape / Surface) — consume…

add_surface_from_boundary

Insert a `surfaceFromBoundary([c1, c2, c3, c4], opts?)` declaration into the user's .kcad.ts immediately before the last top-level return. Fills the interior of 4 boundary Curve3D refs with a single N…

add_hermite_g2

Insert a `hermiteG2(a, b)` declaration into the user's .kcad.ts immediately before the last top-level return. Builds a quintic Hermite Curve3D that interpolates two endpoints with matching positions, …

add_path_spline

Insert a `.spline(points, opts?)` call into an existing PathBuilder chain on the named `chain_anchor` variable. The call is injected at the END of the chain, immediately before any `.close()` (or befo…

trace_from_image

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 …

add_path_nurbs_segment

Insert a `.nurbsSegment(controlPoints, opts?)` call into an existing PathBuilder chain on the named `chain_anchor` variable. The call is injected at the END of the chain, immediately before any `.clos…

add_path_hermite_g2

Insert a `.hermiteG2(a, b)` call into an existing PathBuilder chain on the named `chain_anchor` variable. The call is injected at the END of the chain, immediately before any `.close()`. Each endpoint…

add_variable_sweep

Insert a `variableSweep(spine, sections, opts?)` declaration into the user's .kcad.ts immediately before the last top-level return. The result is a Shape — chain `.translate(...)`, `.union(...)`, etc.…

add_sketch_text

Insert a sketch.text(...) call 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. T…

emboss_text

Insert a `<shape>.embossText({ text, face, size, depth, align?, anchor?, rotation?, scaleMode? })` chained call into a kernelCAD script before the last top-level return. Use for engraved brand text on…

project_curve

Insert a `<shape>.projectCurve({ curve, face, scaleMode?, asEdge? })` chained call into a kernelCAD script. Wraps a 2D closed curve onto a 3D face along the face normal; pair with `.extrude(d)` / `.cu…

add_pattern_feature

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 modifi…

remove_feature

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.…

list_edges

List edges of a kernelCAD shape with optional EdgeQuery filter. Returns each edge's id, midpoint, direction, length, curveType, convex, dihedralAngleDeg, and boundary status. Use this to discover what…

list_faces

List faces of a kernelCAD shape with optional FaceQuery filter. Returns each face's id, centroid, normal, surfaceType, area, and label. Use for face introspection before shell/face references. Pass ei…

list_face_labels

List user-applied labels visible in a script: both sketch-segment labels (path().label('rim')) and creating-op faceLabels (box(..., { faceLabels: { ... } })). Each result includes its source so the ag…

get_face_lineage

Walk the HistoryMap of a lowered feature and return the chain of lineage entries that produced a named face ref. Inputs: feature_id ("auto" for last) and ref (string selector "name.slot" or a structur…

list_api

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 metho…

list_diagnostic_codes

Return 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 diagn…

export_stl

Export the script geometry to a binary STL file. Pass either { file } or { code } plus a required { output_path }. Optional { feature_id } selects which feature to export (default: last). Returns { ok…

lookup_cookbook

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…

params_list

List all parameters declared on the active session, with current values, defaults, and metadata. Read-only.

params_update

Edit one or more session parameters and re-lower the affected records. Validates every edit before applying any (atomic). Returns the updated shape, the list of records that re-lowered, and any soft w…

solve_sketch

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 …

add_constraint

Append one validated sketch constraint to a constraint list. Side-effect-free: pass { constraints, constraint } and receive the updated list.

list_constraints

List supported sketch constraint types and echo the provided constraint list. Use before add_constraint or solve_sketch to discover the vocabulary.

add_connector

Register a v0.6 mate-style connector on a named part of the active assembly. Requires a prior evaluate_script that called kcad.assembly(...). Origin accepts a [x, y, z] tuple shorthand or a structured…

add_mate

Declare a typed mate between two named connectors on the active assembly. Connector refs are "<partName>.<connectorName>". Mate types: fastened, revolute, prismatic, cylindrical, planar, ball, pin_slo…

list_mates

List the mate records declared on the active assembly. Read-only; reads arm.__mates() under the hood. Returns { mates: [{ name, a, b, type, pose?, limitsDeg?, limitsMm? }, ...] }.

validate_assembly

Run the mate-aware assembly validator (validateAssemblyWithMates) on the active assembly. Returns { status, diagnostics, partCount, jointCount } where diagnostics carry per-code hints agents use to re…

solve_mates

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 overrid…

review_cad

Run the deterministic CAD review loop: evaluate the script, validate the assembly/mate graph, check mate connectors touch modeled material, sample declared mate limits, optionally check interferences …

design_loop

Run an agent CAD design loop over one or more attempt scripts: review each attempt with review_cad, continue past functional attempts that still have unresolved review warnings, return structured repa…

flatten_pattern

Return the unfolded 2D flat-pattern of a bent sheet-metal Shape as a Region (outer polyline + holes + bend lines + sketch plane). Slice 1: at most 2 bends. Pass { file } or { code }; optional { featur…

get_bend_table

List every sheetMetalBend in a script with its computed K-factor bend allowance, axis line, angle, radius, and parent sheetMetal thickness + kFactor. Pass { file } or { code }.

evaluate_sdf

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…

Similar MCP servers embedding-nearest

Arcology Knowledge Node live
Collaborative engineering KB for a mile-high city. 9 tools, 8 domains, 32 entries.
9 tools · streamable-http
io.github.MagneticDogSon/fixflow live
Collective memory for AI agents. One agent solves a bug — every agent gets the fix instantly.
3 tools · streamable-http
PlanExe live
MCP server for generating rough-draft project plans from natural-language prompts.
11 tools · streamable-http
CorpusIQ live
Authenticated, user-scoped MCP connectors for 30+ business systems.
49 tools · streamable-http
AI Design Blueprint live
Enterprise-safe agentic AI design doctrine. Read-only MCP, UK/EU residency, zero-training policy.
24 tools · streamable-http
com.mermaidchart/mermaid-mcp live
MCP server for Mermaid diagram validation and rendering
17 tools · streamable-http

How to use

Add to your Claude Desktop / Cursor / Cline MCP config:

{
  "mcpServers": {
    "com.kernelcad/kernelcad": {
      "url": "https://mcp.kernelcad.com/mcp",
      "transport": "streamable-http"
    }
  }
}