# CLAUDE.md - RhinoMcp Projektanweisungen > Diese Datei enthält Anweisungen für Claude Code bei der Arbeit an diesem Projekt. ## Projekt-Übersicht RhinoMcp ist ein MCP-Server (Model Context Protocol) zur Fernsteuerung von Rhino 8. Das Projekt besteht aus zwei Komponenten: 1. **RhinoMcp.Plugin** - Rhino 8 Plugin das auf Befehle lauscht 2. **RhinoMcp.Bridge** - Standalone MCP-Server der mit Claude kommuniziert ## Architektur ``` Claude Code ──HTTP/MCP──► RhinoMcp.Bridge ──TCP──► RhinoMcp.Plugin ──► Rhino 8 :9743 :9744 RhinoCommon API ``` ## Build-Befehle ```bash # Bridge bauen cd src/RhinoMcp.Bridge dotnet build # Plugin bauen (benötigt Rhino 8 SDK) cd src/RhinoMcp.Plugin dotnet build ``` ## Konventionen ### Code-Stil - C# 12, .NET 8.0 für Bridge, .NET 7.0 für Plugin (Rhino 8 Kompatibilität) - Nullable reference types aktiviert - Deutsche Kommentare, englische Identifier - Max 300 Zeilen pro Datei ### Datei-Organisation ``` src/ ├── RhinoMcp.Plugin/ # Rhino 8 Plugin │ ├── RhinoMcpPlugin.cs # Plugin Entry Point │ ├── CommandListener.cs # TCP Server in Rhino │ └── Commands/ # Rhino-Befehle │ └── RhinoMcp.Bridge/ # MCP Server ├── Program.cs # Entry Point └── Services/ ├── McpServer.cs # HTTP MCP Server ├── RhinoConnection.cs # TCP Client zu Rhino └── McpToolHandler.cs # Tool-Implementierungen ``` ### MCP-Tool Namenskonvention - Prefix: `rhino_` - Beispiele: `rhino_run_command`, `rhino_get_objects`, `rhino_create_layer` ## Wichtige Dateien - `CLAUDE.md` - Diese Datei (Anweisungen für Claude) - `HANDOVER.md` - Session-Übergabe Status - `src/RhinoMcp.Bridge/Services/McpServer.cs` - MCP HTTP Server - `src/RhinoMcp.Plugin/RhinoMcpPlugin.cs` - Rhino Plugin Entry ## Git & Deployment - Repository: `ssh://git@git.artetui.de:22222/admin/RhinoMcp.git` - Branch: `master` - Commit-Messages auf Englisch mit Emoji-Prefix ## Rhino 8 Spezifika - RhinoCommon NuGet: `RhinoCommon` (Version 8.x) - Plugin GUID muss eindeutig sein - Plugin wird nach `%APPDATA%\McNeel\Rhinoceros\8.0\Plug-ins\` kopiert