- 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>
104 lines
4.5 KiB
Markdown
104 lines
4.5 KiB
Markdown
# RhinoMCP - Architektur
|
|
|
|
## Übersicht
|
|
|
|
```text
|
|
┌─────────────────────────────────────────────────────────┐
|
|
│ 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
|
|
|
|
```text
|
|
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
|
|
|
|
```json
|
|
{
|
|
"action": "grasshopper_delete_component",
|
|
"params": {
|
|
"component_id": "guid-here"
|
|
}
|
|
}
|
|
```
|
|
|
|
**Wichtig**: Parameter müssen unter `"params"` sein, nicht im Root-Objekt!
|