For Sketchup
FreeMaintainedMCP server for interacting with Trimble SketchUp through AI assistants
About
MCP server for interacting with Trimble SketchUp through AI assistants
README
Connects SketchUp to AI assistants through the Model Context Protocol, enabling prompt-assisted 3D modeling, scene creation, and manipulation.
This is the Parkhill fork of mhyrr/sketchup-mcp, extended so it can be enabled by any employee from Parkhill LibreChat and driven against the SketchUp instance on their own workstation. Big shoutout to Blender MCP for the original inspiration.
Components
| Path | What it is |
|---|---|
su_mcp/ |
SketchUp Ruby extension. Listens on 127.0.0.1:9876 and executes SketchUp API calls. Packaged as a .rbz. |
server/ |
TypeScript MCP server, published as @parkhill/mcp-server-for-sketchup. stdio MCP in, TCP to the extension out. This is the supported path. |
src/sketchup_mcp/ |
Original Python MCP server, published to PyPI as sketchup-mcp. Retained for existing local setups. |
Two ways to run it
1. Local, with Claude Desktop
Install the extension, then point Claude Desktop at the npm package:
{
"mcpServers": {
"sketchup": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@parkhill/mcp-server-for-sketchup@latest"]
}
}
}
Drop the cmd /c wrapper on macOS and Linux. See server/README.md
for the full tool list, configuration, and error semantics.
2. Company-wide, from Parkhill LibreChat
A cloud MCP server cannot reach a workstation behind corporate NAT, so the connection direction is inverted: the desktop dials out and a broker routes each user's tool calls back down their own long-poll. This reuses the same infrastructure as the Revit integration.
LibreChat
│ streamable-http, x-user-id: {{LIBRECHAT_USER_EMAIL}}
▼
chat-ui backend (Azure App Service) /mcp/sketchup
│ per-user long-poll /api/connector/* (appId=sketchup)
▼
Parkhill desktop connector (MSI, Scheduled Task, Entra sign-in)
│ stdio, MCP
▼
@parkhill/mcp-server-for-sketchup
│ TCP 127.0.0.1:9876
▼
SketchUp Ruby extension → SketchUp
Users install the .rbz and the desktop connector; identity comes from their
Entra sign-in, so there is nothing to pair.
Installing the SketchUp extension
- Download the latest
.rbzfrom this repository's GitHub releases. - In SketchUp: Window > Extension Manager > Install Extension.
- Select the
.rbzand restart SketchUp.
The extension's TCP server starts automatically on load. To control it manually, use Extensions > MCP Server, which offers Start Server, Stop Server, and a Start Automatically toggle.
Tools
sketchup_status, get_selection, capture_view, create_component,
delete_component, transform_component, set_material, export_scene,
boolean_operation, chamfer_edges, fillet_edges, create_mortise_tenon,
create_dovetail, create_finger_joint, and the privileged eval_ruby.
capture_view renders the viewport and hands it back as an image, so the
assistant can see the model it is being asked to work on. It needs no extension
update: the capture ships in the npm package. See
server/README.md.
Lengths are in inches, angles in degrees. See server/README.md for parameters and details.
eval_rubyexecutes arbitrary Ruby in the user's SketchUp process and blocks its UI thread with no cancel path. It is available to everyone: each user drives only the SketchUp on their own workstation, so the reach is the machine they are already sitting at. To restrict it again, setCHAT_TOOL_DENYLIST_SKETCHUPon the backend — no code change or redeploy of this repo required.
Example prompts
- "Create a simple house model with a roof and windows"
- "Make the selected component red"
- "Move the selected component 10 inches up"
- "Cut a dovetail joint between these two boards"
- "Export the current scene as an OBJ"
Troubleshooting
| Symptom | Cause |
|---|---|
SKETCHUP_NOT_RUNNING |
SketchUp is closed, or its server was stopped. Check Extensions > MCP Server. |
SKETCHUP_BUSY |
SketchUp is showing a modal dialog or running a long operation. |
SKETCHUP_ERROR |
The call reached SketchUp and raised. Check the Ruby Console for the backtrace. |
| Server won't start | A second SketchUp instance already holds port 9876. Only one instance can serve at a time. |
Development
cd server
npm install
npm run build
npm test # socket-layer tests against a mock of the Ruby extension
Build the extension package either way:
cd su_mcp && ruby package.rb # needs the rubyzip gem
cd su_mcp; ./build-rbz.ps1 # no Ruby needed (Windows)
cd su_mcp; ./build-rbz.ps1 -InstallToPlugins # also copy into SketchUp's Plugins folder
The PowerShell script verifies that extension.json and su_mcp.rb agree on the
version and writes ZIP entries with forward slashes (Compress-Archive on
PowerShell 5.1 writes backslashes, which some extractors mishandle). CI builds
the .rbz on tag.
Releasing
Tag vX.Y.Z matching server/package.json. CI verifies the version match, runs
the tests, publishes to npm, and attaches a built .rbz to the release. The
extension's own version lives in su_mcp/extension.json, su_mcp/su_mcp.rb, and
su_mcp/package.rb; CI fails the release if those three disagree.
License
MIT
Install For Sketchup in Claude Desktop, Claude Code & Cursor
unyly install for-sketchupInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add for-sketchup -- npx -y @parkhill/mcp-server-for-sketchupStep-by-step: how to install For Sketchup
FAQ
Is For Sketchup MCP free?
Yes, For Sketchup MCP is free — one-click install via Unyly at no cost.
Does For Sketchup need an API key?
No, For Sketchup runs without API keys or environment variables.
Is For Sketchup hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install For Sketchup in Claude Desktop, Claude Code or Cursor?
Open For Sketchup on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
Roblox Studio
Enables AI coding tools to control Roblox Studio for workspace exploration, instance manipulation, and script management. It provides tools for playtesting, sce
by paralovAWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzMCP-Agent
A simple, composable framework to build agents using Model Context Protocol by [LastMile AI](https://www.lastmileai.dev)
by lastmile-aiSpring AI MCP Client
Provides auto-configuration for MCP client functionality in Spring Boot applications.
mcp.natoma.ai
A Hosted MCP Platform to discover, install, manage and deploy MCP servers by [Natoma Labs](https://www.natoma.ai)
MCPHub
Website to list high quality MCP servers and reviews by real users. Also provide online chatbot for popular LLM models with MCP server support.
MCP Servers Rating and User Reviews
Website to rate MCP servers, write authentic user reviews, and [search engine for agent & mcp](http://www.deepnlp.org/search/agent)
Compare For Sketchup with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
