The Model Context Protocol (MCP) lets AI assistants use outside tools. Connected to KYAMOS computer-aided design (CAD), an assistant builds parts using OpenCASCADE, a software engine that constructs and measures engineering shapes. It gets back measured volume, size and shape validity. Its code runs in a sandbox: an isolated area with restricted access.
Below is an actual exchange with the KYAMOS CAD server, recorded 2026-09-28 23:26 exactly as an AI assistant would make it. The results are the server’s own replies — nothing is written by hand.
list_toolslist_capabilities — List validated CAD capabilities from the Verified Capability Registry.run_recipe — Build a validated CAD recipe by name.execute_opencascade_code — Run pythonocc-core Python inside the isolated sandbox (no network, host FS invisible,
CPU/memory/time limited).list_occ_api — Browse the OpenCASCADE API catalogue (the version-matched manual).promote_occ_symbol — Promote a discovered OCC command to 'validated' by exercising it.list_capabilities10 validated recipes: array benches · boolean vent cut · duct run · hollow box · l bracket · make cylinder · make enclosure · pipe segment · plate with holes · stacked trays
run_recipeAsked for l bracket with depth 120 mm, leg 150 mm, thickness 12 mm.
Server measured: 1 solid, valid, volume 414,720 mm³, size 120 × 150 × 150 mm.
Checked by hand: two 120 × 150 × 12 legs minus their 120 × 12 × 12 overlap = 414,720 mm³. ✓
execute_opencascade_codefrom OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeBox, BRepPrimAPI_MakeCylinder
from OCC.Core.BRepAlgoAPI import BRepAlgoAPI_Cut
from OCC.Core.GProp import GProp_GProps
from OCC.Core.BRepGProp import brepgprop
from OCC.Core.gp import gp_Ax2, gp_Pnt, gp_Dir
plate = BRepPrimAPI_MakeBox(100.0, 60.0, 8.0).Shape()
hole = BRepPrimAPI_MakeCylinder(gp_Ax2(gp_Pnt(50, 30, -1), gp_Dir(0, 0, 1)), 12.0, 10.0).Shape()
part = BRepAlgoAPI_Cut(plate, hole).Shape()
p = GProp_GProps(); brepgprop.VolumeProperties(part, p)
print("volume_mm3=%.1f" % p.Mass())Sandbox output: volume_mm3=44380.9 (0.9 s)
Checked by hand: 100 × 60 × 8 − π × 12² × 8 = 44,380.9 mm³. ✓
execute_opencascade_codeimport socket
try:
socket.create_connection(("1.1.1.1", 80), timeout=3); print("internet: REACHED")
except Exception as e:
print("internet: blocked (%s)" % type(e).__name__)
for f in ["id_rsa", "/etc/shadow", "server.py"]:
try:
open(f).read(1); print("read", f, ": READABLE")
except Exception as e:
print("read", f, ": blocked (%s)" % type(e).__name__)Sandbox output:
internet: blocked (OSError) read id_rsa : blocked (FileNotFoundError) read /etc/shadow : blocked (FileNotFoundError) read server.py : blocked (FileNotFoundError)
No internet, no access to the server’s files, keys or source code. The sandbox only sees the CAD library it needs, and anything it writes is thrown away.
list_occ_apiA searchable manual of the kernel: 5,482 commands in 308 modules. 58 are marked “validated” — actually exercised by a passing test; the rest are listed as discovered, not claimed to work.
Every part comes back with its kernel-measured volume, size and validity, so the assistant can check its own work.
Code written by the AI runs with no network, no view of the host’s files, and strict time and memory limits.
MCP works with Claude and other MCP-capable assistants and agent frameworks.
The CAD server runs on KYAMOS infrastructure and is available to partners by arrangement. Tell us which assistant or agent framework you use and we will set up access.
For teams connecting AI assistants to engineering design tools. Tell us about your geometry, inputs and the decision you need to make.
Pricing: quoted per project. Scope, computing needs, validation checks and support determine the quote. Contact us to agree access and deliverables before work starts.
Demonstrations do not certify a production design.