# OpenSCAD [Health: Active]

**Category:** 📐 Architecture & Design  
**Repository:** https://github.com/fboldo/openscad-mcp-server  
**GitHub Stars:** 7  
**npm Downloads (last month):** 582  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/openscad

## Description
An MCP server for rendering STL and PNG from OpenSCAD code.

## Tools
Capabilities this server exposes over MCP:

- **render_scad_png** — Render OpenSCAD (SCAD) source code into a PNG preview image. Provide the SCAD text in `scadCode` and optionally set `width`/`height` (pixels). Optional camera control is available via `cameraPreset` (named preset) or `cameraPosition` ({x,y,z}).
- **export_scad_stl** — Export OpenSCAD (SCAD) source code into an STL and return it as an embedded resource blob.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "openscad": {
    "command": "npx",
    "args": ["-y","openscad-mcp-server"]
  }
}
```

## Documentation

## What the OpenSCAD MCP server does

The OpenSCAD MCP server turns SCAD source code into two types of output: a PNG preview for visual inspection and an STL file containing generated geometry. It is intended for workflows where an agent writes or changes parametric CAD code, checks the resulting shape, and then exports a selected version for another process.

The server is useful when model changes need visual grounding. An agent can render several parameter variants, compare their proportions, and continue refining the source before producing an STL artifact. The repository also includes an iterative modeling skill that describes a SCAD-to-preview-to-critique workflow.

## How it works

MCP clients send SCAD source as a string to the server. For previews, the request can include image width and height, one of seven named camera presets, or an explicit camera position with `x`, `y`, and `z` values. The result is returned as MCP image content.

STL generation uses the same source-code approach but returns an embedded MCP resource. An optional filename can be supplied for the exported geometry. The implementation is based on OpenSCAD WebAssembly, so behavior and performance can differ from a full native OpenSCAD installation.

## Setup and configuration

The published npm package is intended to run over stdio. A client can start it with `npx -y openscad-mcp-server` and register that command as an MCP server. No package installation step is required when using this invocation.

The package can also expose a stateless streamable HTTP MCP endpoint. Start it with the `--http` flag; `MCP_PORT` selects the port and defaults to `3000`. The HTTP mode provides `GET /health` for health checks and accepts MCP requests at `POST /mcp`.

## Tools and capabilities

- `render_scad_png` accepts `scadCode`, optional `width` and `height`, and optional camera controls. Supported presets are `isometric`, `front`, `back`, `left`, `right`, `top`, and `bottom`.
- `export_scad_stl` accepts `scadCode` and an optional `filename`, then returns STL geometry as an embedded resource.
- PNG output supports visual review of parametric changes before an STL export.
- The OpenSCAD MCP server can support repeated render-and-refine cycles within an MCP conversation.

## Limitations and notes

The project is marked beta, so its APIs, performance, and capabilities may change. Rendering complex models can be slow, particularly in the WebAssembly environment. The WASM implementation does not necessarily support every OpenSCAD feature, and the documented feature limitations may affect generated results.

Text rendering is not currently supported. This matters for models that depend on OpenSCAD text or font-based geometry. The server should therefore be evaluated against the specific language features and model complexity used by a project before relying on it for production exports.

_Full upstream README: https://allmcps.com/mcp/openscad/readme_

