Skip to main content
Glama
wc970321-collab

sketchup-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SKETCHUP_MCP_PORTNoThe port used by the SketchUp MCP bridge. If the port is changed, update it in both the SketchUp bridge and the Codex environment variables. The diagnostic CLI uses SKETCHUP_MCP_PORT.9876

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
pingA

Check the connection to SketchUp: returns the SketchUp and Ruby versions, the open model name, and the versions of the bridge in SketchUp and of the MCP server (warns if the bridge is older than the bundled one).

model_infoA

Overview of the open model: path, units, bounding box size (mm), number of top-level groups/components/ faces/edges, and number of tags, materials, definitions, scenes and selected entities.

list_tagsA

List tags (layers): name, visible/hidden, and number of entities using the tag (including inside definitions).

list_componentsA

List component definitions and their instance counts (sorted descending) - use it to count equipment/furniture. include_groups=true also lists groups.

list_materialsA

List the materials in the model: name, RGB color, transparency, texture file.

selection_infoA

Info on the selected entities: id, type, name, tag, material, bounding box (mm), face area (m2), solid volume (m3). The ids are used by the edit/delete tools.

quantity_takeoffA

Quantity takeoff: walks the whole model recursively (or only the selection) and totals by tag or material: face area (m2, one side), face count, total edge length (m), solid volume (m3) and instance count per component. Untagged/unpainted entities inherit from their parent group.

create_boxA

Create a rectangular box (group). width along X, depth along Y, height along Z, in mm. origin [x,y,z] mm is the lower-left corner. Missing tags/materials are created; color is '#RRGGBB' or a color name (only applied when the material is newly created; an existing material keeps its color). Returns: {id, persistent_id, type, name, tag, material, bounds_mm{min,max,size}}.

create_shapeA

Draw a flat face from a polygon (list of [x,y,z] mm points, >= 3 coplanar points) in a new group. pushpull (mm) extrudes it into a solid (e.g. draw a floor outline, then pull it up to the slab thickness). Returns: {id, persistent_id, type, name, tag, material, bounds_mm{min,max,size}}.

create_linesA

Draw a polyline through [x,y,z] mm points in a new group. close_face=true: closes back to the first point and creates a face (the result has face_created).

insert_componentB

Insert a component: from a .skp file (path, e.g. 'D:/Library/table.skp') or from a definition already in the model (definition = name). position [x,y,z] mm, rotation_deg rotates about the Z axis.

transform_entitiesA

Move / rotate / scale entities. Empty entity_ids = use the current selection. translate [dx,dy,dz] mm; rotate_deg about axis (default Z) at pivot (mm, default entity center); scale is a uniform factor. Order applied: scale -> rotate -> translate.

set_materialA

Apply a material to entities (entity_ids or the current selection). A missing material is created with color; an EXISTING material keeps its color (unless update_existing=true).

set_tagA

Assign a tag to entities (entity_ids or the current selection). A missing tag is created.

delete_entitiesA

Delete entities by id (ids are required; never deletes by selection). Can be undone.

select_entitiesB

Select entities by id in SketchUp (so the user can see them, or for later tools to use).

undoA

Undo the last step in SketchUp (every model-editing tool is one Undo step).

run_rubyA

Run arbitrary Ruby code in SketchUp (Ruby API). Use it when the other tools are not enough. Useful objects: Sketchup.active_model, model.entities, model.selection. Internal units are inches: use 1000.mm, x.to_mm. The whole snippet is one Undo step. Returns the last value (inspect) and the puts output. Rules: do NOT call start_operation/commit_operation (the bridge already wraps the code in one Undo step); find entities with Sketchup.active_model.find_entity_by_id(id); check face.normal before pushpull; vertex coordinates inside a group are local (multiply by the parent group transformation); end with a value or puts; never call exit.

set_viewA

Set a standard view and zoom extents. iso defaults to perspective, the other views to parallel projection.

screenshotA

Capture the SketchUp viewport and return the image so Claude can see it directly (to check modelling results). Empty view = keep the current view. With view, the camera changes only temporarily for the capture and the previous view is restored afterwards.

export_pngA

Export the viewport as a PNG/JPG file (e.g. 'D:/Export/perspective.png'). width/height in pixels; view changes the camera first.

export_fileA

Export the model to a 3D/2D file chosen by extension (dae, obj, stl, fbx, dwg, dxf, 3ds...). Some formats require SketchUp Pro.

save_modelA

Save the model. Empty path = overwrite the current file; with path = Save As.

open_modelC

Open a .skp file in SketchUp.

new_modelB

Create a new (empty) model.

install_sketchup_bridgeA

Install (or update) the "SU MCP Bridge" extension in SketchUp so the other tools can connect. Copies su_mcp.rb + su_mcp/main.rb into the Plugins folder of every SketchUp version found (Windows: %APPDATA%/SketchUp/SketchUp 20xx/SketchUp/Plugins). SketchUp must be restarted afterwards. Empty versions = every version opened at least once; dry_run=true only reports what would be done. Also returns the path of su_mcp.rbz for a manual install via Extension Manager.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 26 tools

Disambiguation4/5

The set separates inspection, creation, editing, and export well; the main ambiguities are screenshot/export_png/export_file, which all capture or export imagery, and set_view's view parameter. Descriptions largely clarify these boundaries, so an agent can still choose correctly.

Naming Consistency4/5

All names use lower snake_case, which is predictable. Most follow verb_noun (list_tags, create_box, set_material), but several are noun-only (model_info, selection_info, quantity_takeoff, screenshot) and a few are single words (ping, undo), so it is not a perfectly uniform verb_noun pattern.

Tool Count3/5

With 26 tools, the server is on the heavy side for an MCP tool set, but the breadth of SketchUp operations means most tools have a distinct job. It sits just above the typical 3-15 range, making it borderline but not clearly bloated.

Completeness4/5

Core lifecycle is covered: create (box/shape/lines/component), read (model_info, list_*, selection_info), update (transform, set_material, set_tag), delete, and undo, plus run_ruby as an escape hatch. Gaps remain for tag/material deletion, scene management, redo, and some component/definition operations, but agents can work around most via run_ruby.

Maintenance

ActivityMaintained
ResponsivenessNo issues