Grasshopper MCP
Enables remote execution of Python code in Rhino/Grasshopper, allowing AI to automate computational design workflows, generate scripts, and interact with the Grasshopper canvas in real-time.
Powers ML-based layout optimization features including DBSCAN and K-means clustering for component grouping, K-NN position prediction for component placement, and pattern learning for Grasshopper definitions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Grasshopper MCPoptimize my grasshopper layout with ML clustering"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
š Rhino Grasshopper MCP - AI-Powered Computational Design Assistant
An MCP (Model Context Protocol) server that brings AI capabilities directly into Rhino/Grasshopper workflows, featuring ML-based automatic layout optimization - a capability not found in any other publicly available tool.
šÆ What Makes This Different?
Unlike basic Grasshopper-to-LLM connectors that only generate code, this tool includes:
š§ ML-Based Auto Layout (Industry First)
DBSCAN clustering for automatic component grouping
K-means clustering for fixed group counts
User pattern learning with persistent preferences
K-NN position prediction for optimal new component placement
Wire crossing minimization algorithm
š AI Mentoring System
Performance prediction: Estimates optimization impact (e.g., "15-30% improvement expected")
Pattern detection: Identifies inefficient patterns and suggests better alternatives
Auto-grouping: Analyzes wire connectivity to suggest logical component groups
Layout anomaly detection: Finds isolated, overlapping, or misaligned components
š Live Rhino Integration
Real-time connection to running Rhino/Grasshopper instances
Execute Python code remotely in Rhino
Get canvas state and trigger solves
No file-based workflow required
š Features Overview
Category | Features |
Rhino Bridge | Live connection, remote Python execution, canvas state |
GH File Ops | Parse .gh/.ghx files, analyze structure, extract components |
Component Library | Searchable database of 500+ GH components |
Code Generation | GHPython and C# script templates |
AI Mentoring | Performance prediction, alternatives, auto-grouping |
ML Layout | Clustering, position prediction, crossing minimization |
š ļø Installation
git clone https://github.com/dongwoosuk/rhino-grasshopper-mcp.git
cd rhino-grasshopper-mcp
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -e .āļø Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"grasshopper": {
"command": "path/to/rhino_grasshopper_mcp/.venv/Scripts/python.exe",
"args": ["-m", "rhino_grasshopper_mcp"]
}
}
}š Live Rhino Connection (Optional)
To enable real-time Rhino/Grasshopper control:
Open Rhino 7 or 8
Run
EditPythonScriptcommandOpen and run
rhino_listener/rhino_bridge_listener.pyYou'll see:
Rhino Bridge Listener started on localhost:8080
š Available Tools
Rhino Bridge (requires listener)
Tool | Description |
| Check connection status |
| Execute Python in Rhino |
| Get current canvas state |
| Load a .gh file |
| Trigger recompute |
AI Mentoring Tools
Tool | Description |
| Predict optimization impact |
| Detect patterns, suggest better approaches |
| Analyze connectivity, suggest groupings |
| ML clustering analysis |
| K-NN based position prediction |
Pattern Detection Examples
The suggest_alternatives tool detects these inefficient patterns:
Pattern | Better Alternative |
Multiple Move components | Single Transform Matrix |
Flatten + Graft sequence | Path Mapper |
Python loops for geometry | Native GH components |
Serial Boolean operations | Batch Boolean |
Expression for simple math | Native Math components |
šļø Architecture
rhino_grasshopper_mcp/
āāā rhino_grasshopper_mcp/
ā āāā bridge.py # Main MCP server
ā āāā rhino_bridge.py # TCP client to Rhino
ā āāā gh_file_ops.py # .gh/.ghx parsing
ā āāā component_library.py # Component database
ā āāā code_generator.py # Code templates
ā āāā mentoring/
ā āāā ml_layout_learner.py # DBSCAN/K-means
ā āāā advanced_layout_learner.py # Advanced learning
ā āāā persistent_layout_learner.py # User patterns
ā āāā performance_predictor.py # Optimization prediction
ā āāā alternative_suggester.py # Pattern detection
ā āāā auto_grouper.py # Wire-based grouping
ā āāā wire_crossing_detector.py # Crossing detection
ā āāā crossing_minimizer.py # Layout optimization
āāā rhino_listener/
ā āāā rhino_bridge_listener.py # Run IN Rhino
āāā pyproject.tomlš¤ ML Layout System Details
How It Works
Feature Extraction: Analyzes component positions, types, and connections
Clustering: Groups components using DBSCAN or K-means
Pattern Learning: Stores user preferences in
layout_preferences.jsonPosition Prediction: Uses K-NN to suggest optimal positions for new components
Anomaly Detection: Identifies layout issues (isolated nodes, overlaps, wrong flow direction)
Supported Analyses
# Example: ML clustering analysis
result = ml_layout_analysis(gh_file_path, method="dbscan")
# Returns: clusters, anomalies, optimization suggestions
# Example: Position prediction
result = predict_component_position(gh_file_path, "Panel", near_component="Slider")
# Returns: predicted X, Y coordinates based on learned patternsšÆ Use Cases
Design Automation: Let AI handle repetitive Grasshopper tasks
Code Review: Get suggestions for optimizing definitions
Learning: AI mentoring for Grasshopper best practices
Layout Cleanup: Automatic organization of messy definitions
Team Standards: Consistent component arrangement across projects
š License
MIT License - see LICENSE file.
š Acknowledgments
Built on the Model Context Protocol by Anthropic
Grasshopper by David Rutten / McNeel
scikit-learn for ML algorithms
š¬ Contact
Dongwoo Suk - Computational Design Specialist
GitHub: dongwoosuk
LinkedIn: dongwoosuk
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/dongwoosuk/grasshopper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server