OpenSCAD

io.github.fboldoPublished by GitHub account fboldov1.0.6Updated Oct 24, 2026

Render STL and PNG from OpenSCAD code.

VerifiedSTDIODesktop onlyDeveloper ToolsMedia & Design

Overview

AI-generated overview

Renders OpenSCAD source code into PNG preview images and STL geometry files so an assistant can iterate on CAD models.

What you can do
  • Render a PNG preview from SCAD source, with optional width, height, camera preset or camera position
  • Export an STL file from SCAD source, optionally naming the output file
  • Return results as MCP image content and embedded resources for downstream use
When to use it
Useful when an assistant writes or edits OpenSCAD code and needs to see the result, compare parameter variants, or hand off printable geometry. Suits iterative agent-driven CAD loops of generate, preview, critique and refine.
Requirements
Runs locally over stdio, typically launched with npx from the npm package; Node.js is needed for that. An optional HTTP mode is available with a configurable port. No accounts, API keys or environment variables are declared.
Before you install
Marked beta, so performance and APIs may change. Rendering runs in a WASM environment, so complex models can be slow, some OpenSCAD features may be limited, and text rendering is not supported. Exported STL files are written as artifacts.

Installation

In SourceWeft

  1. Open OpenSCAD in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

OpenSCAD MCP Server

[npm version] [npm downloads] [CI]

An MCP (Model Context Protocol) server that renders PNG previews and STL geometry from OpenSCAD (SCAD) source code. It is designed to support iterative, agent-driven CAD workflows, where models can be previewed visually and exported for downstream use (e.g. fabrication, simulation, or inspection).

⚠️ Beta
This MCP server is currently in beta. Performance, APIs, and capabilities may change. Issues and contributions are welcome.

Use cases

  • Iterative agent-driven modeling
    Agents generate or modify OpenSCAD source, render PNG previews to evaluate shape and proportions, and refine the model across multiple turns.

  • Geometry artifact generation within MCP contexts
    Agents export STL files as concrete geometry artifacts that can be passed to downstream tools, stored, inspected, or handed off to other MCP-enabled systems.

  • Visual grounding for parametric design
    PNG previews provide visual grounding for parametric or programmatic SCAD code, reducing hallucination and enabling agents to reason about spatial changes.

  • Design validation and comparison
    Agents can render multiple variants of a model (e.g. parameter sweeps) and visually compare results before deciding which geometry to persist or export.

Available Tools

  • render_scad_png: Renders a PNG preview image from SCAD source.
    • Input: scadCode (string), optional width/height (numbers), optional cameraPreset and optional cameraPosition
      • cameraPreset: one of isometric, front, back, left, right, top, bottom
      • cameraPosition: { x, y, z }
    • Output: MCP ImageContent
  • export_scad_stl: Exports an STL generated from SCAD source.
    • Input: scadCode (string), optional filename (string)
    • Output: MCP embedded resource (STL)

Skill

This repository also includes an OpenSCAD iterative modeling skill that demonstrates how to use this MCP server to support an iterative SCAD → PNG → critique → refine loop.

Limitations

  • Performance: Rendering complex SCAD models can be slow, especially in a WASM environment.
  • Feature support: Not all OpenSCAD features may be fully supported or may have limitations in the WASM version.
  • Fonts: Text rendering is not currently supported. Support is planned for a future release.

Installation

The published package is intended to run over stdio. Configure it in your MCP client using npx:

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

To run it over HTTP instead (e.g. in Docker), pass --http:

bash
MCP_PORT=3000 npx -y openscad-mcp-server --http

The server exposes GET /health and a stateless streamable HTTP MCP endpoint at POST /mcp.

Using the Skill

Agents skills are a simple, open format for giving agents new capabilities and expertise.

The most straightforward to use the OpenSCAD iterative modeling skill is to install it using the skills CLI:

bash
npx skills add fboldo/openscad-mcp-server --skill openscad-iterative-modeling

Local development

  • Install deps: bun install
  • Stdio (matches how clients run it): bun index.ts --stdio
  • HTTP (useful for manual testing): bun index.ts (or --http)
    • Port: MCP_PORT (default 3000)
    • Endpoints: GET /health, MCP at POST /mcp
  • MCP Inspector: bun run dev

Similar Projects

  • jhacksman/OpenSCAD-MCP-Server This project provides a different approach relying on generating images from user prompts, followed by 3D reconstruction and even 3D printer discovery. It's a very interesting project, and I recommend checking it out if you are interested in OpenSCAD and MCP servers.

  • petrijr/openscad-mcp Similar to this project, but it uses a Python-based server and relies on the OpenSCAD CLI for rendering.

Relevant Links

License

MIT — see LICENSE.

Source: README.md at commit 66f7589

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v1.0.6LatestSep 25, 2026
  2. v1.0.5Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts