Skip to main content
Glama

OpenSCAD MCP 서버

사용자가 텍스트 설명이나 이미지에서 3D 모델을 생성할 수 있도록 하는 MCP(Model Context Protocol) 서버로, 다중 뷰 재구성과 OpenSCAD를 사용하여 매개 변수 3D 모델을 만드는 데 중점을 둡니다.

특징

  • AI 이미지 생성 : Google Gemini 또는 Venice.ai API를 사용하여 텍스트 설명에서 이미지 생성

  • 다중 뷰 이미지 생성 : 재구성을 위해 동일한 3D 객체의 다중 뷰를 생성합니다.

  • 이미지 승인 워크플로 : 재구성 전 생성된 이미지를 검토하고 승인/거부합니다.

  • 3D 재구성 : CUDA Multi-View Stereo를 사용하여 승인된 다중 뷰 이미지를 3D 모델로 변환

  • 원격 처리 : LAN 내의 원격 서버에서 계산 집약적 작업을 처리합니다.

  • OpenSCAD 통합 : OpenSCAD를 사용하여 매개변수 3D 모델 생성

  • 매개변수 내보내기 : 매개변수 속성을 유지하는 형식(CSG, AMF, 3MF, SCAD)으로 모델을 내보냅니다.

  • 3D 프린터 검색 : 선택적 네트워크 프린터 검색 및 직접 인쇄

건축학

서버는 Python MCP SDK를 사용하여 구축되었으며 모듈식 아키텍처를 따릅니다.

지엑스피1

설치

  1. 저장소를 복제합니다.

    git clone https://github.com/jhacksman/OpenSCAD-MCP-Server.git cd OpenSCAD-MCP-Server
  2. 가상 환경 만들기:

    python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
  3. 종속성 설치:

    pip install -r requirements.txt
  4. OpenSCAD 설치:

    • 우분투/데비안: sudo apt-get install openscad

    • macOS: brew install openscad

    • Windows: openscad.org 에서 다운로드

  5. CUDA Multi-View Stereo 설치:

    git clone https://github.com/fixstars/cuda-multi-view-stereo.git cd cuda-multi-view-stereo mkdir build && cd build cmake .. make
  6. API 키 설정:

    • 루트 디렉토리에 .env 파일을 만듭니다.

    • API 키를 추가하세요:

      GEMINI_API_KEY=your-gemini-api-key VENICE_API_KEY=your-venice-api-key # Optional REMOTE_CUDA_MVS_API_KEY=your-remote-api-key # For remote processing

원격 처리 설정

이 서버는 연산 집약적인 작업, 특히 CUDA 멀티뷰 스테레오 재구성의 원격 처리를 지원합니다. 이를 통해 LAN 내의 더 강력한 머신으로 처리 부담을 덜 수 있습니다.

서버 설정(CUDA GPU가 있는 머신에서)

  1. 서버 머신에 CUDA Multi-View Stereo를 설치하세요:

    git clone https://github.com/fixstars/cuda-multi-view-stereo.git cd cuda-multi-view-stereo mkdir build && cd build cmake .. make
  2. 원격 CUDA MVS 서버를 시작합니다.

    python src/main_remote.py
  3. 서버는 Zeroconf를 사용하여 로컬 네트워크에 자동으로 자신을 광고합니다.

클라이언트 구성

  1. .env 파일에서 원격 처리를 구성하세요.

    REMOTE_CUDA_MVS_ENABLED=True REMOTE_CUDA_MVS_USE_LAN_DISCOVERY=True REMOTE_CUDA_MVS_API_KEY=your-shared-secret-key
  2. 또는 서버 URL을 직접 지정할 수 있습니다.

    REMOTE_CUDA_MVS_ENABLED=True REMOTE_CUDA_MVS_USE_LAN_DISCOVERY=False REMOTE_CUDA_MVS_SERVER_URL=http://server-ip:8765 REMOTE_CUDA_MVS_API_KEY=your-shared-secret-key

원격 처리 기능

  • 자동 서버 검색 : 로컬 네트워크에서 CUDA MVS 서버 찾기

  • 작업 관리 : 이미지 업로드, 작업 상태 추적 및 결과 다운로드

  • 장애 허용 : 자동 재시도, 회로 차단기 패턴 및 오류 추적

  • 인증 : 모든 원격 작업에 대한 보안 API 키 인증

  • 상태 모니터링 : 지속적인 서버 상태 점검 및 상태 보고

용법

  1. 서버를 시작합니다:

    python src/main.py
  2. 서버는 http://localhost:8000 에서 시작됩니다.

  3. MCP 도구를 사용하여 서버와 상호 작용합니다.

    • generate_image_gemini : Google Gemini API를 사용하여 이미지 생성

      { "prompt": "A low-poly rabbit with black background", "model": "gemini-2.0-flash-exp-image-generation" }
    • generate_multi_view_images : 동일한 3D 객체의 여러 뷰를 생성합니다.

      { "prompt": "A low-poly rabbit", "num_views": 4 }
    • create_3d_model_from_images : 승인된 다중 뷰 이미지에서 3D 모델을 만듭니다.

      { "image_ids": ["view_1", "view_2", "view_3", "view_4"], "output_name": "rabbit_model" }
    • create_3d_model_from_text : 텍스트에서 3D 모델로의 완전한 파이프라인

      { "prompt": "A low-poly rabbit", "num_views": 4 }
    • export_model : 모델을 특정 형식으로 내보냅니다.

      { "model_id": "your-model-id", "format": "obj" // or "stl", "ply", "scad", etc. }
    • discover_remote_cuda_mvs_servers : 네트워크에서 CUDA MVS 서버를 찾습니다.

      { "timeout": 5 }
    • get_remote_job_status : 원격 처리 작업의 상태를 확인합니다.

      { "server_id": "server-id", "job_id": "job-id" }
    • download_remote_model_result : 원격 서버에서 완성된 모델을 다운로드합니다.

      { "server_id": "server-id", "job_id": "job-id", "output_name": "model-name" }
    • discover_printers : 네트워크에서 3D 프린터를 검색합니다.

      {}
    • print_model : 연결된 프린터에서 모델을 인쇄합니다.

      { "model_id": "your-model-id", "printer_id": "your-printer-id" }

이미지 생성 옵션

서버는 다양한 이미지 생성 옵션을 지원합니다.

  1. Google Gemini API (기본값): 고품질 이미지 생성을 위해 Gemini 2.0 Flash 실험 모델을 사용합니다.

    • 일관된 스타일로 다중 뷰 생성을 지원합니다.

    • Google Gemini API 키가 필요합니다.

  2. Venice.ai API (선택 사항): 대체 이미지 생성 서비스

    • flux-dev 및 fluently-xl을 포함한 다양한 모델을 지원합니다.

    • Venice.ai API 키가 필요합니다

  3. 사용자 제공 이미지 : 이미지 생성을 건너뛰고 사용자 고유의 이미지를 사용하세요

    • 이미지를 서버에 직접 업로드

    • 기존 사진이나 렌더링 작업에 유용합니다.

다중 뷰 워크플로

서버는 3D 재구성을 위한 다중 뷰 워크플로를 구현합니다.

  1. 이미지 생성 : 동일한 3D 객체의 여러 뷰 생성

  2. 이미지 승인 : 생성된 각 이미지를 검토하고 승인/거부합니다.

  3. 3D 재구성 : CUDA MVS를 사용하여 승인된 이미지를 3D 모델로 변환

    • LAN 내의 로컬 또는 원격 서버에서 처리 가능

  4. 모델 개선 : OpenSCAD를 사용하여 선택적으로 모델을 개선합니다.

원격 처리 워크플로

원격 처리 워크플로를 사용하면 계산 집약적 작업을 더욱 강력한 머신으로 오프로드할 수 있습니다.

  1. 서버 검색 : 네트워크에서 CUDA MVS 서버를 자동으로 검색합니다.

  2. 이미지 업로드 : 승인된 멀티뷰 이미지를 원격 서버에 업로드합니다.

  3. 작업 처리 : CUDA MVS를 사용하여 원격 서버의 이미지를 처리합니다.

  4. 상태 추적 : 작업 상태 및 진행 상황을 모니터링합니다.

  5. 결과 다운로드 : 처리가 완료되면 완성된 3D 모델을 다운로드합니다.

지원되는 내보내기 형식

서버는 다양한 형식으로 모델을 내보내는 것을 지원합니다.

  • OBJ : Wavefront OBJ 포맷(표준 3D 모델 포맷)

  • STL : 표준 삼각형 언어(3D 프린팅용)

  • PLY : 폴리곤 파일 형식(포인트 클라우드 및 메시용)

  • SCAD : OpenSCAD 소스 코드(매개변수 모델용)

  • CSG : OpenSCAD CSG 형식(모든 매개변수 속성 유지)

  • AMF : 적층 제조 파일 형식(일부 메타데이터 보존)

  • 3MF : 3D 제조 포맷(메타데이터를 포함한 STL의 최신 대체 포맷)

웹 인터페이스

서버는 다음을 위한 웹 인터페이스를 제공합니다.

  • 다중 뷰 이미지 생성 및 승인

  • 다양한 각도에서 3D 모델 미리 보기

  • 다양한 형식의 모델 다운로드

http://localhost:8000/ui/ 에서 인터페이스에 접속하세요

특허

MIT

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

-
security - not tested
F
license - not found
-
quality - not tested

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/jhacksman/OpenSCAD-MCP-Server'

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