Get the FREE Ultimate OpenClaw Setup Guide →

rhinomcp

RhinoMCP connects Rhino 3D to AI Agent through the Model Context Protocol (MCP)

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio jingcheng-chen-rhinomcp uvx rhinomcp

How to use

RhinoMCP connects Rhino to AI agents by exposing a socket-based MCP server that the agents can connect to and issue commands. This enables two-way communication where the AI can inspect the current Rhino document, create or modify objects, run Rhino Python scripts, and manage scene state such as layers. The server uses a simple JSON protocol over TCP: commands are sent as JSON objects with a type and optional params, and responses return a status and either a result or an error message. Typical workflows involve starting the MCP server from within Rhino, then using an agent (via Claude or Cursor) to send requests like get_document_info, create or delete objects, or execute scripts, and receiving immediate feedback in Rhino.

The available tools include: inspecting the document (get_document_info, get_layer_info), object manipulation (create, modify, delete objects; select objects by filters like name or color with logical operators), layer management (get/set current layer, create or delete layers), and script execution (runRhinoPython or similar actions to execute Rhino Python scripts, though this is experimental). There is also functionality to fetch documentation for specific RhinoScript functions and to perform object selection using filter criteria. The integration focuses on enabling prompt-driven 3D modeling by allowing AI agents to iteratively build and adjust geometry through the MCP server.

From the Rhino plugin side, the MCP server runs in Python and the Rhino plugin hosts a socket server inside Rhino to receive commands. To start, in Rhino run the mcpstart command after ensuring the uvx Rhinomcp server is available and configured. If you use Claude or Cursor integrations, you will configure the appropriate MCP settings in their respective app settings, pointing to the uvx rhinomcp entry, and then use the UI tools to issue commands to Rhino via MCP.

How to install

Prerequisites

  • Rhino 7 or newer (Windows or Mac)
  • Python 3.10 or newer
  • uv package manager

Install the Rhino plugin

  1. In Rhino, open Tools > Package Manager
  2. Search for rhinomcp
  3. Install the plugin

Install uv (required to run the MCP server via uvx)

  • macOS: run the following in a terminal: brew install uv
  • Windows: run the PowerShell command to install uv: powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

Create the configuration file

  1. Create a JSON file (for example mcp_config.json) with the following content:
{
  "mcpServers": {
    "rhino": {
      "command": "uvx",
      "args": ["rhinomcp"]
    }
  }
}
  1. Make sure the Rhino plugin is configured to use this MCP server. If using Claude Desktop Integration, place this config in claude_desktop_config.json or point Claude to load the above config. For Cursor integration, place the config in a .cursor/mcp.json file in your project root and enable MCP in Cursor settings.

Starting the server

  • In Rhino, run the command mcpstart to establish the MCP connection once the uvx rhinomcp server is accessible and the plugin is loaded.

Notes

  • Only one MCP server instance should run at a time (or within the same workflow) to avoid conflicts.
  • The MCP server and plugin are designed for proof-of-concept; more complex geometries will be added in future iterations.

Additional notes

Tips and known considerations:

  • The system currently supports creating primitive objects for demonstration (Point, Line, Polyline, Circle, Arc, Ellipse, Curve, Box, Sphere, Cone, Cylinder, Surface from points).
  • get_document_info limits results to a practical sample (e.g., max 30 objects) to avoid overwhelming the client.
  • Ensure only one MCP server instance is running at a time in a given Rhino session (or per workflow) to prevent conflicts.
  • If you encounter connection issues, verify that uvx rhinomcp is installed and the config file correctly points to it, and that the Rhino plugin is running and listening for commands.
  • Environment variables are optional for basic usage; if you introduce authentication, paths, or custom host/port settings, document them in the env block of the mcp_config.
  • For Claude Desktop and Cursor integrations, keep their respective apps updated and ensure the config file paths (claude_desktop_config.json or .cursor/mcp.json) correctly reference the MCP server config.
  • Script execution is experimental; results may vary between runs and Rhino versions.

Related MCP Servers

Sponsor this space

Reach thousands of developers