RhinoMCP

by reer-ide
MIT License

RhinoMCP - Integración del protocolo de contexto del modelo de Rhino

Este proyecto, desarrollado por REER, INC., está disponible para que la comunidad lo use y pruebe. Invitamos a quienes contribuyan a mejorar y ampliar la funcionalidad de RhinoMCP. RhinoMCP conecta Rhino, Grasshopper y otros con Claude AI mediante el Protocolo de Contexto de Modelo (MCP), lo que permite a Claude interactuar directamente con Rhino y controlarlo. Esta integración facilita el modelado 3D, la creación y manipulación de escenas con ayuda de indicaciones. (Inspirado en blender_mcp )

El proyecto proporciona dos implementaciones de servidor:

  • Servidor MCP con protocolo Stdio estándar para la integración de Claude Desktop
  • Servidor de protocolo SSE (Server-Side Events) para integración de cliente web personalizado

Características

Rinoceronte
  • Comunicación bidireccional : conecte Claude AI a Rhino a través de un servidor basado en sockets
  • Manipulación y gestión de objetos : cree y modifique objetos 3D en Rhino, incluidos metadatos
  • Gestión de capas : ver e interactuar con las capas de Rhino
  • Inspección de escena : obtenga información detallada sobre la escena actual de Rhino (incluida captura de pantalla)
  • Ejecución de código : Ejecute código Python arbitrario en Rhino desde Claude
  • Selección de objetos : obtenga información sobre los objetos seleccionados actualmente en Rhino
  • Documentación de RhinoScriptSyntax : Busque la documentación de RhinoScriptSyntax
Grasshopper (en desarrollo)

Nota importante : Si bien las herramientas de integración de Grasshopper pueden estar disponibles en Claude, aún se encuentran en desarrollo y aún no están completamente disponibles. Estamos trabajando para implementar la funcionalidad completa de Grasshopper en futuras versiones.

Componentes

El sistema consta de dos componentes principales:

  1. Script del lado de Rhino ( rhino_script.py ) : un script de Python que se ejecuta dentro de Rhino para crear un servidor de sockets que recibe y ejecuta comandos
  2. Servidor MCP ( rhino_mcp/server.py ) : un servidor Python que implementa el Protocolo de contexto de modelo y se conecta al script de Rhino

Instalación

Prerrequisitos

  • Rhino 7 o más reciente
  • Python 3.10 o más reciente
  • administrador de paquetes uv
  • Conda (para la gestión del entorno) o una instalación de Python existente

Opciones de instalación

Instalar uv

Si estás en Mac, abre la terminal y ejecuta:

wget -qO- https://astral.sh/uv/install.sh | sh

En Windows, abra PowerShell y ejecute

irm https://astral.sh/uv/install.ps1 | iex

De lo contrario, las instrucciones de instalación se encuentran en su sitio web: Instalar uv

⚠️ No proceda antes de instalar UV

Opción 1: Instalación rápida con uvx/pip (recomendada)

Primero, necesitas integrarte con Claude Desktop:

  1. Vaya a Claude Desktop > Configuración > Desarrollador > Editar configuración
  2. Abra el archivo claude_desktop_config.json y agregue la siguiente configuración:
{ "mcpServers": { "rhino": { "command": "uvx", "args": ["reer-rhino-mcp"] } } }
  1. Guardar el archivo

O si desea utilizar el Cursor: Para usuarios de Mac, vaya a Configuración > MCP y pegue lo siguiente

  • Para usarlo como servidor global, use el botón "agregar nuevo servidor MCP global" y pegue
  • Para utilizarlo como un servidor específico del proyecto, cree .cursor/mcp.json en la raíz del proyecto y péguelo
{ "mcpServers": { "rhino": { "command": "uvx", "args": [ "reer-rhino-mcp" ] } } }

Para los usuarios de Windows, vaya a Configuración > MCP > Agregar servidor, agregue un nuevo servidor con la siguiente configuración:

{ "mcpServers": { "rhino": { "command": "cmd", "args": [ "/c", "uvx", "reer-rhino-mcp" ] } } }

A continuación, instale el script del lado de Rhino:

  1. Descargue el archivo rhino_script.py del repositorio
  2. Abrir Rhino
  3. Para Rhino 7:
    • Abra el editor de Python:
      • Haga clic en el menú "Herramientas"
      • Seleccione "Editor de Python" (o presione Ctrl+Alt+P / Cmd+Alt+P)
    • En el editor de Python:
      • Haga clic en "Archivo" > "Abrir".
      • Navegue hasta rhino_script.py y selecciónelo
      • Haga clic en "Ejecutar" (o presione F5)
  4. Para Rhino 8:
    • Haga clic en el menú "Herramientas"
    • Seleccione "RhinoScript" > "Ejecutar"
    • Navegue hasta rhino_script.py y selecciónelo
  5. El script se iniciará automáticamente y debería ver estos mensajes en el Editor de Python:
    RhinoMCP script loaded. Server started automatically. To stop the server, run: stop_server()

Por último, reinicie Claude Desktop, iniciará automáticamente el servidor MCP y se conectará a Rhino.

Este método se recomienda para la mayoría de los usuarios que solo desean utilizar RhinoMCP sin modificar su código fuente.

También puedes ver el vídeo tutorial de este método:

Opción 2: Instalación de desarrollo local

Si desea modificar el código fuente o contribuir al proyecto, puede instalarlo en modo de desarrollo:

Clonar el repositorio

Usando Conda
  1. Cree un nuevo entorno conda con Python 3.10:
    conda create -n rhino_mcp python=3.10 conda activate rhino_mcp
  2. Instalar el administrador de paquetes uv :
    pip install uv
  3. Instalar el paquete en modo de desarrollo:
    uv pip install -e .
Uso de una instalación de Python existente

Si ya tiene Python instalado, puede instalar el servidor MCP directamente en su entorno base:

  1. Instalar el paquete en modo de desarrollo:
    pip install -e .
  2. Tenga en cuenta que para configurar Claude Desktop, deberá encontrar la ruta correcta del sistema a su instalación de Python. Puede encontrarla ejecutando:
    which python # On macOS/Linux where python # On Windows
Integración de escritorio de Claude

Igual que la Opción 1, pero debes especificar la ruta completa al intérprete de Python en el archivo claude_desktop_config.json :

{ "mcpServers": { "rhino": { "command": "/your/python/path", "args": ["-m", "rhino_mcp.server"] } } }

Ejemplos de rutas de Python:

  • Windows: C:\\Users\\username\\anaconda3\\envs\\rhino_mcp\\python.exe
  • macOS: /Users/username/anaconda3/envs/rhino_mcp/bin/python

Asegúrese de:

  • Reemplace la ruta de Python con la ruta a Python en su entorno conda o Python del sistema si usa el segundo método
  • Guarde el archivo y reinicie Claude Desktop

Nota importante: si está utilizando un entorno conda, debe especificar la ruta completa al intérprete de Python como se muestra arriba.

Protocolo SSE (Eventos del lado del servidor) Servidor Rhino MCP

El servidor SSE es una implementación alternativa del servidor MCP de Rhino que utiliza eventos del lado del servidor para la comunicación en tiempo real. Este servidor se ejecuta en 127.0.0.1:8080 y está diseñado para funcionar con clientes web personalizados. Ofrece la misma funcionalidad que el servidor MCP estándar, pero utiliza un protocolo de transporte diferente, más adecuado para aplicaciones web.

Para utilizar el servidor SSE:

  1. Ejecute el servidor usando: python -m rhino_mcp.server_sse
  2. Conecte su cliente web a ws://127.0.0.1:8080/sse
  3. Enviar mensajes a http://127.0.0.1:8080/messages/

El servidor SSE admite todas las mismas operaciones de Rhino que el servidor MCP estándar, lo que lo hace ideal para crear interfaces web personalizadas para el control de Rhino.

Uso

Usando con Claude

Una vez conectado, Claude u otro LLM pueden utilizar las siguientes herramientas MCP:

  • get_rhino_scene_info() : obtiene información simplificada de la escena centrándose en capas y objetos de ejemplo
  • get_rhino_layers() : obtiene información sobre todas las capas en la escena de Rhino
  • execute_code(code) : Ejecuta código Python arbitrario en Rhino
  • get_rhino_objects_with_metadata(filters, metadata_fields) : obtiene información detallada sobre los objetos en la escena con sus metadatos, con filtrado opcional
  • capture_rhino_viewport(layer, show_annotations, max_size) : captura la ventana gráfica con anotaciones opcionales y filtrado de capas
  • get_rhino_selected_objects(include_lights, include_grips) : obtiene información sobre los objetos actualmente seleccionados en la ventana gráfica de Rhino
  • look_up_RhinoScriptSyntax(function_name) : busque documentación para una función RhinoScriptSyntax directamente desde el sitio web para desarrolladores de Rhino3D

Comandos de ejemplo

Aquí hay algunos ejemplos de lo que puedes pedirle a Claude que haga:

  • Infórmate sobre la situación actual de Rhino.
  • "Crear un cubo en el origen"
  • Obtener todas las capas del documento de Rhino
  • "Ejecute este código Python en Rhino: ..."
  • "¿Puedes decirme la dimensión de la pared que seleccioné en Rhino?"
  • Ayúdame a calcular la superficie del piso seleccionado en Rhino.
  • "Muéstrame la documentación de la función SelectedObjects"
  • "¿Cómo uso la función AddCylinder en Rhino Script?"
  • ...

Contribuyendo

¡Agradecemos las contribuciones al proyecto RhinoMCP! Si te interesa colaborar, aquí tienes algunas maneras de hacerlo:

  1. Informes de errores : si encuentra un error, cree un problema con una descripción detallada del problema y los pasos para reproducirlo.
  2. Solicitudes de funciones : ¿Tienes una idea para una nueva función? Abre un problema para discutirlo.
  3. Contribuciones de código : ¿Quieres agregar una función o corregir un error?
    • Bifurcar el repositorio
    • Crea una nueva rama para tus cambios
    • Envíe una solicitud de extracción con una descripción clara de sus cambios

Asegúrese de que su código siga el estilo existente e incluya la documentación adecuada.

Descargo de responsabilidad

Este software se proporciona "tal cual", sin garantía de ningún tipo, expresa o implícita. REER, INC. no ofrece garantías ni declaraciones con respecto al software, incluyendo, entre otras, la calidad, la fiabilidad, la compatibilidad o la idoneidad para un fin determinado.

Al utilizar este software, usted reconoce y acepta que REER, INC. no será responsable de ningún daño directo, indirecto, incidental, especial o consecuente que surja del uso o la imposibilidad de usar el software.

Este proyecto está en desarrollo activo y puede contener errores o funciones incompletas. Si bien nos esforzamos por garantizar la calidad y la fiabilidad, le rogamos que tenga cuidado al implementarlo en entornos de producción.

Documentación y recursos relevantes

-
security - not tested
-
license - not tested
-
quality - not tested

Un servidor de protocolo de contexto de modelo que conecta Rhino y Grasshopper con Claude AI, lo que permite el modelado 3D asistido por indicaciones, la creación de escenas y la manipulación a través de la interacción directa de la IA con el entorno de Rhino.

  1. Características
    1. Rinoceronte
    2. Grasshopper (en desarrollo)
  2. Componentes
    1. Instalación
      1. Prerrequisitos
      2. Opciones de instalación
    2. Instalar uv
      1. Opción 1: Instalación rápida con uvx/pip (recomendada)
      2. Opción 2: Instalación de desarrollo local
      3. Protocolo SSE (Eventos del lado del servidor) Servidor Rhino MCP
    3. Uso
      1. Usando con Claude
      2. Comandos de ejemplo
    4. Contribuyendo
      1. Descargo de responsabilidad
        1. Documentación y recursos relevantes
          ID: d0aebegt2e