sketchup-mcp2
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SKETCHUP_MCP_HOST | No | The host address for the SketchUp MCP TCP server. | 127.0.0.1 |
| SKETCHUP_MCP_PORT | No | The port for the SketchUp MCP TCP server. | 9876 |
| SKETCHUP_MCP_TIMEOUT | No | Timeout in seconds for MCP operations. | 60 |
| SKETCHUP_MCP_LOG_LEVEL | No | Log level for the MCP server (e.g., DEBUG, INFO, WARNING, ERROR). | INFO |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_componentC | Create a new component in Sketchup. |
| delete_componentB | Delete a component by entity ID. |
| transform_componentC | Transform a component's position, rotation, or scale. |
| get_selectionA | Get currently selected components. |
| set_materialC | Set material for a component (named color or hex). |
| export_sceneC | Export the current scene. Note: Ruby tool name is 'export'. |
| create_mortise_tenonB | Create a mortise and tenon joint between two components. All dimensions in millimeters. Defaults sized for visibility on a typical 100mm-board: 50mm wide, 25mm tall, 10mm deep. Pydantic always sends these on the wire, so they override Ruby's V.optional_positive defaults — keep the two sides in sync (see su_mcp/su_mcp/handlers/joints.rb). |
| create_dovetailC | Create a dovetail joint between two components. Dimensions in mm. |
| create_finger_jointC | Create a finger joint (box joint) between two components. Dimensions in mm. |
| eval_rubyC | Evaluate arbitrary Ruby code in Sketchup. |
| boolean_operationB | Perform a boolean operation (union/difference/intersection) on two solids. |
| chamfer_edgeB | Chamfer all edges of a group/component by Default 5mm — visible on the documented 100mm-cube use case. Ruby tool name
is |
| fillet_edgeB | Fillet (round) all edges of a group/component. Default radius 5mm. Note: Ruby tool name is |
| get_viewport_screenshotA | Capture the current SketchUp viewport as a PNG and return it as an MCP Image. Useful for letting Claude visually verify the scene between steps. Parameters
Note on operation order (Ruby handler): snapshot → preset → style →
zoom_extents → write_image → restore. Restore runs in an outer |
| get_model_infoA | Get current SketchUp model info: file path, title, units, bounding box, entity count, layer list. |
| list_componentsA | List groups and component instances in the model. Returns each as {id, name, type, layer, depth, bbox_mm}. Bounds are in world coordinates. Set recursive=true to descend into nested components (bounded by max_depth, default 3). |
| get_component_infoB | Detailed info for a single Group or ComponentInstance by entity ID. |
| find_componentsA | Find components matching name substring, layer, and/or type. Recursive (bounded by max_depth). At least one filter should be supplied. |
| list_layersA | List all model layers as {name, visible, color, id}. |
| create_layerB | Create a new layer with the given name. Returns {id, name, visible}. |
| undoA | Undo the last atomic operation in SketchUp. One MCP tool-call = one undo step. |
| get_versionA | Return the server version and Python↔Ruby compatibility verdict. Useful as a runtime sanity probe — always returns a payload, even when the connection or other tools surface errors. The result is a JSON string with fields: python_version, ruby_version, min_compatible_ruby, max_compatible_ruby, ruby_min_compatible_python, ruby_max_compatible_python, compatible (bool), error (string | null). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| sketchup_modeling_strategy | How to use SketchUp MCP tools effectively: pre-flight checks, typed-tools-vs-eval_ruby priority, units/angles conventions, verification after mutations, error recovery, known traps. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/zinin/sketchup-mcp2'
If you have feedback or need assistance with the MCP directory API, please join our Discord server