Skip to main content
Glama

RhinoMCP

by reer-ide
MIT License

RhinoMCP - Rhino 모델 컨텍스트 프로토콜 통합

이 프로젝트는 REER, INC.에서 개발하여 커뮤니티에서 사용 및 테스트할 수 있도록 공개되었습니다. RhinoMCP의 기능 개선 및 확장에 기여해 주시는 모든 분들의 참여를 환영합니다. RhinoMCP는 모델 컨텍스트 프로토콜(MCP)을 통해 Rhino, Grasshopper 등을 Claude AI에 연결하여 Claude가 Rhino와 직접 상호 작용하고 제어할 수 있도록 합니다. 이러한 통합을 통해 신속한 3D 모델링, 장면 생성 및 조작이 가능해졌습니다. ( blender_mcp 에서 영감을 받음)

이 프로젝트는 두 가지 서버 구현을 제공합니다.

  • Claude Desktop 통합을 위한 표준 Stdio 프로토콜 MCP 서버
  • 사용자 정의 웹 클라이언트 통합을 위한 SSE(서버 측 이벤트) 프로토콜 서버

특징

코뿔소
  • 양방향 통신 : 소켓 기반 서버를 통해 Claude AI를 Rhino에 연결합니다.
  • 개체 조작 및 관리 : 메타데이터를 포함하여 Rhino에서 3D 개체를 만들고 수정합니다.
  • 레이어 관리 : Rhino 레이어 보기 및 상호 작용
  • 장면 검사 : 현재 Rhino 장면에 대한 자세한 정보를 얻으세요(화면 캡처 포함)
  • 코드 실행 : Claude의 Rhino에서 임의의 Python 코드 실행
  • 개체 선택 : Rhino에서 현재 선택된 개체에 대한 정보를 가져옵니다.
  • RhinoScriptSyntax 설명서 : RhinoScriptSyntax에 대한 설명서를 찾아보세요.
Grasshopper(개발 중)

중요 참고 사항 : Grasshopper 통합 도구가 Claude에서 사용 가능한 것처럼 보일 수 있지만, 아직 개발 중이므로 완전히 사용할 수 있는 상태는 아닙니다. 향후 릴리스에서 Grasshopper 기능을 완벽하게 구현하기 위해 노력하고 있습니다.

구성 요소

이 시스템은 두 가지 주요 구성 요소로 구성됩니다.

  1. Rhino 측 스크립트( rhino_script.py ) : 명령을 수신하고 실행하는 소켓 서버를 생성하기 위해 Rhino 내부에서 실행되는 Python 스크립트
  2. MCP 서버( rhino_mcp/server.py ) : 모델 컨텍스트 프로토콜을 구현하고 Rhino 스크립트에 연결하는 Python 서버

설치

필수 조건

  • Rhino 7 이상
  • Python 3.10 이상
  • uv 패키지 관리자
  • Conda(환경 관리용) 또는 기존 Python 설치

설치 옵션

uv 설치

Mac을 사용하는 경우 터미널을 열고 다음을 실행하세요.

지엑스피1

Windows에서 Powershell을 열고 실행하세요.

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

그렇지 않은 경우 설치 지침은 해당 웹사이트에 있습니다: uv 설치

⚠️ UV 설치 전 진행하지 마세요

옵션 1: uvx/pip를 사용한 빠른 설치(권장)

먼저 Claude Desktop과 통합해야 합니다.

  1. Claude Desktop > 설정 > 개발자 > 구성 편집으로 이동하세요.
  2. claude_desktop_config.json 파일을 열고 다음 구성을 추가합니다.
{ "mcpServers": { "rhino": { "command": "uvx", "args": ["reer-rhino-mcp"] } } }
  1. 파일을 저장하세요

또는 커서를 사용하려면 Mac 사용자의 경우 설정 > MCP로 이동하여 다음을 붙여넣습니다.

  • 글로벌 서버로 사용하려면 "새로운 글로벌 MCP 서버 추가" 버튼을 사용하여 붙여넣으세요.
  • 프로젝트별 서버로 사용하려면 프로젝트 루트에 .cursor/mcp.json 만들고 붙여넣으세요.
{ "mcpServers": { "rhino": { "command": "uvx", "args": [ "reer-rhino-mcp" ] } } }

Windows 사용자의 경우 설정 > MCP > 서버 추가로 이동하여 다음 설정으로 새 서버를 추가하세요.

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

그런 다음 Rhino 측 스크립트를 설치하세요.

  1. 저장소에서 rhino_script.py 파일을 다운로드하세요
  2. 오픈 라이노
  3. Rhino 7의 경우:
    • Python 편집기를 엽니다.
      • "도구" 메뉴를 클릭하세요
      • "Python 편집기"를 선택하세요(또는 Ctrl+Alt+P / Cmd+Alt+P를 누르세요)
    • Python 편집기에서:
      • "파일" > "열기"를 클릭하세요
      • rhino_script.py 로 이동하여 선택하세요.
      • "실행"을 클릭하세요(또는 F5를 누르세요)
  4. Rhino 8의 경우:
    • "도구" 메뉴를 클릭하세요
    • "RhinoScript" > "실행"을 선택하세요
    • rhino_script.py 로 이동하여 선택하세요.
  5. 스크립트가 자동으로 시작되고 Python 편집기에서 다음 메시지가 표시됩니다.
    RhinoMCP script loaded. Server started automatically. To stop the server, run: stop_server()

마지막으로 Claude Desktop을 다시 시작하면 MCP 서버가 자동으로 시작되고 Rhino에 연결됩니다.

이 방법은 소스 코드를 수정하지 않고 RhinoMCP만 사용하려는 대부분의 사용자에게 권장됩니다.

이 방법에 대한 비디오 튜토리얼도 시청할 수 있습니다.

옵션 2: 로컬 개발 설치

소스 코드를 수정하거나 프로젝트에 기여하고 싶다면 개발 모드로 설치할 수 있습니다.

저장소를 복제합니다

Conda 사용하기
  1. Python 3.10으로 새로운 conda 환경을 만듭니다.
    conda create -n rhino_mcp python=3.10 conda activate rhino_mcp
  2. uv 패키지 관리자를 설치하세요:
    pip install uv
  3. 개발 모드에서 패키지를 설치하세요:
    uv pip install -e .
기존 Python 설치 사용

이미 Python이 설치되어 있다면 MCP 서버를 기본 환경에 직접 설치할 수 있습니다.

  1. 개발 모드에서 패키지를 설치하세요:
    pip install -e .
  2. Claude Desktop 구성의 경우 Python 설치 경로의 올바른 시스템 경로를 찾아야 합니다. 다음 명령어를 실행하여 경로를 찾을 수 있습니다.
    which python # On macOS/Linux where python # On Windows
Claude 데스크톱 통합

옵션 1과 동일하지만, claude_desktop_config.json 파일에서 Python 인터프리터의 전체 경로를 지정해야 합니다.

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

Python 경로 예시:

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

다음 사항을 확인하세요.

  • 두 번째 방법을 사용하는 경우 Python 경로를 conda 환경의 Python 경로 또는 시스템 Python 경로로 바꾸십시오.
  • 파일을 저장하고 Claude Desktop을 다시 시작하세요.

중요 참고 사항: conda 환경을 사용하는 경우 위에 표시된 대로 Python 인터프리터의 전체 경로를 지정해야 합니다.

SSE(서버 측 이벤트) 프로토콜 Rhino MCP 서버

SSE 서버는 Rhino MCP 서버의 대안으로, 실시간 통신을 위해 서버 측 이벤트를 사용합니다. 이 서버는 127.0.0.1:8080 에서 실행되며 사용자 지정 웹 클라이언트와 호환되도록 설계되었습니다. 표준 MCP 서버와 동일한 기능을 제공하지만 웹 기반 애플리케이션에 더 적합한 다른 전송 프로토콜을 사용합니다.

SSE 서버를 사용하려면:

  1. python -m rhino_mcp.server_sse 사용하여 서버를 실행합니다.
  2. 웹 클라이언트를 ws://127.0.0.1:8080/sse 에 연결합니다.
  3. http://127.0.0.1:8080/messages/ 로 메시지를 보내세요

SSE 서버는 표준 MCP 서버와 동일한 모든 Rhino 작업을 지원하므로 Rhino 컨트롤을 위한 사용자 지정 웹 인터페이스를 구축하는 데 이상적입니다.

용법

Claude와 함께 사용

연결되면 Claude 또는 다른 LLM은 다음 MCP 도구를 사용할 수 있습니다.

  • get_rhino_scene_info() : 레이어와 예제 객체에 초점을 맞춘 단순화된 장면 정보를 가져옵니다.
  • get_rhino_layers() : Rhino 장면의 모든 레이어에 대한 정보를 가져옵니다.
  • execute_code(code) : Rhino에서 임의의 Python 코드를 실행합니다.
  • get_rhino_objects_with_metadata(filters, metadata_fields) : 선택적 필터링을 사용하여 메타데이터와 함께 장면의 개체에 대한 자세한 정보를 가져옵니다.
  • capture_rhino_viewport(layer, show_annotations, max_size) : 선택적 주석 및 레이어 필터링을 사용하여 뷰포트를 캡처합니다.
  • get_rhino_selected_objects(include_lights, include_grips) : Rhino 뷰포트에서 현재 선택된 개체에 대한 정보를 가져옵니다.
  • look_up_RhinoScriptSyntax(function_name) : Rhino3D 개발자 웹사이트에서 직접 RhinoScriptSyntax 함수에 대한 설명서를 찾습니다.

예제 명령

클로드에게 요청할 수 있는 작업의 몇 가지 예는 다음과 같습니다.

  • "현재 코뿔소 현장에 대한 정보를 얻으세요"
  • "원점에 큐브를 생성하세요"
  • "Rhino 문서의 모든 레이어 가져오기"
  • "Rhino에서 이 Python 코드를 실행하세요: ..."
  • "Rhino에서 선택한 벽의 크기를 알려주시겠어요?"
  • "Rhino에서 선택한 바닥의 표면적을 계산하는 데 도움을 주세요"
  • "SelectedObjects 함수에 대한 설명서를 보여주세요"
  • "Rhino Script에서 AddCylinder 함수를 어떻게 사용하나요?"
  • ...

기여하다

RhinoMCP 프로젝트에 대한 여러분의 참여를 환영합니다! 참여를 원하시는 분은 다음과 같은 방법으로 참여하실 수 있습니다.

  1. 버그 보고 : 버그를 발견한 경우, 문제에 대한 자세한 설명과 버그를 재현하는 단계를 포함하여 이슈를 생성해 주세요.
  2. 기능 요청 : 새로운 기능에 대한 아이디어가 있으신가요? 이슈를 개설하여 논의해 보세요.
  3. 코드 기여 : 기능을 추가하거나 버그를 수정하고 싶으신가요?
    • 저장소를 포크하세요
    • 변경 사항에 대한 새 브랜치를 만듭니다.
    • 변경 사항에 대한 명확한 설명과 함께 풀 리퀘스트를 제출하세요.

귀하의 코드가 기존 스타일을 따르고 적절한 문서를 포함하고 있는지 확인하세요.

부인 성명

본 소프트웨어는 명시적이든 묵시적이든 어떠한 종류의 보증 없이 "있는 그대로" 제공됩니다. REER, INC.는 품질, 신뢰성, 호환성 또는 특정 목적에의 적합성을 포함하되 이에 국한되지 않는 소프트웨어와 관련하여 어떠한 보증, 진술 또는 보장도 하지 않습니다.

이 소프트웨어를 사용함으로써 귀하는 REER, INC.가 소프트웨어의 사용 또는 사용 불능으로 인해 발생하는 직접적, 간접적, 우발적, 특별적 또는 결과적 손해에 대해 책임을 지지 않는다는 사실을 인정하고 동의합니다.

이 프로젝트는 현재 개발 중이므로 버그나 불완전한 기능이 포함되어 있을 수 있습니다. 품질과 안정성을 위해 최선을 다하고 있지만, 프로덕션 환경에서 구현할 때는 각별한 주의를 기울여 주시기 바랍니다.

관련 문서 및 리소스

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

Rhino와 Grasshopper를 Claude AI에 연결하는 모델 컨텍스트 프로토콜 서버로, Rhino 환경과 AI의 직접적인 상호 작용을 통해 즉각적인 3D 모델링, 장면 생성 및 조작이 가능합니다.

  1. 특징
    1. 코뿔소
    2. Grasshopper(개발 중)
  2. 구성 요소
    1. 설치
      1. 필수 조건
      2. 설치 옵션
    2. uv 설치
      1. 옵션 1: uvx/pip를 사용한 빠른 설치(권장)
      2. 옵션 2: 로컬 개발 설치
      3. SSE(서버 측 이벤트) 프로토콜 Rhino MCP 서버
    3. 용법
      1. Claude와 함께 사용
      2. 예제 명령
    4. 기여하다
      1. 부인 성명
        1. 관련 문서 및 리소스

          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/reer-ide/reer-rhino-mcp'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server