OpenSCAD Design MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENSCAD_PATH | No | Path to the openscad.exe executable. | Tự động dò tìm |
| OPENSCAD_MCP_WORKSPACE | No | Directory for storing projects, exports, previews and reports. | ./workspace |
| OPENSCAD_MCP_LOCK_TIMEOUT | No | Timeout waiting for workspace synchronization lock (seconds). | 10.0 |
| OPENSCAD_MCP_EXPORT_TIMEOUT | No | Maximum timeout when exporting STL/3MF files (seconds). | 180.0 |
| OPENSCAD_MCP_MAX_CODE_BYTES | No | Maximum length of SCAD source code (2 MB). | 2097152 |
| OPENSCAD_MCP_INSPECT_TIMEOUT | No | Maximum timeout for mesh geometry analysis (seconds). | 60.0 |
| OPENSCAD_MCP_PREVIEW_TIMEOUT | No | Maximum timeout for each render task (seconds). | 60.0 |
| OPENSCAD_MCP_VALIDATE_TIMEOUT | No | Maximum timeout for validating SCAD code (seconds). | 30.0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_system_statusA | Detect OpenSCAD, probe real PNG rendering, and report dependency versions and limits. |
| create_projectA | Create and validate version 1; invalid geometry remains saved and editable. |
| list_projectsA | List projects with UTC timestamps and latest status. |
| get_projectA | Read metadata, current code, exports, and the latest finalization report. |
| read_modelB | Read the checksum-verified current SCAD snapshot. |
| update_modelA | Atomically update code if expected_version matches, invalidating previous results. |
| validate_scadA | Compile to a temporary STL and inspect for empty geometry, recording diagnostics. |
| render_previewC | Render a verified PNG for a named view or a numeric 6/7-value custom camera. |
| render_preview_setB | Render six default views, or 1–12 requested named views, in parallel preserving order. |
| export_modelB | Export STL, 3MF, OFF, AMF, DXF or SVG with fixed CLI arguments. |
| inspect_meshB | Inspect a current verified STL/3MF export or create a temporary STL automatically. |
| compare_dimensionsB | Compare X/Y/Z in project units; null skips an axis, tolerances use the larger bound. |
| check_printabilityA | Check mesh and build extents; wall thickness, supports and clearance stay unknown. |
| finalize_modelB | Validate, render, export and inspect one revision; finalize only if all gates pass. |
| list_versionsB | List immutable versions, UTC timestamps, summaries and SHA-256 checksums. |
| restore_versionB | Restore a historical snapshot as a new version, retaining the complete history. |
| delete_projectA | Move a project to trash only when the confirmation ID matches exactly. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Most tools target clearly distinct actions and resources, such as project lifecycle, model editing, validation, rendering, and export. The closest overlaps are get_project vs. read_model and validate_scad vs. check_printability, but the descriptions separate metadata/snapshot reading and geometry validation/printability clearly enough for reliable selection.
Tool names overwhelmingly follow a verb_noun snake_case pattern, which is easy to predict and scan. The main inconsistency is mixing synonyms like get_project and read_model for similar retrieval operations, and compound names like render_preview_set, but these are minor and do not obscure the pattern.
At 17 tools, the server is slightly above the ideal 3-15 range, but the extra tools support a rich design workflow: versioning, rendering sets, mesh inspection, and finalization. Each tool addresses a distinct stage of the OpenSCAD pipeline, so the count feels justified rather than bloated.
The server covers the full OpenSCAD design lifecycle: project CRUD, code snapshot editing with optimistic concurrency, validation, printability checks, rendering, exporting, mesh inspection, finalization, and version restore. There are no obvious dead ends; even finalization is supported by an explicit gate-passing workflow.