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.

Servidor MCP de Thingiverse

Un servidor de Protocolo de contexto de modelo (MCP) que proporciona herramientas para interactuar con la API de Thingiverse, lo que permite a los asistentes de IA buscar, explorar y recuperar modelos imprimibles en 3D.

🌟 Descripción general

Este servidor MCP encapsula la API de Thingiverse mediante Puppeteer para crear una interfaz fiable que puedan usar los asistentes de IA. Proporciona herramientas para:

  • Búsqueda de modelos imprimibles en 3D
  • Obtenga modelos 3D aleatorios
  • Explorar categorías
  • Obtenga modelos de categorías específicas

🚀 Características

  • 🔍 Búsqueda de modelos : busca en la base de datos de Thingiverse de modelos imprimibles en 3D usando palabras clave
  • 🗂️ Exploración de categorías : explora modelos por categorías
  • 🎲 Modelos aleatorios : descubre modelos 3D aleatorios de Thingiverse
  • 🌐 Acceso completo a la API : obtenga información detallada sobre los modelos, incluidas descripciones, archivos, imágenes y más
  • 🤖 Integración del asistente de IA : diseñado para trabajar con asistentes de IA a través del Protocolo de contexto del modelo

📋 Requisitos previos

  • Node.js (v14 o superior)
  • npm o hilo
  • Token de API de Thingiverse

🔧Instalación

  1. Clonar el repositorio
    git clone <repository-url> cd thingiverse-mcp
  2. Instalar dependencias
    npm install
  3. Configurar variables de entorno
    # Create development environment file cp .env.example .env.development # Create production environment file cp .env.example .env.production
  4. Configurar el token de API

🎮 Uso

Modo de desarrollo

npm run dev

Esto inicia el servidor MCP en modo de desarrollo con recarga en caliente.

Modo de producción

npm run build npm start

O utilice la abreviatura:

npm run prod

🔗 Integración con Claude Desktop

Para agregar este servidor MCP a Claude Desktop y habilitar las capacidades de navegación de Thingiverse:

  1. Inicie el servidor MCP Asegúrese de que su servidor esté ejecutándose localmente o en un host remoto al que Claude Desktop pueda acceder.
  2. Abra la configuración de Claude Desktop
    • Iniciar Claude Desktop
    • Haz clic en tu foto de perfil o en el icono en la parte superior derecha.
    • Seleccione "Configuración" en el menú desplegable.
  3. Vaya a la configuración de extensiones
    • En la barra lateral de Configuración, haga clic en "Extensiones".
    • Seleccione "Agregar MCP personalizado"

4.1 Configurar la conexión MCP

  • Nombre: Thingiverse MCP (o cualquier nombre que prefieras)
  • URL: Ingrese la URL donde se ejecuta su servidor MCP (por ejemplo, http://localhost:3000 para desarrollo local)
  • Haga clic en "Agregar MCP"

4.2 Alternativa Configurar la conexión MCP

  • Primero debe compilar el proyecto y proporcionar su ruta completa C:/.../Thingiverse/dist/index.js
"thingiverse": { "command": "node", "args": [ "YOUR_CUSTOM_PATH/Thingiverse/dist/index.js" ] }
  1. Habilitar el MCP
    • Mueva el interruptor junto a su MCP de Thingiverse recién agregado para habilitarlo
    • Claude Desktop intentará conectarse a su servidor MCP
  2. Verificar la conexión
    • Inicia una nueva conversación con Claude
    • Escribe "¿Puedes ayudarme a encontrar algunos modelos 3D en Thingiverse?"
    • Claude ahora debería poder usar las herramientas de Thingiverse para buscar y explorar modelos
  3. Solución de problemas
    • Si Claude no puede conectarse a su servidor MCP, verifique que:
      • El servidor está en ejecución y es accesible desde Claude Desktop
      • La URL correcta está configurada en la configuración de Claude Desktop
      • Su token API es válido y está configurado correctamente en el servidor

Ejemplos de uso con Claude

Una vez conectado, puedes pedirle a Claude que:

  • "Encuéntrame soportes para smartphones imprimibles en 3D en Thingiverse"
  • "Muéstrame algunos modelos 3D populares en la categoría de gadgets"
  • "Consígueme un modelo 3D al azar de Thingiverse"
  • "¿Qué categorías de modelos 3D están disponibles en Thingiverse?"

🧠 Herramientas disponibles

El servidor expone varias herramientas que pueden ser utilizadas por los asistentes de IA:

get-things

Busca modelos 3D según un término de búsqueda.

Parámetros:

  • term : término de búsqueda (obligatorio)
  • categoryId : ID de categoría opcional para limitar la búsqueda

get-random-thing

Recupera modelos 3D aleatorios de Thingiverse.

get-categories

Obtiene todas las categorías disponibles de Thingiverse.

get-random-thing-from-category

Obtiene modelos 3D aleatorios de una categoría específica.

Parámetros:

  • categorySlug : Slug de categoría (obligatorio)

🔍 Cómo funciona

El servidor utiliza Puppeteer con el complemento Stealth para interactuar con la API de Thingiverse. Este enfoque:

  1. Maneja la autenticación a través de tokens API
  2. Realiza solicitudes a varios puntos finales de Thingiverse
  3. Analiza y devuelve los datos en un formato estructurado.
  4. Expone puntos finales como herramientas MCP que pueden ser llamadas por asistentes de IA

🛠️ Estructura del proyecto

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

⚙️ Desarrollo

Configuración del entorno

El servidor utiliza diferentes archivos de entorno para el desarrollo y la producción:

  • .env.development : se utiliza cuando se ejecuta en modo de desarrollo
  • .env.production : se utiliza cuando se ejecuta en modo de producción

Pruebas

Ejecute el conjunto de pruebas con:

npm test

Pelusa y formato

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

📝 Notas para la implementación

Al implementar en producción:

  1. Asegúrese de que su archivo .env.production contenga un token de API de Thingiverse válido
  2. El proceso de compilación integrará este token en el código compilado
  3. Utilice npm run prod para compilar e iniciar el servidor de producción

📄 Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

ID: ue5qo52lhm