Skip to main content
Glama

3D MCP Server

MCP server for AI-driven 3D model generation using OpenSCAD. Create, combine, transform, and export 3D models through natural language via any MCP-compatible AI client.

Installation

npm install -g @jagjerez-org/3d-mcp-server

Prerequisites

Install OpenSCAD for export and preview rendering:

# Ubuntu/Debian
sudo apt install openscad

# macOS
brew install openscad

# Windows — download from https://openscad.org/downloads.html

Note: OpenSCAD is only required for export and preview tools. Scene building and SCAD code generation work without it.

Quick Start

With Claude Desktop

Add to your Claude Desktop config (~/.config/claude/claude_desktop_config.json):

{
  "mcpServers": {
    "3d": {
      "command": "3d-mcp-server"
    }
  }
}

Then ask Claude: "Create a box with a cylindrical hole through the center and export it as STL"

With Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "3d": {
      "command": "3d-mcp-server"
    }
  }
}

Tools

Primitives

Tool

Description

create_primitive

Create cube, sphere, cylinder, cone, or torus

create_text

Create 3D extruded text

create_polyhedron

Create custom mesh from vertices and faces

custom_scad

Add raw OpenSCAD code directly

Transformations

Tool

Description

transform

Translate, rotate, scale, mirror, or color an object

Boolean Operations

Tool

Description

boolean_op

Union, difference, or intersection of multiple objects

Extrusions

Tool

Description

linear_extrude

Extrude 2D shape (circle, square, polygon) into 3D

rotate_extrude

Create solid of revolution from 2D profile

Scene Management

Tool

Description

status

Check OpenSCAD installation and scene info

scene_list

List all objects in the scene

scene_clear

Clear the entire scene

remove_object

Remove a specific object

Output

Tool

Description

get_scad

Get the full OpenSCAD source code

save_scad

Save scene as .scad file

export

Export to STL, OBJ, 3MF, AMF, OFF, DXF, SVG, CSG

preview

Render a PNG preview image

Examples

Box with hole

AI: "Create a 30x30x10 box with a 5mm radius hole through the center"

→ create_primitive(shape: "cube", width: 30, depth: 30, height: 10)
→ create_primitive(shape: "cylinder", radius: 5, height: 12)
→ boolean_op(operation: "difference", objectIds: ["abc", "def"])
→ export(format: "stl")

Phone stand

AI: "Make a phone stand at 60 degrees"

→ create_primitive(shape: "cube", width: 80, depth: 50, height: 5, name: "base")
→ create_primitive(shape: "cube", width: 80, depth: 5, height: 100, name: "back")
→ transform(objectId: "...", operation: "rotate", x: -60)
→ boolean_op(operation: "union", objectIds: [...])
→ preview()
→ export(format: "stl")

Gear

AI: "Create a simple gear with 12 teeth"

→ custom_scad(code: "...", name: "gear")
→ preview()

Environment Variables

Variable

Default

Description

OPENSCAD_BIN

openscad

Path to OpenSCAD binary

SCAD_WORK_DIR

/tmp/3d-mcp-work

Working directory for files

How It Works

  1. Scene graph — Objects are tracked in memory with unique IDs

  2. OpenSCAD codegen — Each operation generates clean OpenSCAD code

  3. Boolean CSG — Objects combine via union/difference/intersection

  4. Export — OpenSCAD CLI renders the final SCAD to STL/PNG/etc.

The AI builds models step by step: create shapes → transform → combine → export.

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jagjerez-org/3d-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server