SketchUp MCP
io.github.2ez4gcxv1.2.0更新於 Oct 10, 2026
Let AI assistants work in SketchUp: quantity takeoff, modeling, materials, screenshots, Ruby.
安裝
在 SourceWeft 中
- 開啟 儀表板中的 SketchUp MCP,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
SketchUp MCP
English | Tiếng Việt
[SketchUp MCP: ask in plain language and the AI works in your SketchUp model]
SketchUp MCP lets Claude work directly in the SketchUp model you have open. Ask in plain language, in any language, and Claude reads the model, runs quantity takeoffs by tag or material, models geometry, assigns materials and tags, takes screenshots to check its own work, and exports images and files. It ships as a Claude Desktop extension (.mcpb) that runs on the Node.js built into Claude Desktop, plus a small Ruby extension for SketchUp (the SU MCP Bridge). You do not need to install Python or Node.js.
Current version: 1.2.0 - download it from Releases. Also listed in the official MCP Registry as io.github.2ez4gcx/sketchup-mcp.
Features
26 tools, all working in millimetres (areas in m², volumes in m³, angles in degrees, Z up):
Highlights:
- Quantity takeoff by tag or material: walks the whole model (or only the selection) and totals face area, face count, edge length, solid volume and component instance counts. Untagged or unpainted entities inherit the tag or material of their parent group.
- Screenshot that restores your view: Claude sees the viewport image directly. When it asks for a specific view (iso, top, front...), the camera changes only for the capture, and your own view comes back afterwards.
run_rubyas one undo step: when no dedicated tool fits, Claude can run Ruby API code. The whole snippet is a single Undo step. On an error the partial changes are rolled back, and the message points to the line in the snippet.- Every model edit is one Undo step, named
MCP: ...in SketchUp's Edit menu, so Ctrl+Z always takes back exactly one Claude action. install_sketchup_bridge: Claude installs or updates the Ruby bridge itself. It copies the files into the Plugins folder of every SketchUp version that has been opened at least once (dry_runonly reports what it would do).- Safe defaults: an existing material keeps its color unless Claude passes
update_existing=true.delete_entitiesonly deletes by explicit id, never by selection. After a timeout, the error tells Claude whether the command may already have run, so it does not repeat the edit and create duplicate geometry. - Version check:
pingshows which model Claude is controlling and warns when the bridge in SketchUp is older than the one bundled in the extension. - SketchUp menu (Extensions > SU MCP Bridge):
Start server,Stop server,Status,Open log file,Change port....
Demo
[A pavilion built step by step through the SketchUp MCP tools]
This demo pavilion was built entirely through the MCP tools (create_box, create_shape, run_ruby, set_material, set_tag), then checked with screenshot and quantity_takeoff - 82 tool calls in total.
How it works
Requirements
- Claude Desktop (a current version, with Settings > Extensions), signed in to a Claude account.
- SketchUp 2017 or later (desktop). Tested on SketchUp 2021 and 2023. Each SketchUp version must have been opened at least once before you install the bridge.
- Windows 10/11: tested. macOS: untested (the extension is packaged for macOS and the installer knows the macOS Plugins folder, but it has not been tried on a Mac).
- To build from source only: Node.js 18 or later and npm.
Download
Get the files from the latest release:
Install
-
Install the extension in Claude Desktop. Open Settings > Extensions, then drag and drop
sketchup-mcp-1.2.0.mcpbinto the window, or click Advanced settings > Install Extension... and pick the file. Click Install. The build is not code-signed, so Claude Desktop may warn that the extension is unsigned: only install a file from this project's releases or one you built yourself. On the Microsoft Store version of Claude, double-clicking a.mcpbfile does not open it, so install it through Settings. -
Install the SU MCP Bridge in SketchUp. In a new chat, ask Claude:
Install SU MCP Bridge in SketchUp
Claude calls
install_sketchup_bridge(click Allow) and lists the SketchUp versions it updated. Or install it manually: Extensions > Extension Manager > Install Extension (SketchUp 2017-2020: Window > Extension Manager), then picksu_mcp.rbz. The plugin is not digitally signed. If SketchUp refuses to load it, set the Extension Loading Policy (gear icon in Extension Manager) to Approve Unidentified Extensions, if your IT policy allows it. -
Fully quit SketchUp and reopen it. Then check Extensions > SU MCP Bridge > Status. It should show
SU MCP Bridge v1.2.0: RUNNING on 127.0.0.1:9876. Finally, ask Claude "Ping SketchUp".
Options are under Settings > Extensions > SketchUp MCP > Configure: the bridge port (default 9876) and the timeout per command (default 120 s; raise it for takeoffs on large models). If you change the port, change it in SketchUp too (Extensions > SU MCP Bridge > Change port...) and restart SketchUp.
To update, install the new .mcpb over the old one (your settings are kept), ask Claude to install the bridge again, and restart SketchUp. Always update both parts.
Sample prompts: mcpb/release-docs/en/SAMPLE_PROMPTS.txt. The full user guide (HTML and PDF) is in the release zip (GUIDE_EN.html / GUIDE_EN.pdf) and attached to each release; its source is mcpb/release-docs/en/GUIDE.html.
Other MCP clients
The .mcpb one-click install is specific to Claude Desktop, but the server is a standard MCP server over stdio, so any
client that can launch local MCP servers can use it. Outside Claude Desktop you need Node.js 18 or later on your PATH.
1. Get the server. The .mcpb file is a zip archive. Extract it to a folder of your choice, for example with the
tar that ships with Windows 10/11, in Command Prompt or PowerShell (the tar of Git Bash cannot read it). You can also rename
the file to .zip and use Extract All:
The server is then C:/Tools/sketchup-mcp/server/index.mjs (use forward slashes in configs). The folder also contains
the bridge files, so install_sketchup_bridge works from any client. You can also build it from source
(mcpb/dist/bundle/server/index.mjs).
2. Register it in your client (snippets below). Optional environment variables: SKETCHUP_MCP_PORT (default 9876)
and SKETCHUP_MCP_TIMEOUT (seconds per command, default 120). If your client has its own tool-call timeout, set it
above SKETCHUP_MCP_TIMEOUT.
3. Install the bridge as in Install step 2-3 (ask the assistant to run install_sketchup_bridge, or use
su_mcp.rbz), then restart SketchUp.
Screenshots are returned as MCP images, so the model must support image input to "see" them. Tool descriptions are
written for any model, but tool-use quality varies between models. If another SketchUp MCP server is already registered
under the name sketchup, give this one another name (e.g. sketchup-node) to avoid duplicate tools.
Claude Code
Put the server name before -e (an argument right after -e is read as another KEY=value). Use --scope project to
write a shared .mcp.json in the current folder instead (Claude Code asks for approval before using it).
Cursor - %USERPROFILE%\.cursor\mcp.json (all projects) or .cursor\mcp.json (one project)
VS Code (GitHub Copilot agent mode) - .vscode\mcp.json or the user mcp.json (MCP: Open User Configuration)
Note the top-level key is servers, not mcpServers:
Windsurf / Devin Desktop - %APPDATA%\devin\mcp_config.json (older Windsurf: %USERPROFILE%\.codeium\windsurf\mcp_config.json)
OpenAI Codex CLI / ChatGPT desktop app (Codex mode) - %USERPROFILE%\.codex\config.toml
Both use the same file; in the ChatGPT desktop app you can also add it under Settings > MCP servers > STDIO.
Codex stops a tool call after 60 s by default, so raise tool_timeout_sec:
Or: codex mcp add sketchup --env SKETCHUP_MCP_TIMEOUT=120 -- node C:/Tools/sketchup-mcp/server/index.mjs
(then add tool_timeout_sec by hand).
Google Gemini CLI - %USERPROFILE%\.gemini\settings.json (or .gemini\settings.json in a project)
Or: gemini mcp add -s user -e SKETCHUP_MCP_TIMEOUT=120 sketchup node C:/Tools/sketchup-mcp/server/index.mjs.
For personal Google accounts, Gemini CLI has been replaced by Antigravity CLI, which uses its own MCP config file.
ChatGPT on the web cannot start local programs; it would need this server exposed on a public HTTPS endpoint.
That is not recommended: run_ruby executes arbitrary Ruby inside SketchUp, and the bridge has no authentication.
Use the ChatGPT desktop app (Codex mode) instead.
Safety notes
- Localhost only. The bridge listens on
127.0.0.1, so other machines on the network cannot connect. The socket has no authentication, though: any program running on the same computer can send commands while the bridge is running. To turn it off for the current session, use Extensions > SU MCP Bridge > Stop server (it starts again with SketchUp). - Keep approvals on. Claude Desktop asks before each tool call. Do not choose "Always allow" for
run_ruby,delete_entities,undo,save_model,open_model,new_model,export_fileorexport_png(the two export tools can overwrite files). run_rubyexecutes arbitrary Ruby inside SketchUp, with your user's permissions and no time limit. Read the code before you allow it. An infinite loop freezes SketchUp, and you would have to close it from Task Manager and lose unsaved changes.- Every edit is one Undo step, so a wrong result can be taken back with Ctrl+Z or by asking Claude to undo.
- Work on copies of your projects, and save a copy before each session with Claude.
save_modelwithout a path overwrites the current file. - Model data is sent to Claude. When you ask a question, Claude reads model information (object names, quantities, screenshots...) and sends it to Anthropic's Claude service for processing. Follow your organization's and your clients' rules for confidential projects.
Troubleshooting
The log file (Extensions > SU MCP Bridge > Open log file) records command names, times and error messages, but no geometry and no full code. Error messages can quote parts of run_ruby code and file or object names, so review the file before sharing it.
Build from source
- The version must match in 4 places:
mcpb/package.json,mcpb/manifest.json,extension/su_mcp/main.rb(VERSION) andextension/su_mcp.rb(ext.version). The build stops if they differ. - The Ruby bridge keeps Ruby 2.2 syntax so it runs on SketchUp 2017 and later (no
&.,Array#sum,match?...). - Do not change
name(sketchup-mcp) orauthor.nameinmanifest.json: Claude Desktop uses them as the install ID, so changing either one makes a new release install as a second extension instead of an update. node scripts/smoke-test.mjs --livecalls the read-only tools against a running SketchUp. Use it only with a model you can safely work on.
Repository layout
Credits
Some ideas come from zinin/sketchup-mcp2 (MIT): catching every exception in eval, the "may have already run" message, restoring the camera after a capture, and checking the minimum version. No code was copied. The third-party libraries bundled into the server are listed with their licenses in THIRD_PARTY_NOTICES.txt, which the build generates.
SketchUp is a trademark of Trimble Inc. Claude is a trademark of Anthropic. This project is not affiliated with or endorsed by either company.
License
Released under the MIT License. Copyright (c) 2026 Khuong Doan.
來源:README.md,提交 b267ce3
工具
0版本歷史
1- v1.2.0最新Oct 10, 2026


