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 と対話するためのツールを提供し、AI アシスタントが 3D 印刷可能なモデルを検索、探索、取得できるようにするモデル コンテキスト プロトコル (MCP) サーバー。

🌟 概要

このMCPサーバーは、Puppeteerを使用してThingiverse APIをラップし、AIアシスタントが使用できる信頼性の高いインターフェースを作成します。以下のツールを提供します。

  • 3Dプリント可能なモデルを検索
  • ランダムな3Dモデルを取得する
  • カテゴリを閲覧する
  • 特定のカテゴリからモデルを取得する

🚀 機能

  • 🔍 モデル検索: キーワードを使ってThingiverseの3Dプリント可能なモデルデータベースを検索します
  • 🗂️ カテゴリーブラウジング:カテゴリー別にモデルを探す
  • 🎲 ランダムモデル: Thingiverse からランダムな 3D モデルを発見
  • 🌐 完全な API アクセス: モデルの説明、ファイル、画像など、詳細な情報を取得できます
  • 🤖 AIアシスタント統合:モデルコンテキストプロトコルを介してAIアシスタントと連携するように設計されています

📋 前提条件

  • Node.js (v14以上)
  • npmまたはyarn
  • Thingiverse APIトークン

🔧 インストール

  1. リポジトリをクローンする
    git clone <repository-url> cd thingiverse-mcp
  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 との統合

この MCP サーバーを Claude Desktop に追加し、Thingiverse ブラウジング機能を有効にするには、次の手順を実行します。

  1. **MCP サーバーを起動します。**サーバーがローカルで実行されているか、Claude Desktop がアクセスできるリモート ホスト上で実行されていることを確認します。
  2. Claudeデスクトップの設定を開く
    • Claudeデスクトップを起動
    • 右上のプロフィール写真またはアイコンをクリックします
    • ドロップダウンメニューから「設定」を選択します
  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. 接続を確認する
    • クロードと新しい会話を始める
    • 「Thingiverse で 3D モデルを探すのを手伝ってもらえますか?」と入力します。
    • クロードはThingiverseツールを使ってモデルを検索したり閲覧したりできるようになりました。
  3. トラブルシューティング
    • Claude が MCP サーバーに接続できない場合は、次の点を確認してください。
      • サーバーは実行されており、Claude Desktopからアクセスできます。
      • 正しいURLはClaudeデスクトップ設定で設定されています
      • APIトークンは有効であり、サーバーで適切に設定されています

クロードの使用例

接続したら、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とのやり取りにPuppeteerとStealthプラグインを使用します。このアプローチでは、

  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 ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

AI アシスタントが Thingiverse から 3D プリント可能なモデルを検索、探索、取得できるようにするモデル コンテキスト プロトコル サーバー。

  1. 🌟 Overview
    1. 🚀 Features
      1. 📋 Prerequisites
        1. 🔧 Installation
          1. 🎮 Usage
            1. Development Mode
            2. Production Mode
          2. 🔗 Integrating with Claude Desktop
            1. Usage Examples with Claude
          3. 🧠 Available Tools
            1. get-things
            2. get-random-thing
            3. get-categories
            4. get-random-thing-from-category
          4. 🔍 How It Works
            1. 🛠️ Project Structure
              1. ⚙️ Development
                1. Environment Configuration
                2. Testing
                3. Linting and Formatting
              2. 📝 Notes for Deployment
                1. 📄 License
                  ID: ue5qo52lhm