Rhino 3D

by always-tinkering

29 stars
770 downloads
Not rated
GitHub

About

Integrates with Rhino 3D's Python scripting environment to enable generation and manipulation of 3D models through geometry creation tools, with all operations requiring explicit user consent via dialog prompts.

Details

Author
always-tinkering
Repository
always-tinkering/rhinoMcpServer
GitHub stars
29
Downloads
770
Categories
Productivity, Developer Tools, Design, Workplace, File Management, AI, Knowledge Base, Frontend, Security, Other
Tags
#integration

- Tools to create sphere, box, cylinder primitives.
- Retrieve current scene information.
- Clear or create layers in the document.
- Combined, daemon, standalone server modes.
- Unified logging system for monitoring.
- Integration with Rhino 3D via C# plugin.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Rhino 3D
    Command (node, npx, python, etc.) npx
    Arguments
    • Argument 1 -y
    • Argument 2 @highlight/mcp-server

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install Claude Desktop, configure the MCP server connection in settings, then run ./server_launcher.sh [mode] (e.g., combined). The server is under active development and not yet fully functional; see troubleshooting logs via ./server_launcher.sh logs.

geometry_tools.create_sphere

Create a sphere with specified center and radius.

geometry_tools.create_box

Create a box with specified dimensions.

geometry_tools.create_cylinder

Create a cylinder with specified parameters.

scene_tools.get_scene_info

Get information about the current scene.

scene_tools.clear_scene

Clear objects from the scene.

scene_tools.create_layer

Create a new layer in the document.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "rhino 3d": {
            "env": {},
            "args": [
                "-y",
                "@highlight/mcp-server"
            ],
            "command": "npx"
        }
    }
}

Linux

{
    "env": [],
    "args": [
        "-y",
        "@highlight/mcp-server"
    ],
    "command": "npx"
}

Macos

{
    "env": [],
    "args": [
        "-y",
        "@highlight/mcp-server"
    ],
    "command": "npx"
}

Windows

{
    "env": [],
    "args": [
        "/c",
        "npx",
        "-y",
        "@highlight/mcp-server"
    ],
    "command": "cmd"
}

Rhino MCP Server

> ⚠️ UNDER CONSTRUCTION ⚠️
> This project is currently under active development and is not yet in working order. The Rhino plugin is experiencing issues with creating objects.
> We are actively seeking support from the community to help resolve these issues.
> If you have experience with Rhino API development, C# plugins, or MCP integration, please consider contributing.
> Contact us by opening an issue on GitHub.

A Model Context Protocol (MCP) server implementation for Rhino 3D, allowing Claude to create and manipulate 3D objects.

Overview

This project implements an MCP server for Rhino 3D that enables AI assistants like Claude to interact with Rhino through the Model Context Protocol. The server allows for the creation and manipulation of 3D objects directly from the AI interface.

System Architecture

The system consists of Python components that implement the MCP server and C# components that integrate with Rhino. Here's an overview of how the system components interact:

graph TD
    %% Client Applications
    client[Client Applications] --> socketProxy
    
    %% Socket Proxy
    subgraph "Python Socket Proxy"
        socketProxy[socket_proxy.py] --> daemonServer
    end
    
    %% Daemon Server
    subgraph "Python Daemon Server"
        daemonServer[daemon_mcp_server.py] --> combinedServer
    end
    
    %% Combined MCP Server
    subgraph "Python Combined MCP Server"
        combinedServer[combined_mcp_server.py]
        mcp[FastMCP] --> tools
        combinedServer --> mcp
        combinedServer --> rhinoConn
        subgraph "MCP Tools"
            tools[MCP Tool Methods]
        end
        rhinoConn[RhinoConnection]
    end
    
    %% Rhino Plugin Components
    subgraph "C# Rhino Plugin"
        rhinoPlugin[RhinoMcpPlugin.cs]
        socketServer[RhinoSocketServer.cs]
        utilities[RhinoUtilities.cs]
        commands[RhinoMcpCommand.cs]
        
        rhinoPlugin --> socketServer
        rhinoPlugin --> commands
        socketServer --> utilities
    end
    
    %% Connections between components
    rhinoConn <==> socketServer
    
    %% Logger Components
    subgraph "Logging System"
        logManager[log_manager.py]
        nlogConfig[NLog.config]
    end
    
    combinedServer --> logManager
    rhinoPlugin --> nlogConfig
    
    %% Connection to Rhino
    rhino[Rhino 3D Software]
    rhinoPlugin --> rhino
    
    classDef pythonClass fill:#3572A5,color:white;
    classDef csharpClass fill:#178600,color:white;
    classDef rhinoClass fill:#555555,color:white;
    
    class socketProxy,daemonServer,combinedServer,mcp,tools,rhinoConn,logManager pythonClass;
    class rhinoPlugin,socketServer,utilities,commands csharpClass;
    class rhino rhinoClass;

For more detailed information about the system architecture, including component descriptions and data flow, see code_architecture.md.

Components

There are several implementations available:

1. Combined MCP Server (Recommended):
- combined_mcp_server.py - Direct implementation that uses stdin/stdout for communication

2. Socket-based Servers:
- daemon_mcp_server.py - Background server that receives commands via socket connection
- socket_proxy.py - Proxy that forwards commands from stdin to the daemon server and back

3. Standalone Server:
- standalone-mcp-server.py - Original standalone implementation

Setup Instructions

1. Set up Claude Desktop

1. Install Claude Desktop if you haven't already
2. Configure the MCP server connection in Claude Desktop settings

2. Run the Server

We now have a unified server launcher that allows you to run any of the server implementations:

./server_launcher.sh [mode]

Available modes:
- combined (default) - Run the combined MCP server
- standalone - Run the standalone MCP server
- daemon - Run the daemon MCP server
- socket-proxy - Run the socket proxy
- direct - Run both daemon and socket proxy
- logs - View recent logs
- monitor - Monitor logs in real-time
- errors - View recent errors
- help - Show help message

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.