3D模型搜索服务

一个基于Thingiverse API的模型上下文协议(MCP)服务器,提供搜索、浏览和检索3D可打印模型的工具,适用于AI助手集成。

  • by gpaul-mcp
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 gpaul-mcp/MCP_thingiverse

使用说明

Thingiverse MCP服务器

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

🌟 概述

该MCP服务器使用Puppeteer包装Thingiverse API,以创建可供人工智能助手使用的可靠接口。它提供了以下工具:

  • 搜索可3D打印的模型
  • 获取随机3D模型
  • 浏览类别
  • 从特定类别中获取模型

🚀 特性

  • 🔍 模型搜索:使用关键字搜索Thingiverse的3D打印模型数据库
  • 🗂️ 类别浏览:按类别浏览模型
  • 🎲 随机模型:从Thingiverse发现随机3D模型
  • 🌐 完成API访问:获取有关模型的详细信息,包括描述、文件、图像等
  • 🤖 AI助手集成:旨在通过模型上下文协议与人工智能助手协同工作

📋 先决条件

  • Node.js(v14或更高版本)
  • npm或纱线
  • Thingverse 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. 打开克劳德桌面设置

    • 启动克劳德桌面
    • 点击右上角的个人资料图片或图标
    • 从下拉菜单中选择“设置”
  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模型吗?”
    • 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

从特定类别中获取随机三维模型。

参数:

  • categorySlug:类别slug(必填)

🔍 运作原理

服务器使用Puppeter with Stealth插件与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许可证获得许可-请参阅 许可证 文件以获取详细信息。