Skip to main content

SketchUp MCP (hardened fork)

Connect SketchUp to any MCP client (Claude Desktop, Claude Code, etc.) and drive it in natural language — create, transform and materialize geometry, run boolean operations, chamfer/fillet edges, build woodworking joints, and export the scene.

Provenance

  • Maintained by NeoNexAI Agency (AI consulting studio). Contact: info@neonexai.com.
  • Hardened fork of mhyrr/sketchup-mcp, itself inspired by blender-mcp.
  • What "hardened" means: the upstream project exposed an eval_ruby tool (arbitrary Ruby execution inside SketchUp → full disk/network access). This fork removes it entirely — Python server and Ruby extension — and the extension socket listens only on 127.0.0.1. The tool surface is 13 explicit, bounded tools. Audit the code yourself before installing, as you would with any third-party software: the diff vs upstream is public.

Architecture (two pieces)

SketchUp has no external API: it can only be driven from its embedded Ruby API. Hence two components working together:

MCP client (Claude Desktop / Claude Code)
        │  (MCP, stdio)
        ▼
  MCP server (Python, this package — uvx)
        │  (TCP socket 127.0.0.1:9876)
        ▼
  SketchUp extension (Ruby, su_mcp/)  ──►  SketchUp

Requirements

  • SketchUp 2021 or later (Windows; the Ruby extension uses only the standard SketchUp Ruby API).
  • Python 3.10+ and uv/uvx (pip install uv or winget install astral-sh.uv).

Installation

Step 1 — SketchUp extension (Ruby)

Copy su_mcp.rb and the su_mcp/ folder from this repository into:

%AppData%\SketchUp\SketchUp 20XX\SketchUp\Plugins\

(replace 20XX with your version). Restart SketchUp, then start the server: menu Extensions → SketchUp MCP → Start Server (listens on 127.0.0.1:9876).

Alternative: zip su_mcp.rb + su_mcp/, rename to .rbz, and install via Window → Extension Manager → Install Extension.

Step 2 — MCP server (Python)

Pin the version you audited (recommended — avoids silently pulling future releases):

Claude Desktop — %AppData%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "sketchup": {
      "command": "uvx",
      "args": ["neonexai-sketchup-mcp==1.1.0"]
    }
  }
}

Claude Code — same block in %UserProfile%\.claude.json, or via CLI:

claude mcp add sketchup --scope user -- uvx neonexai-sketchup-mcp==1.1.0

From GitHub instead of PyPI (pin to a commit for reproducibility):

"args": ["--from", "git+https://github.com/NeoNexAI/sketchup-mcp@main", "neonexai-sketchup-mcp"]

Restart the client. First call to make: sketchup_status.


Tools (13)

Tool What it does
sketchup_status Verify the connection (call first)
sketchup_get_selection Ids + data of the current selection
sketchup_create_component Create primitive (cube/cylinder/sphere/cone)
sketchup_transform_component Move / rotate / scale by id
sketchup_delete_component Delete by id
sketchup_set_material Apply material/color
sketchup_export_scene Export (skp/dae/obj/stl/png/jpg)
sketchup_boolean_operation Union / difference / intersection of solids
sketchup_chamfer_edges Bevel edges
sketchup_fillet_edges Round edges
sketchup_create_mortise_tenon Mortise & tenon joint
sketchup_create_dovetail Dovetail joint
sketchup_create_finger_joint Finger (box) joint

Example prompts

  • "Create a 200×80×40 box at the origin and apply 'Wood_Cherry'."
  • "Select that piece" → sketchup_get_selection → "move it 50 up in Z."
  • "Boolean difference: subtract the cylinder (tool) from the block (target)."
  • "Fillet all edges of that board with radius 1.5."
  • "Export the scene to DAE."

Units: SketchUp models default to inches. Tell your assistant which units you work in (cm/m) so it converts.

What it does NOT do

  • No photorealistic rendering — render plugins (V-Ray, Enscape, etc.) expose no scripting surface here; keep launching them from their own UI.
  • No arbitrary code execution — by design. The 13 tools above are the whole surface.
  • No network access — the extension accepts local connections only.

Configuration (env vars)

Variable Default Purpose
SKETCHUP_MCP_HOST 127.0.0.1 Extension host
SKETCHUP_MCP_PORT 9876 Extension port
SKETCHUP_MCP_TIMEOUT 30 Socket timeout (seconds)

Troubleshooting

  • "No se pudo conectar con SketchUp" → the extension server is not running: Extensions → SketchUp MCP → Start Server.
  • Command errors → open SketchUp's Ruby Console (Window → Ruby Console) for the detailed message.
  • Boolean operation fails → both entities must be closed (manifold) solids, not open surfaces.

License

MIT.

Metadata

Release files for neonexai-sketchup-mcp 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for neonexai-sketchup-mcp 1.1.0
File Size Uploaded
neonexai_sketchup_mcp-1.1.0.tar.gz 9.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for neonexai-sketchup-mcp 1.1.0
File Interpreter ABI Platform
neonexai_sketchup_mcp-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.0 kB

Release files / neonexai_sketchup_mcp-1.1.0.tar.gz

Download URL neonexai_sketchup_mcp-1.1.0.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
cae98d44dfd338cfd5792e8572712f1fd9f601c07876882ca809bf261ba7d0c5
BLAKE2b-256 checksum
How to use checksums
9a61e6e15630a8e69de8fa1d1ce5fb96004b8359b15c9f3de283081798f8fb97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.8

Release files / neonexai_sketchup_mcp-1.1.0-py3-none-any.whl

Download URL neonexai_sketchup_mcp-1.1.0-py3-none-any.whl
Size 9.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c651b7359a0d3e61c736b6c0df089d061cd8c43fd74cc98f19bc77b0b1e047f9
BLAKE2b-256 checksum
How to use checksums
73ef749fd1413daa94f4aa9f07ad68404cb933ce9cdc6e837917ad00869516bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.8

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page