Skip to main content
Glama
veoery
by veoery
README.md
# GH_mcp_server

GH_mcp_server provides an approach that allows designer to interact with Rhino and Grasshopper directly via LLMs, including to analyse .3dm file, do 3D modeling and generate GHPython automatically in Grasshopper based on user’s guidance.

>  This project is **still under construction** — and we’d love your help!
>
> - Feel free to **open an issue** if you encounter bugs or have ideas.
> - Pull requests are always welcome.
> - If you're interested in collaborating long-term, feel free to reach out to yizhuod@andrew.cmu.edu — we’d love to **have you on the team**!

![Alt text](examples/zaha01.png)

## Requirements

- Rhino 7 or 8

- Install `RhinoPython`: https://github.com/jingcheng-chen/RhinoPythonForVscode/tree/master?tab=readme-ov-file

- `uv`

  - ```
    # For MacOS and Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
    ```

  - ``````
    # For Windows
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    ``````

- Claude Desktop

## Installation

### 1. Clone the repository

```
git clone git@github.com:veoery/GH_mcp_server.git
cd GH_mcp_server
```

------

### 2. Set up the environment

We recommend using `uv`:

#### macOS/Linux

```
uv venv
source .venv/bin/activate
uv pip install -e .
```

#### Windows

```
uv venv
.venv\Scripts\activate
uv pip install -e .
```

> Make sure the virtual environment is activated before running or developing the project.

### 3. Configuration

1. In the Claude Desktop, Navigate to Settings->Developer. You will see ```Edit Config```.

2. Click the ```Edit Config``` and open the file ```claude_desktop_config.json```

3. Place the following code to the json file:
   ```python
   {
     "mcpServers": {
       "grasshopper": {
         "command": "path_to_GH_mcp_server/.venv/bin/python",
         "args": [
           "path_to_GH_mcp_server/run_server.py"
         ]
       }
     }
   }
   ```

4. Restart the Claude Desktop. If you are able to see a hammer icon, the configuration is successful. Click the hammer icon to check all the attached MCP tools.

## Usage

1. Start Rhino

2. Type command `CodeListener`. You should see `VS Code Listener Started...`.

3. Open the Claude Desktop and type the prompts to interact with GH_mcp_server tools. Please also check the file `examples\zaha01.gh` as a reference for interacting with Grasshopper. Here are some examples:

   ```
   Read the file "D:\test01.3dm" first and analyse the objects in this file.
   ```

   ```
   write GHpython to create a tower referring to zaha and write the ghpython code to "D:\zaha01.py"
   ```

​	

TDQS

B3.1/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have distinct purposes, but 'execute_grasshopper_code' is ambiguous because it executes Python code, not Grasshopper code, potentially causing confusion with other Grasshopper-related tools.

Naming Consistency4/5

All tool names follow a verb_noun snake_case pattern, which is consistent. However, 'execute_grasshopper_code' is misleading as it executes Python code, not Grasshopper code, slightly breaking the semantic consistency.

Tool Count5/5

With 8 tools, the server covers core Grasshopper and Rhino operations without being excessive. Each tool serves a clear function within the expected scope.

Completeness2/5

The tool set lacks creation and modification capabilities for Rhino objects and components. Missing tools for creating new geometry, saving files, or deleting objects, which are essential for a complete workflow.

Maintenance

ActivityInactive
ResponsivenessUnresponsive