Files
Rhino-MCP/ARCHITECTURE.md
architeur 212e5a7844 Restructure documentation for context compacting
- CLAUDE.md: Only essential work instructions
- ARCHITECTURE.md: Technical details and tool list
- HANDOVER.md: Session state and next tasks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 22:54:03 +01:00

4.5 KiB

RhinoMCP - Architektur

Übersicht

┌─────────────────────────────────────────────────────────┐
│  Claude.ai / Claude Code                                │
└──────────────────┬──────────────────────────────────────┘
                   │ MCP Protocol (stdio)
┌──────────────────▼──────────────────────────────────────┐
│  MCP-Server (Python)                                    │
│  src/mcp-server/server.py                               │
│  - Tool-Definitionen                                    │
│  - Request/Response Handling                            │
└──────────────────┬──────────────────────────────────────┘
                   │ HTTP (localhost:9000)
┌──────────────────▼──────────────────────────────────────┐
│  Rhino-Plugin (C# .rhp)                                 │
│  src/rhino-plugin/RhinoMCP/                             │
│  ├─ RhinoMcpPlugin.cs    (Plugin-Einstieg)              │
│  ├─ HttpServer.cs        (HTTP-Endpoint)                │
│  ├─ CommandHandler.cs    (Rhino-Befehle)                │
│  ├─ GrasshopperHandler.cs(GH-Befehle)                   │
│  └─ MeshTerrainHandler.cs(Mesh/GIS-Tools)               │
└─────────────────────────────────────────────────────────┘

Technische Details

  • Rhino-Version: Rhino 9 WIP
  • Framework: .NET 7.0
  • RhinoCommon/Grasshopper SDK: 8.0.23304.9001
  • HTTP-Server: EmbedIO auf Port 9000
  • MCP-Transport: stdio

Verfügbare Tools

Rhino-Geometrie

  • rhino_create_point, rhino_create_line, rhino_create_polyline
  • rhino_create_circle, rhino_create_sphere, rhino_create_box
  • rhino_create_surface, rhino_create_curve
  • rhino_move, rhino_rotate, rhino_scale, rhino_copy
  • rhino_boolean_union, rhino_boolean_difference, rhino_boolean_intersection
  • rhino_export, rhino_run_command

Grasshopper

  • grasshopper_open_definition, grasshopper_get_definition_info
  • grasshopper_add_component, grasshopper_connect_components
  • grasshopper_add_slider, grasshopper_set_slider_value
  • grasshopper_set_toggle_value, grasshopper_set_panel_text
  • grasshopper_bake, grasshopper_save_definition, grasshopper_recompute
  • grasshopper_delete_component, grasshopper_add_group
  • grasshopper_add_scribble, grasshopper_rename_component

Mesh/Terrain/GIS

  • rhino_mesh_from_points, rhino_import_mesh, rhino_mesh_boolean
  • rhino_terrain_contours, rhino_terrain_slope_analysis
  • rhino_terrain_watershed, rhino_terrain_low_points
  • rhino_create_drainage_line, rhino_create_road_surface
  • rhino_import_geotiff, rhino_import_shapefile, rhino_import_xyz
  • rhino_transform_coordinates, rhino_get_bounding_box
  • rhino_create_grid, rhino_create_site_section, rhino_calculate_area_volume

Projektstruktur

Rhino-MCP/
├── CLAUDE.md              # Arbeitsanweisungen (kurz!)
├── ARCHITECTURE.md        # Diese Datei
├── HANDOVER.md            # Session-Übergabe
├── README.md              # Öffentliche Dokumentation
├── LICENSE                # MIT Lizenz
├── install.bat            # Windows-Installer
├── src/
│   ├── mcp-server/
│   │   ├── server.py
│   │   └── requirements.txt
│   └── rhino-plugin/
│       └── RhinoMCP/
│           ├── RhinoMCP.csproj
│           ├── RhinoMcpPlugin.cs
│           ├── HttpServer.cs
│           ├── CommandHandler.cs
│           ├── GrasshopperHandler.cs
│           └── MeshTerrainHandler.cs
└── docs/

HTTP-Request Format

{
  "action": "grasshopper_delete_component",
  "params": {
    "component_id": "guid-here"
  }
}

Wichtig: Parameter müssen unter "params" sein, nicht im Root-Objekt!