Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@3D MCP ServerCreate a 30mm cube with a 10mm hole through the middle and export it as STL"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-serverPrerequisites
Install OpenSCAD for export and preview rendering:
# Ubuntu/Debian
sudo apt install openscad
# macOS
brew install openscad
# Windows — download from https://openscad.org/downloads.htmlNote: OpenSCAD is only required for
exportandpreviewtools. 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 cube, sphere, cylinder, cone, or torus |
| Create 3D extruded text |
| Create custom mesh from vertices and faces |
| Add raw OpenSCAD code directly |
Transformations
Tool | Description |
| Translate, rotate, scale, mirror, or color an object |
Boolean Operations
Tool | Description |
| Union, difference, or intersection of multiple objects |
Extrusions
Tool | Description |
| Extrude 2D shape (circle, square, polygon) into 3D |
| Create solid of revolution from 2D profile |
Scene Management
Tool | Description |
| Check OpenSCAD installation and scene info |
| List all objects in the scene |
| Clear the entire scene |
| Remove a specific object |
Output
Tool | Description |
| Get the full OpenSCAD source code |
| Save scene as .scad file |
| Export to STL, OBJ, 3MF, AMF, OFF, DXF, SVG, CSG |
| 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 |
|
| Path to OpenSCAD binary |
|
| Working directory for files |
How It Works
Scene graph — Objects are tracked in memory with unique IDs
OpenSCAD codegen — Each operation generates clean OpenSCAD code
Boolean CSG — Objects combine via union/difference/intersection
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