Thingiverse MCP Server

by gpaul-mcp
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides tools for searching, exploring, and retrieving 3D printable models from Thingiverse, including category browsing, random model discovery, and detailed model information retrieval.

Thingiverse MCP 서버

Thingiverse API와 상호 작용할 수 있는 도구를 제공하는 MCP(Model Context Protocol) 서버로, AI 어시스턴트가 3D 인쇄 가능한 모델을 검색, 탐색 및 검색할 수 있도록 합니다.

🌟 개요

이 MCP 서버는 Puppeteer를 사용하여 Thingiverse API를 래핑하여 AI 비서가 사용할 수 있는 안정적인 인터페이스를 구축합니다. 다음과 같은 도구를 제공합니다.

  • 3D 인쇄 가능한 모델 검색
  • 무작위 3D 모델을 얻으세요
  • 카테고리 탐색
  • 특정 카테고리에서 모델 가져오기

🚀 특징

  • 🔍 모델 검색 : 키워드를 사용하여 Thingiverse의 3D 인쇄 가능 모델 데이터베이스를 검색하세요.
  • 🗂️ 카테고리 탐색 : 카테고리별로 모델 탐색
  • 🎲 랜덤 모델 : Thingiverse에서 랜덤 3D 모델을 찾아보세요
  • 🌐 API 액세스 완료 : 설명, 파일, 이미지 등을 포함한 모델에 대한 자세한 정보를 얻으세요
  • 🤖 AI 어시스턴트 통합 : 모델 컨텍스트 프로토콜을 통해 AI 어시스턴트와 함께 작동하도록 설계되었습니다.

📋 필수 조건

  • Node.js(v14 이상)
  • npm 또는 yarn
  • Thingiverse API 토큰

🔧 설치

  1. 저장소를 복제합니다지엑스피1
  2. 종속성 설치
    npm install
  3. 환경 변수 설정
    # Create development environment file cp .env.example .env.development # Create production environment file cp .env.example .env.production
  4. API 토큰 구성
    • Thingiverse 개발자 포털 에서 Thingiverse 앱 토큰을 받으세요
    • .env.development.env.production 파일 두 개에 토큰을 추가합니다.
      APP_TOKEN=your_api_token_here

🎮 사용법

개발 모드

npm run dev

이렇게 하면 MCP 서버가 핫 리로드를 사용하여 개발 모드로 시작됩니다.

생산 모드

npm run build npm start

또는 다음과 같은 약어를 사용하세요.

npm run prod

🔗 Claude Desktop과 통합

Claude Desktop에 이 MCP 서버를 추가하고 Thingiverse 검색 기능을 활성화하려면:

  1. MCP 서버 시작 서버가 로컬에서 실행 중인지, 아니면 Claude Desktop이 액세스할 수 있는 원격 호스트에서 실행 중인지 확인하세요.
  2. Claude Desktop 설정 열기
    • Claude Desktop 실행
    • 오른쪽 상단의 프로필 사진이나 아이콘을 클릭하세요
    • 드롭다운 메뉴에서 "설정"을 선택하세요
  3. 확장 프로그램 설정으로 이동
    • 설정 사이드바에서 "확장 프로그램"을 클릭하세요.
    • "사용자 정의 MCP 추가"를 선택하세요

4.1 MCP 연결 구성

  • 이름: Thingiverse MCP (또는 원하는 이름)
  • URL: MCP 서버가 실행되는 URL을 입력하세요(예: 로컬 개발의 경우 http://localhost:3000 )
  • "MCP 추가"를 클릭하세요

4.2 대안 MCP 연결 구성

  • 먼저 프로젝트를 빌드하고 전체 경로 C:/.../Thingiverse/dist/index.js를 제공해야 합니다.
"thingiverse": { "command": "node", "args": [ "YOUR_CUSTOM_PATH/Thingiverse/dist/index.js" ] }
  1. MCP 활성화
    • 새로 추가한 Thingiverse MCP 옆에 있는 스위치를 토글하여 활성화합니다.
    • Claude Desktop은 MCP 서버에 연결을 시도합니다.
  2. 연결 확인
    • Claude와 새로운 대화를 시작하세요
    • "Thingiverse에서 3D 모델을 찾는 데 도움을 주실 수 있나요?"라고 입력하세요.
    • 이제 Claude는 Thingiverse 도구를 사용하여 모델을 검색하고 탐색할 수 있어야 합니다.
  3. 문제 해결
    • Claude가 MCP 서버에 연결할 수 없는 경우 다음을 확인하세요.
      • 서버가 실행 중이며 Claude Desktop에서 액세스할 수 있습니다.
      • 올바른 URL은 Claude Desktop 설정에서 구성되었습니다.
      • 귀하의 API 토큰은 유효하며 서버에서 적절하게 구성되었습니다.

Claude를 사용한 사용 예

연결되면 Claude에게 다음 작업을 요청할 수 있습니다.

  • "Thingiverse에서 3D 프린터로 인쇄할 수 있는 스마트폰 스탠드를 찾아주세요"
  • "가젯 카테고리에서 인기 있는 3D 모델을 보여주세요"
  • "Thingiverse에서 무작위 3D 모델을 가져와"
  • "Thingiverse에서 어떤 종류의 3D 모델을 사용할 수 있나요?"

🧠 사용 가능한 도구

서버는 AI 도우미가 사용할 수 있는 여러 도구를 제공합니다.

get-things

검색어를 기반으로 3D 모델을 검색합니다.

매개변수:

  • term : 검색어 (필수)
  • categoryId : 검색 범위를 좁히기 위한 선택 카테고리 ID

get-random-thing

Thingiverse에서 무작위 3D 모델을 검색합니다.

get-categories

Thingiverse에서 사용 가능한 모든 카테고리를 가져옵니다.

get-random-thing-from-category

특정 카테고리에서 무작위로 3D 모델을 가져옵니다.

매개변수:

  • categorySlug : 카테고리 슬러그(필수)

🔍 작동 원리

서버는 Thingiverse API와 상호 작용하기 위해 Stealth 플러그인이 포함된 Puppeteer를 사용합니다. 이 접근 방식은 다음과 같습니다.

  1. API 토큰을 통한 인증을 처리합니다.
  2. 다양한 Thingiverse 엔드포인트에 요청을 보냅니다.
  3. 구조화된 형식으로 데이터를 구문 분석하고 반환합니다.
  4. AI 어시스턴트가 호출할 수 있는 MCP 도구로 엔드포인트를 노출합니다.

🛠️ 프로젝트 구조

src/ ├── class/ │ └── thingiverser.class.ts # Main Puppeteer client for Thingiverse API ├── endpoints/ │ ├── getCategories.ts # Get all categories │ ├── getRandomThing.ts # Get random things │ ├── getThings.ts # Search for things │ └── getThingsFromCategory.ts # Get things from a category ├── types/ │ ├── category.d.ts # Type definitions for categories │ ├── files.d.ts # Type definitions for files │ └── things.d.ts # Type definitions for things └── index.ts # Entry point and MCP server setup

⚙️ 개발

환경 구성

서버는 개발 및 프로덕션에 서로 다른 환경 파일을 사용합니다.

  • .env.development - 개발 모드에서 실행할 때 사용됩니다.
  • .env.production - 프로덕션 모드에서 실행할 때 사용됩니다.

테스트

다음을 사용하여 테스트 모음을 실행합니다.

npm test

린팅 및 포맷팅

# Run ESLint npm run lint # Fix ESLint errors npm run lint:fix # Format code with Prettier npm run format

📝 배포를 위한 참고 사항

프로덕션에 배포할 때:

  1. .env.production 파일에 유효한 Thingiverse API 토큰이 포함되어 있는지 확인하세요.
  2. 빌드 프로세스는 이 토큰을 컴파일된 코드에 내장합니다.
  3. npm run prod 사용하여 프로덕션 서버를 빌드하고 시작합니다.

📄 라이센스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

ID: ue5qo52lhm