RhinoMCP

by reer-ide
MIT License

RhinoMCP – Integration des Rhino-Modellkontextprotokolls

Dieses Projekt wurde von REER, INC. entwickelt und der Community zur Nutzung und zum Testen zur Verfügung gestellt. Wir freuen uns über Beiträge, die zur Verbesserung und Erweiterung der Funktionalität von RhinoMCP beitragen. RhinoMCP verbindet Rhino, Grasshopper und weitere Anwendungen über das Model Context Protocol (MCP) mit Claude AI. Dadurch kann Claude direkt mit Rhino interagieren und es steuern. Diese Integration ermöglicht 3D-Modellierung, Szenenerstellung und -bearbeitung mit sofortiger Unterstützung. (inspiriert von blender_mcp )

Das Projekt bietet zwei Serverimplementierungen:

  • Standard-Stdio-Protokoll-MCP-Server für die Claude Desktop-Integration
  • SSE-Protokollserver (Server-Side Events) für die benutzerdefinierte Webclient-Integration

Merkmale

Nashorn
  • Zweiwegekommunikation : Verbinden Sie Claude AI über einen Socket-basierten Server mit Rhino
  • Objektmanipulation und -verwaltung : Erstellen und ändern Sie 3D-Objekte in Rhino einschließlich Metadaten
  • Ebenenverwaltung : Anzeigen und Interagieren mit Rhino-Ebenen
  • Szeneninspektion : Erhalten Sie detaillierte Informationen zur aktuellen Rhino-Szene (inkl. Bildschirmaufnahme)
  • Codeausführung : Führen Sie beliebigen Python-Code in Rhino von Claude aus
  • Objektauswahl : Erhalten Sie Informationen zu den aktuell ausgewählten Objekten in Rhino
  • RhinoScriptSyntax-Dokumentation : Suchen Sie in der Dokumentation zu einer RhinoScriptSyntax
Grasshopper (in Entwicklung)

Wichtiger Hinweis : Obwohl die Grasshopper-Integrationstools in Claude verfügbar erscheinen, befinden sie sich noch in der Entwicklung und sind noch nicht vollständig nutzbar. Wir arbeiten daran, die vollständige Grasshopper-Funktionalität in zukünftigen Versionen zu implementieren.

Komponenten

Das System besteht aus zwei Hauptkomponenten:

  1. Rhino-seitiges Skript ( rhino_script.py ) : Ein Python-Skript, das innerhalb von Rhino ausgeführt wird, um einen Socket-Server zu erstellen, der Befehle empfängt und ausführt
  2. MCP-Server ( rhino_mcp/server.py ) : Ein Python-Server, der das Model Context Protocol implementiert und eine Verbindung zum Rhino-Skript herstellt

Installation

Voraussetzungen

  • Rhino 7 oder neuer
  • Python 3.10 oder neuer
  • UV-Paketmanager
  • Conda (für Umgebungsmanagement) oder eine vorhandene Python-Installation

Installationsoptionen

UV installieren

Wenn Sie einen Mac verwenden, öffnen Sie das Terminal und führen Sie Folgendes aus:

wget -qO- https://astral.sh/uv/install.sh | sh

Öffnen Sie unter Windows Powershell und führen Sie aus

irm https://astral.sh/uv/install.ps1 | iex

Ansonsten finden Sie Installationsanweisungen auf der Website: Install uv

⚠️ Fahren Sie nicht fort, bevor Sie UV installiert haben

Option 1: Schnellinstallation mit uvx/pip (empfohlen)

Zuerst müssen Sie die Integration mit Claude Desktop durchführen:

  1. Gehen Sie zu Claude Desktop > Einstellungen > Entwickler > Konfiguration bearbeiten
  2. Öffnen Sie die Datei claude_desktop_config.json und fügen Sie die folgende Konfiguration hinzu:
{ "mcpServers": { "rhino": { "command": "uvx", "args": ["reer-rhino-mcp"] } } }
  1. Speichern Sie die Datei

Oder wenn Sie Cursor verwenden möchten: Für Mac-Benutzer gehen Sie zu Einstellungen > MCP und fügen Sie Folgendes ein

  • Um es als globalen Server zu verwenden, verwenden Sie die Schaltfläche „Neuen globalen MCP-Server hinzufügen“ und fügen Sie
  • Um es als projektspezifischen Server zu verwenden, erstellen Sie .cursor/mcp.json im Stammverzeichnis des Projekts und fügen Sie
{ "mcpServers": { "rhino": { "command": "uvx", "args": [ "reer-rhino-mcp" ] } } }

Windows-Benutzer gehen zu Einstellungen > MCP > Server hinzufügen und fügen einen neuen Server mit den folgenden Einstellungen hinzu:

{ "mcpServers": { "rhino": { "command": "cmd", "args": [ "/c", "uvx", "reer-rhino-mcp" ] } } }

Installieren Sie dann das Rhino-seitige Skript:

  1. Laden Sie die Datei rhino_script.py aus dem Repository herunter
  2. Öffnen Sie Rhino
  3. Für Rhino 7:
    • Öffnen Sie den Python-Editor:
      • Klicken Sie auf das Menü "Extras"
      • Wählen Sie „Python Editor“ (oder drücken Sie Strg+Alt+P / Cmd+Alt+P)
    • Im Python-Editor:
      • Klicken Sie auf „Datei“ > „Öffnen“.
      • Navigieren Sie zu rhino_script.py und wählen Sie es aus
      • Klicken Sie auf „Ausführen“ (oder drücken Sie F5).
  4. Für Rhino 8:
    • Klicken Sie auf das Menü „Extras“
    • Wählen Sie „RhinoScript“ > „Ausführen“
    • Navigieren Sie zu rhino_script.py und wählen Sie es aus
  5. Das Skript wird automatisch gestartet und Sie sollten diese Meldungen im Python-Editor sehen:
    RhinoMCP script loaded. Server started automatically. To stop the server, run: stop_server()

Starten Sie abschließend den Claude Desktop neu. Der MCP-Server wird automatisch gestartet und eine Verbindung zu Rhino hergestellt.

Diese Methode wird den meisten Benutzern empfohlen, die RhinoMCP einfach verwenden möchten, ohne den Quellcode zu ändern.

Sie können sich auch das Video-Tutorial zu dieser Methode ansehen:

Option 2: Lokale Entwicklungsinstallation

Wenn Sie den Quellcode ändern oder zum Projekt beitragen möchten, können Sie es im Entwicklungsmodus installieren:

Klonen Sie das Repository

Verwenden von Conda
  1. Erstellen Sie eine neue Conda-Umgebung mit Python 3.10:
    conda create -n rhino_mcp python=3.10 conda activate rhino_mcp
  2. Installieren Sie den uv Paketmanager:
    pip install uv
  3. Installieren Sie das Paket im Entwicklungsmodus:
    uv pip install -e .
Vorhandene Python-Installation verwenden

Wenn Sie Python bereits installiert haben, können Sie den MCP-Server direkt in Ihrer Basisumgebung installieren:

  1. Installieren Sie das Paket im Entwicklungsmodus:
    pip install -e .
  2. Beachten Sie, dass Sie für die Konfiguration von Claude Desktop den korrekten Systempfad zu Ihrer Python-Installation ermitteln müssen. Diesen finden Sie, indem Sie Folgendes ausführen:
    which python # On macOS/Linux where python # On Windows
Claude Desktop Integration

Wie Option 1, aber Sie müssen den vollständigen Pfad zum Python-Interpreter in der Datei claude_desktop_config.json angeben:

{ "mcpServers": { "rhino": { "command": "/your/python/path", "args": ["-m", "rhino_mcp.server"] } } }

Beispiel-Python-Pfade:

  • Windows: C:\\Users\\username\\anaconda3\\envs\\rhino_mcp\\python.exe
  • macOS: /Users/username/anaconda3/envs/rhino_mcp/bin/python

Stellen Sie Folgendes sicher:

  • Ersetzen Sie den Python-Pfad durch den Pfad zu Python in Ihrer Conda-Umgebung oder Ihrem System-Python, wenn Sie die zweite Methode verwenden.
  • Speichern Sie die Datei und starten Sie Claude Desktop neu

Wichtiger Hinweis: Wenn Sie eine Conda-Umgebung verwenden, müssen Sie den vollständigen Pfad zum Python-Interpreter wie oben gezeigt angeben.

SSE-Protokoll (Server-Side Events) Rhino MCP Server

Der SSE-Server ist eine alternative Implementierung des Rhino MCP-Servers, der Server-Side Events für die Echtzeitkommunikation nutzt. Dieser Server läuft unter 127.0.0.1:8080 und ist für die Zusammenarbeit mit benutzerdefinierten Webclients konzipiert. Er bietet die gleiche Funktionalität wie der Standard-MCP-Server, verwendet jedoch ein anderes Transportprotokoll, das besser für webbasierte Anwendungen geeignet ist.

So verwenden Sie den SSE-Server:

  1. Führen Sie den Server mit folgendem Befehl aus: python -m rhino_mcp.server_sse
  2. Verbinden Sie Ihren Webclient mit ws://127.0.0.1:8080/sse
  3. Senden Sie Nachrichten an http://127.0.0.1:8080/messages/

Der SSE-Server unterstützt dieselben Rhino-Operationen wie der Standard-MCP-Server und eignet sich daher ideal zum Erstellen benutzerdefinierter Webschnittstellen zur Rhino-Steuerung.

Verwendung

Verwendung mit Claude

Sobald die Verbindung hergestellt ist, kann Claude oder ein anderer LLM die folgenden MCP-Tools verwenden:

  • get_rhino_scene_info() : Erhalten Sie vereinfachte Szeneninformationen mit Schwerpunkt auf Ebenen und Beispielobjekten
  • get_rhino_layers() : Informationen zu allen Ebenen in der Rhino-Szene abrufen
  • execute_code(code) : Führt beliebigen Python-Code in Rhino aus
  • get_rhino_objects_with_metadata(filters, metadata_fields) : Erhalten Sie detaillierte Informationen zu Objekten in der Szene mit ihren Metadaten, mit optionaler Filterung
  • capture_rhino_viewport(layer, show_annotations, max_size) : Erfassen Sie den Ansichtsbereich mit optionalen Anmerkungen und Ebenenfilterung
  • get_rhino_selected_objects(include_lights, include_grips) : Informationen zu den aktuell im Rhino-Ansichtsfenster ausgewählten Objekten abrufen
  • look_up_RhinoScriptSyntax(function_name) : Suchen Sie direkt auf der Rhino3D-Entwickler-Website nach der Dokumentation für eine RhinoScriptSyntax-Funktion.

Beispielbefehle

Hier sind einige Beispiele dafür, was Sie von Claude verlangen können:

  • „Informiere dich über die aktuelle Rhino-Szene“
  • "Erstelle einen Würfel am Ursprung"
  • "Alle Ebenen im Rhino-Dokument abrufen"
  • „Führen Sie diesen Python-Code in Rhino aus: …“
  • „Können Sie mir die Abmessungen der Wand nennen, die ich in Rhino ausgewählt habe?“
  • „Helfen Sie mir, die Oberfläche des ausgewählten Bodens in Rhino zu berechnen.“
  • „Zeigen Sie mir die Dokumentation zur Funktion SelectedObjects“
  • „Wie verwende ich die AddCylinder-Funktion in Rhino Script?“
  • ...

Beitragen

Wir freuen uns über Beiträge zum RhinoMCP-Projekt! Wenn Sie uns unterstützen möchten, haben Sie folgende Möglichkeiten:

  1. Fehlerberichte : Wenn Sie einen Fehler finden, erstellen Sie bitte ein Problem mit einer detaillierten Beschreibung des Problems und den Schritten zur Reproduktion.
  2. Funktionsanfragen : Haben Sie eine Idee für eine neue Funktion? Öffnen Sie ein Problem, um es zu besprechen.
  3. Code-Beiträge : Möchten Sie eine Funktion hinzufügen oder einen Fehler beheben?
    • Forken Sie das Repository
    • Erstellen Sie einen neuen Zweig für Ihre Änderungen
    • Senden Sie eine Pull-Anfrage mit einer klaren Beschreibung Ihrer Änderungen

Bitte stellen Sie sicher, dass Ihr Code dem vorhandenen Stil folgt und die entsprechende Dokumentation enthält.

Haftungsausschluss

Diese Software wird „wie besehen“ und ohne jegliche ausdrückliche oder stillschweigende Gewährleistung bereitgestellt. REER, INC. übernimmt keine Gewährleistungen, Zusicherungen oder Garantien in Bezug auf die Software, insbesondere nicht hinsichtlich Qualität, Zuverlässigkeit, Kompatibilität oder Eignung für einen bestimmten Zweck.

Durch die Verwendung dieser Software erkennen Sie an und stimmen zu, dass REER, INC. nicht für direkte, indirekte, zufällige, besondere oder Folgeschäden haftet, die sich aus der Verwendung oder der Unfähigkeit zur Verwendung der Software ergeben.

Dieses Projekt befindet sich in der aktiven Entwicklung und kann Fehler oder unvollständige Funktionen enthalten. Obwohl wir Qualität und Zuverlässigkeit anstreben, bitten wir Sie, bei der Implementierung in Produktionsumgebungen entsprechende Vorsicht walten zu lassen.

Relevante Dokumentation und Ressourcen

-
security - not tested
-
license - not tested
-
quality - not tested

Ein Model Context Protocol-Server, der Rhino und Grasshopper mit Claude AI verbindet und durch direkte KI-Interaktion mit der Rhino-Umgebung eine sofortige 3D-Modellierung, Szenenerstellung und -bearbeitung ermöglicht.

  1. Merkmale
    1. Nashorn
    2. Grasshopper (in Entwicklung)
  2. Komponenten
    1. Installation
      1. Voraussetzungen
      2. Installationsoptionen
    2. UV installieren
      1. Option 1: Schnellinstallation mit uvx/pip (empfohlen)
      2. Option 2: Lokale Entwicklungsinstallation
      3. SSE-Protokoll (Server-Side Events) Rhino MCP Server
    3. Verwendung
      1. Verwendung mit Claude
      2. Beispielbefehle
    4. Beitragen
      1. Haftungsausschluss
        1. Relevante Dokumentation und Ressourcen
          ID: d0aebegt2e