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 服务器

模型上下文协议 (MCP) 服务器提供与 Thingiverse API 交互的工具,允许 AI 助手搜索、探索和检索 3D 可打印模型。

🌟 概述

此 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 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 访问
      • 在 Claude Desktop 设置中配置了正确的 URL
      • 您的 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 :类别 slug(必需)

🔍 工作原理

服务器使用带有 Stealth 插件的 Puppeteer 与 Thingiverse API 进行交互。此方法:

  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文件。

ID: ue5qo52lhm