RhinoMCP
RhinoMCP: ein MCP-Server für Rhino 3D
105 Tools für KI-gesteuerte 3D-Modellierung, Analyse, Diagnose und Grasshopper-Integration über das Model Context Protocol.
RhinoMCP verbindet Claude mit Rhino 3D über eine umfassende Sammlung von Tools, die alles von grundlegenden Primitiven bis hin zu fortgeschrittener Oberflächenmodellierung (Loft, Sweep, Revolve), booleschen Operationen, Mesh-Diagnose, Blockverwaltung und parametrischem Design mit Grasshopper abdecken.
Architektur
┌────────────────┐ stdio ┌──────────────┐ TCP/JSON ┌──────────────┐
│ Claude Desktop │◄──────────►│ rhino_mcp │◄─────────────►│ Rhino 3D │
│ │ (MCP) │ (Python) │ localhost: │ listener.py │
│ │ │ server.py │ 9876 │ (inside │
└────────────────┘ └──────────────┘ │ Rhino) │
└──────────────┘MCP-Server (rhino_mcp/). Python-Paket mit FastMCP. Kommuniziert mit Claude über stdio und mit Rhino über TCP.
Rhino-Listener (rhino/listener.py). Python-Skript, das in Rhino läuft. Öffnet einen TCP-Server, empfängt JSON-Befehle, führt sie mit RhinoCommon/rhinoscriptsyntax aus und gibt Ergebnisse zurück.
Related MCP server: Grasshopper MCP
Funktionen
Geometrieerstellung (21 Tools)
Tool | Beschreibung |
| Einzel- oder Stapelpunkt-Erstellung |
| Linien und Polylinien |
| Interpolierte NURBS-Kurven |
| Kreisgeometrie |
| Rechteckige Polylinien |
| Volumenkörper-Primitive |
| Extrudieren und Rohr entlang von Kurven |
| NURBS-Oberflächen und Meshes |
| Textpunkte |
| Loft-Oberflächen durch Querschnitte |
| Ein- und Zwei-Schienen-Sweeps |
| Profile um eine Achse drehen |
| Planare und Patch-Oberflächen |
Transformationen (8 Tools)
move, rotate, scale, scale_non_uniform, mirror, copy, array_linear, array_polar
Boolesche Operationen (3 Tools)
boolean_union, boolean_difference, boolean_intersection
Modifikation (18 Tools)
Tool | Beschreibung |
| Grundlegende Modifikationen |
| Gruppierung |
| Geometrie verbinden und explodieren |
| Kurven trimmen und teilen |
| Geometrie versetzen |
| Kantenbearbeitung |
| Offene Breps verschließen |
| Kurvenbearbeitung |
| Kurven auf Oberflächen projizieren |
| Kanten/Grenzen extrahieren |
Blöcke und Instanzen (4 Tools)
create_block, insert_block, list_blocks, explode_block
Benutzerdaten (2 Tools)
set_user_text, get_user_text: speichern Metadaten, BIM-Daten, Kosten usw.
Ebenen (6 Tools)
list_layers, create_layer, delete_layer, set_layer_color, set_layer_visibility, set_current_layer
Materialien (3 Tools)
list_materials, create_material, assign_material
Analyse (10 Tools)
Tool | Beschreibung |
| Messungen |
| Räumliche Abfragen |
| Schnittpunkte zwischen Objekten finden |
| Krümmungsanalyse |
| Punkt-Enthalten-Tests |
Diagnose (4 Tools)
Tool | Beschreibung |
| Gültigkeit prüfen, fehlerhafte Geometrie finden |
| Lücken in Oberflächen finden |
| Mesh-Qualitätsanalyse |
| Mesh-Probleme automatisch beheben |
Ansicht (5 Tools)
zoom_extents, set_view, capture_view (mit base64-Option), list_views, set_display_mode
Grasshopper (3 Tools)
gh_run_script, gh_set_slider, gh_get_outputs
Code-Ausführung (2 Tools)
run_python, run_command: voller Zugriff auf rhinoscriptsyntax und RhinoCommon
Rückgängig/Wiederholen (2 Tools)
undo, redo
Szene (4 Tools)
scene_info, get_objects, get_object (detailliert mit Kanteninformationen), select_objects
Import/Export (2 Tools)
export (.3dm, .obj, .stl, .step, .iges, .fbx), import_file
Fett = neu in v2.0
Voraussetzungen
Rhino 7 oder 8 (Windows oder Mac)
Python 3.10+
uv-Paketmanager (Installation)
Installation
1. Klonen und installieren
git clone https://github.com/kbangaru-cyber/rhino-mcp.git
cd Rhino_MCP
uv sync2. Rhino-Listener starten
In Rhino:
Gehen Sie zu Tools > PythonScript > Run
Wählen Sie
rhino/listener.pySie sollten Folgendes sehen:
============================================================
RhinoMCP Listener v2.0.0
Listening on 127.0.0.1:9876
Registered handlers: 90
Ready for MCP connection (Claude)
============================================================3. Claude Desktop konfigurieren
Claude Desktop
Bearbeiten Sie claude_desktop_config.json:
{
"mcpServers": {
"rhino": {
"command": "uv",
"args": ["--directory", "/ABSOLUTE/PATH/TO/Rhino_MCP", "run", "rhino-mcp"],
"env": {
"RHINO_MCP_HOST": "127.0.0.1",
"RHINO_MCP_PORT": "9876",
"RHINO_MCP_TIMEOUT": "30"
}
}
}
}Anwendungsbeispiele
Ein einfaches Gebäude erstellen
„Erstellen Sie eine 10x8x4 Meter große Box für das Gebäudevolumen, fügen Sie dann einen Zylinder mit Radius 2 und Höhe 6 in der Mitte für einen Turm hinzu. Vereinigen Sie sie und verrunden Sie alle Kanten mit Radius 0,3."
Modellprobleme diagnostizieren
„Überprüfen Sie alle Objekte in der Szene auf Probleme. Finden Sie alle nackten Kanten und sagen Sie mir, was repariert werden muss."
Parametrisches Design
„Erstellen Sie eine Vasenform, indem Sie eine Profilkurve erstellen und sie rotieren lassen. Erstellen Sie dann eine polare Anordnung dekorativer Zylinder darum."
Integrierte Prompts
RhinoMCP enthält geführte Workflow-Prompts:
model-from-description: strukturierter Workflow zum Erstellen von 3D-Modellen aus Textbeschreibungendiagnose-model: systematischer Ansatz zum Finden und Beheben von Modellproblemenparametric-design: Leitfaden für Grasshopper/parametrische Workflows
Ressourcen
Der Server stellt Live-Daten als MCP-Ressourcen bereit:
URI | Beschreibung |
| Aktuelle Szenenübersicht |
| Ebenenbaum |
| Materialliste |
| Blockdefinitionen |
Konfiguration
Umgebungsvariable | Standard | Beschreibung |
|
| Rhino-Listener-Host |
|
| Rhino-Listener-Port |
|
| Befehls-Timeout (Sekunden) |
Entwicklung
# Install dev dependencies
uv sync --extra dev
# Run tests (no Rhino needed)
uv run pytest -v
# Lint
uv run ruff check .
# Type check
uv run mypy rhino_mcpIntegrationstests
Bei laufendem Rhino und aktivem Listener:
uv run pytest -v -m integrationProtokoll
Befehle sind JSON-Objekte, die über TCP gesendet werden (durch Zeilenumbrüche getrennt):
{"id": "abc123", "action": "create_sphere", "params": {"center": [0,0,0], "radius": 5}}Antworten:
{"id": "abc123", "ok": true, "result": {"guid": "d3e4f5..."}}Thread-Sicherheit
Der Rhino-Listener verwendet Rhino.RhinoApp.InvokeOnUiThread() auf Rhino 8+, um sicherzustellen, dass alle Geometrieoperationen im UI-Thread ausgeführt werden. Auf Rhino 7 werden Operationen direkt ausgeführt (was für Einzelclient-Verbindungen sicher ist).
Lizenz
MIT. Siehe LICENSE.
Autor
Karthick Raja B G, Portfolio · GitHub
Verwandte Arbeiten: SPIDER, ein Grasshopper-Plugin für computergestützte Geometrie und räumliche Analyse.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceConnects Rhino3D to Claude AI via the Model Context Protocol, enabling AI-assisted 3D modeling and design workflows through direct control of Rhino's functionality.12
- AlicenseNot gradedqualityCmaintenanceEnables AI-powered computational design in Rhino/Grasshopper with ML-based automatic layout optimization, component clustering, performance prediction, and real-time code execution in running Rhino instances.16MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Autodesk Revit to query project data, manage elements, and execute generated code via the Model Context Protocol. It provides full compatibility with GitHub Copilot and Claude to automate BIM modeling workflows.1391MIT
- AlicenseNot gradedqualityBmaintenanceGOLEM-3DMCP implements the Model Context Protocol to give AI agents direct, programmatic control of Rhino 8 — create geometry, run booleans, drive Grasshopper, capture viewports, and execute arbitrary Python scripts, all through natural language. Works with Claude Code, Cursor, Windsurf, and any MCP-compatible host.12MIT
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
DXF and PDF/X-4 for AI agents: structured facts, PNG renders, an interactive in-chat viewer.
Free OpenAI-compatible inference with signed provenance receipts and 3 focused MCP tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kbangaru-cyber/Rhino-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server