Skip to main content
Glama
README.md
# loom

An MCP server that lets an agent (e.g. Claude Code) validate, render, and export OpenSCAD
models it's editing directly as files, so it can visually verify what it built.

Reading, writing, and listing `.scad` files is left to the agent's normal file tools (Read,
Write, Edit, Glob) — this server only wraps the parts Claude Code can't do on its own: invoking
the `openscad` binary and handling its image/binary output.

## Requirements

- Node.js 18+
- `openscad` on your PATH (or set `OPENSCAD_BIN` to its full path)

## Install

```
npm install
```

## Run standalone

```
npm start
```

## Register with Claude Code

```
claude mcp add loom -- node /absolute/path/to/loom/src/index.js
```

## Tools

- `openscad-version` — confirm the OpenSCAD CLI is available.
- `validate-model` — compile a `.scad` file without producing a visual export, to catch
  syntax/geometry errors. Fast sanity check before rendering.
- `render-preview` — render a `.scad` file to PNG and return it inline for visual inspection.
  Supports image size, camera, projection, color scheme, render mode (full vs. throwntogether),
  and view overlays (axes/edges/etc). Defaults to saving next to the source file.
- `export-model` — export a `.scad` file to STL/OFF/3MF/AMF/DXF/SVG/CSG/POV. Defaults to saving
  next to the source file.

All three model tools take a `path` to the `.scad` file (any location — no fixed workspace
directory) and an optional `output` path to override where the rendered/exported file is saved.

## Environment variables

- `OPENSCAD_BIN` — path to the openscad executable (default: `openscad`).