Skip to main content
Glama
zinin

sketchup-mcp2

by zinin

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SKETCHUP_MCP_HOSTNoThe host address for the SketchUp MCP TCP server.127.0.0.1
SKETCHUP_MCP_PORTNoThe port for the SketchUp MCP TCP server.9876
SKETCHUP_MCP_TIMEOUTNoTimeout in seconds for MCP operations.60
SKETCHUP_MCP_LOG_LEVELNoLog level for the MCP server (e.g., DEBUG, INFO, WARNING, ERROR).INFO

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 distance (mm).

Default 5mm — visible on the documented 100mm-cube use case. Ruby tool name is chamfer_edges (plural); Python parameter id maps to Ruby entity_id.

fillet_edgeB

Fillet (round) all edges of a group/component. Default radius 5mm.

Note: Ruby tool name is fillet_edges (plural); Python parameter id maps to Ruby parameter entity_id.

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

  • max_size: largest side of the returned PNG (64..4096). Aspect ratio is taken from the current viewport; the smaller side is scaled proportionally.

  • view_preset: switch the camera to a standard view before snapping. current leaves the camera alone.

  • zoom_extents: call view.zoom_extents before snapping.

  • style: temporarily flip a small set of rendering_options keys. default leaves them alone.

  • restore_view: when true (default), camera and rendering_options are snapshotted before mutation and restored after the snapshot, so the user's viewport is unchanged.

Note on operation order (Ruby handler): snapshot → preset → style → zoom_extents → write_image → restore. Restore runs in an outer ensure block, so an exception anywhere between snapshot and write_image still leaves the viewport in its original state.

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

NameDescription
sketchup_modeling_strategyHow 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

NameDescription

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