Ringo SketchUp MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SKETCHUP_PORT | No | 可覆盖桥接监听端口。 | |
| SKETCHUP_TOKEN | No | 可覆盖认证 token。安装时会生成随机 token,Node 与扩展读取同一配置,无需粘贴到 MCP 配置里。 | |
| SKETCHUP_MCP_CONFIG | No | 环境变量,用于指定自定义配置目录。 | |
| SKETCHUP_TIMEOUT_MS | No | 可覆盖超时时间,单位为毫秒。 | |
| SKETCHUP_ENABLE_RUBY_EVAL | No | 可覆盖 Ruby 执行开关。Ruby 执行默认关闭。 | false |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| bridge_statusA | Inspect connection, selected SketchUp profile/instance, capabilities, queue and recent request states. Runtime permissions and optional APIs are discovered here. |
| model_get_infoA | Get model session ID, path, units, edit context and runtime capabilities. |
| model_statsC | Count entities through instance paths, materials, tags and scenes. Results are bounded by max_entities. |
| entity_listB | Paginate entities with paths and world bounds. Recursive traversal distinguishes shared component instances. Use scan_limit for large models; total_exact reports whether total is complete. |
| entity_inspectB | Inspect persistent ID, instance path, world bounds, solid status and transform. Translation entries in matrices use the requested unit. |
| selection_getB | Read current selected entities. |
| selection_setC | Set selection using existing entity IDs; empty list clears selection. |
| entity_create_boxC | Create a box toward positive Z with an undo transaction. Default unit is mm. |
| entity_create_cylinderC | Create a positive Z cylinder, in mm, with optional smooth sides. |
| entity_create_meshC | Create arbitrary grouped geometry from vertices and zero-based face indices. Triangulate nonplanar faces. Supports smooth shading. |
| entity_extrudeB | Extrude a planar polygon along its normal. XY polygons are oriented toward positive Z. |
| entity_transformB | Transform a group/instance in its parent coordinates. Scale, rotate, then translate. Matrix replaces transform; column major with translation in unit. Axis-angle preferred; legacy Euler X,Y,Z supported. |
| entity_updateC | Set entity name, tag, visibility or lock state. |
| entity_deleteB | Delete an existing entity in an undoable operation. |
| entity_duplicateC | Copy a group or component; offset in the parent coordinate system. |
| entity_groupC | Group existing entities in the current edit context. |
| entity_make_uniqueC | Make a component instance or group independent of shared geometry. |
| entity_set_materialC | Assign material to an instance or its direct faces. Faces scope makes instances unique first. |
| materials_listB | List material color, alpha and texture status. |
| materials_setC | Create/update material. Optional PBR roughness gracefully falls back on older SketchUp. |
| tags_listB | List tags and visibility. |
| tags_setC | Create a tag or set its visibility. |
| scenes_listB | List saved SketchUp scenes. |
| scenes_setB | Save/update the current view as a scene, or select an existing scene. |
| camera_getB | Read camera eye, target and up vector. |
| camera_setC | Set camera and optionally frame an entity or the whole model. |
| model_snapshotC | Capture bounded entity/path metadata for subsequent changes comparison. |
| model_diffB | Compare entity metadata with a snapshot; reports additions, deletions and changes, not individual mesh vertices. |
| model_undoC | Undo the most recent SketchUp operation. |
| model_redoC | Redo when supported by this SketchUp version. |
| scene_clearA | Erase all model entities in one undoable operation. Requires root edit context. |
| model_saveB | Save SKP to an absolute path. Explicit overwrite flag protects existing files. |
| model_exportC | Export through the installed SketchUp exporter selected by file extension. Availability depends on the host edition/version. |
| view_captureB | See the current SketchUp view directly as an image. No output path required. Use after modeling to visually verify the result. |
| view_exportC | Export PNG/JPG from SketchUp for visual verification. |
| batch_runA | Run 1–100 typed model mutations in a single atomic undo operation. Ruby, save, undo, and nested batches excluded. |
| sketchup_run_rubyA | Execute trusted SketchUp Ruby on the UI thread. Requires ruby_enabled. Default transaction rolls back failures; do not start nested SketchUp operations. Captures stdout. Running Ruby cannot be forcibly cancelled safely. |
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 37 tools
Most tools target a distinct resource and action, and descriptions clearly distinguish similar pairs such as view_capture vs. view_export and entity_list vs. entity_inspect. Some layering overlap exists between batch_run/sketchup_run_ruby and individual mutation tools, but the intended usage is still understandable.
The dominant pattern is resource_action or resource_action_object, applied consistently across entity_, model_, camera_, selection_, tags_, scenes_, and materials_ groups. Minor deviations like model_get_info and model_stats are readable but slightly break the otherwise predictable scheme.
At 37 tools, the surface is heavy for an MCP server and exceeds the typical well-scoped 3–15 range. While SketchUp is a broad domain, the count still feels excessive and likely increases selection overhead.
The set covers essential modeling lifecycle operations: creation, transformation, editing, deletion, grouping, materials, tags, scenes, camera, selection, undo/redo, save/export, snapshots, and Ruby escape hatches. Gaps like material/tag/scene deletion and import are minor and can largely be handled through Ruby or workarounds.