sketchup-mcp

MCP.Pizza Chef: mhyrr

SketchupMCP is a server integration that connects Sketchup to Claude AI using the Model Context Protocol. It enables two-way communication for prompt-assisted 3D modeling, allowing users to create, modify, and manipulate Sketchup components, materials, and scenes programmatically. It supports scene inspection, selection handling, and Ruby code execution within Sketchup, facilitating advanced and dynamic 3D design workflows.

Use This MCP server To

Create and modify 3D components in Sketchup via AI prompts Apply and adjust materials and colors on Sketchup models Inspect and retrieve detailed Sketchup scene information Manipulate selected components programmatically Execute Ruby scripts in Sketchup for custom operations Enable AI-driven scene creation and editing workflows

README

SketchupMCP - Sketchup Model Context Protocol Integration

SketchupMCP connects Sketchup to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Sketchup. This integration enables prompt-assisted 3D modeling, scene creation, and manipulation in Sketchup.

Big Shoutout to Blender MCP for the inspiration and structure.

Features

  • Two-way communication: Connect Claude AI to Sketchup through a TCP socket connection
  • Component manipulation: Create, modify, delete, and transform components in Sketchup
  • Material control: Apply and modify materials and colors
  • Scene inspection: Get detailed information about the current Sketchup scene
  • Selection handling: Get and manipulate selected components
  • Ruby code evaluation: Execute arbitrary Ruby code directly in SketchUp for advanced operations

Components

The system consists of two main components:

  1. Sketchup Extension: A Sketchup extension that creates a TCP server within Sketchup to receive and execute commands
  2. MCP Server (sketchup_mcp/server.py): A Python server that implements the Model Context Protocol and connects to the Sketchup extension

Installation

Python Packaging

We're using uv so you'll need to brew install uv

Sketchup Extension

  1. Download or build the latest .rbz file
  2. In Sketchup, go to Window > Extension Manager
  3. Click "Install Extension" and select the downloaded .rbz file
  4. Restart Sketchup

Usage

Starting the Connection

  1. In Sketchup, go to Extensions > SketchupMCP > Start Server
  2. The server will start on the default port (9876)
  3. Make sure the MCP server is running in your terminal

Using with Claude

Configure Claude to use the MCP server by adding the following to your Claude configuration:

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

This will pull the latest from PyPI

Once connected, Claude can interact with Sketchup using the following capabilities:

Tools

  • get_scene_info - Gets information about the current Sketchup scene
  • get_selected_components - Gets information about currently selected components
  • create_component - Create a new component with specified parameters
  • delete_component - Remove a component from the scene
  • transform_component - Move, rotate, or scale a component
  • set_material - Apply materials to components
  • export_scene - Export the current scene to various formats
  • eval_ruby - Execute arbitrary Ruby code in SketchUp for advanced operations

Example Commands

Here are some examples of what you can ask Claude to do:

  • "Create a simple house model with a roof and windows"
  • "Select all components and get their information"
  • "Make the selected component red"
  • "Move the selected component 10 units up"
  • "Export the current scene as a 3D model"
  • "Create a complex arts and crafts cabinet using Ruby code"

Troubleshooting

  • Connection issues: Make sure both the Sketchup extension server and the MCP server are running
  • Command failures: Check the Ruby Console in Sketchup for error messages
  • Timeout errors: Try simplifying your requests or breaking them into smaller steps

Technical Details

Communication Protocol

The system uses a simple JSON-based protocol over TCP sockets:

  • Commands are sent as JSON objects with a type and optional params
  • Responses are JSON objects with a status and result or message

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

sketchup-mcp FAQ

How does SketchupMCP connect Sketchup to AI models?
It uses a TCP socket connection to link Sketchup with Claude AI through the Model Context Protocol.
Can I modify Sketchup components using SketchupMCP?
Yes, you can create, modify, delete, and transform components programmatically.
Does SketchupMCP support material and color changes?
Yes, it allows applying and modifying materials and colors on Sketchup models.
Is it possible to run custom code in Sketchup via this integration?
Yes, SketchupMCP supports executing arbitrary Ruby code directly in Sketchup for advanced tasks.
What kind of scene information can I get from SketchupMCP?
You can retrieve detailed information about the current Sketchup scene, including components and selections.
Is SketchupMCP limited to Claude AI?
While designed for Claude AI, the MCP protocol allows potential integration with other LLMs like OpenAI and Gemini with appropriate adapters.
How does SketchupMCP handle component selection?
It can get and manipulate the currently selected components within Sketchup.
What are the main components of SketchupMCP?
It consists of a Sketchup extension and a TCP socket server facilitating communication with the AI.