Vibe打印MCP服务器
Claude的综合MCP(模型上下文协议)服务器,提供 端到端3D打印自动化 兼容的FDM打印机-从自然语言要求到完美的打印对象。
免责声明 这是一个独立的社区项目。它与任何打印机制造商没有附属关系、背书或联系。所有产品名称和商标均为其各自所有者的财产。
这有什么作用
告诉克劳德你需要什么,它会:
- 生成 您描述中的3D模型
- 规模 精确到你的尺寸
- 切片 它具有优化的参数
- 打印 它在你的FDM打印机上
- 监视器 通过相机打印
- 检测 任何问题和建议修复
- 学习 从每次打印中改进下一次打印
示例工作流程
You: "I need a tube squeezer for my Gold Bond lotion bottle, it's about 65mm diameter"
Claude:
1. Parses requirements -> tube_squeezer, 65mm, heavy_duty
2. Generates parametric model with CadQuery
3. Adjusts for larger size (thicker walls, more infill)
4. Slices with slicer CLI
5. Monitors print via RTSPS camera
6. Records outcome: 88% quality, minor stringing
7. Recommends: +0.5mm retraction, -5C nozzle temp特性
阶段0:模型生成
- 自然语言解析:“我需要一个65毫米瓶子的挤压器”->结构参数
- 图像分析:使用标尺从照片中提取尺寸
- 参数生成:用于精密功能部件的CadQuery/OOpenSCAD
- 模板库:预构建的可定制设计(挤压器、支架、夹子)
- 人工智能一代:通过Meshy/Tripo3D将文本转换为3D,用于有机形状
第一阶段:模型准备
- 模型分析:加载和分析STL/3MF文件,提取尺寸
- 智能缩放:基于目标尺寸的比例(牙膏->乳液瓶)
- 参数优化:调整缩放打印的切片
第2阶段:打印执行和监控
- 打印机控制:在LAN模式下与兼容打印机的MQTT连接
- 摄像头流媒体:RTSPS提要捕获
- 缺陷检测:层移、串接、翘曲、意大利面条检测
阶段3:迭代改进
- 打印历史记录:所有尝试的SQLite数据库
- 推荐引擎:从缺陷中学习,提出修复建议
- 质量评分:根据检测到的问题,0-100分
新手友好功能
- 交互式向导:为初学者提供带检查点的指导性工作流程
- 简单语言支持:“重型”->厚墙,高填充
- 设计评审:在打印之前发现问题(薄壁、间隙狭窄)
- 切片回顾:根据用例推荐设置(功能性与装饰性)
- 材料优化:根据您的特定灯丝自动调整
支持的材料
预配置配置文件用于:
- 基础PLA -通用型220C喷嘴,速度可达300mm/s
- PETG 半透明 -功能部件,250C喷嘴
- PC 混合 -高强度270C喷嘴(在开放式打印机上保持零件小)
- 通用PETG -室外/防水,245C喷嘴
- 通用TPU 95A -柔性230C喷嘴,最大40mm/s, 仅限直接馈电
支持的喷嘴
常见的FDM喷嘴配置:
- 0.2mm不锈钢 -精细的细节,微缩模型
- 0.4mm不锈钢 -默认,最好的全能
- 0.4mm硬化钢 -适用于碳纤维/发光丝
- 0.6mm硬化钢 -更快的打印速度,功能部件
- 0.8mm硬化钢 -草稿打印,大零件
需求
- 安装了兼容切片器的macOS
- 支持局域网模式和MQTT的FDM打印机
- Python 3.10+
- 打印机访问代码(来自打印机设置)
安装
cd vibe-print
# Basic installation
pip install -e . --break-system-packages
# With CAD generation (recommended)
pip install -e ".[cad]" --break-system-packages
# With everything
pip install -e ".[all]" --break-system-packages配置
此项目使用 1Password命令行界面 用于安全的秘密管理。切勿将API密钥或凭据存储在纯文本文件中。
设置1Password命令行界面
- 安装1Password命令行界面:
brew install --cask 1password-cli- 登录并启用shell集成:
op signin- 将您的秘密存储在1Password中。使用以下字段创建项目:
- 打印机配置: ip_address, access_code, serial_number - 网状 (可选): api_key - Tripo3D (可选): api_key
使用1Password CLI运行
使用 op run 将secrets作为环境变量注入:
op run --env-file=.env.template -- python -m vibe_print创建 .env.template 文件(可安全提交-仅包含引用,不包含机密):
# Printer connection (required)
VIBE_PRINTER_IP=op://Personal/Printer Config/ip_address
VIBE_ACCESS_CODE=op://Personal/Printer Config/access_code
VIBE_SERIAL=op://Personal/Printer Config/serial_number
# Slicer path (usually auto-detected)
VIBE_SLICER_PATH=/Applications/YourSlicer.app/Contents/MacOS/slicer
# Optional: AI 3D generation
MESHY_API_KEY=op://Personal/Meshy/api_key
TRIPO3D_API_KEY=op://Personal/Tripo3D/api_keyClaude桌面配置
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"vibe-print": {
"command": "op",
"args": [
"run",
"--env-file=/path/to/vibe-print/.env.template",
"--",
"python",
"-m",
"vibe_print"
]
}
}
}这确保了秘密永远不会以纯文本形式存储,并在运行时安全地注入。
可用工具(共33个)
新手友好的向导工具
| 工具 | 说明 |
|---|---|
vibe_start_guided_workflow | 从这里开始! 带有检查点的交互式工作流程 |
vibe_parse_novice_description | 翻译“重型”->技术参数 |
vibe_review_design | 在生成之前获取设计建议 |
vibe_review_slicing | 获取材料/用例的质量设置 |
vibe_optimize_for_material | 自动优化灯丝参数 |
vibe_list_materials | 列出支持的长丝及其特性 |
vibe_list_nozzles | 列出喷嘴并给出建议 |
vibe_get_nozzle_recommendation | 根据您的需求获得最佳喷嘴 |
模型生成
| 工具 | 说明 |
|---|---|
vibe_parse_requirements | 解析自然语言->结构化参数 |
vibe_analyze_reference_image | 从照片中提取尺寸 |
vibe_list_templates | 列出可用的模型模板 |
vibe_generate_from_template | 从可自定义模板生成 |
vibe_generate_parametric | 根据描述生成(CadQuery) |
vibe_ai_generate | AI文本到3D(网格/三重3D) |
vibe_ai_status | 检查AI生成进度 |
模型准备
| 工具 | 说明 |
|---|---|
vibe_analyze_model | 分析STL/3MF尺寸和质量 |
vibe_scale_model | 按目标尺寸缩放模型 |
vibe_slice_model | 使用slicer CLI进行切片 |
vibe_list_presets | 列出切片预设 |
打印机控制
| 工具 | 说明 |
|---|---|
vibe_test_printer_connection | 测试MQTT连接 |
vibe_get_printer_status | 获取温度、进度 |
vibe_control_print | 暂停/恢复/停止打印 |
相机和质量
| 工具 | 说明 |
|---|---|
vibe_capture_camera | 捕获相机帧 |
vibe_analyze_print_quality | 检测车架缺陷 |
迭代跟踪
| 工具 | 说明 |
|---|---|
vibe_create_iteration | 开始跟踪打印 |
vibe_record_outcome | 记录结果+缺陷 |
vibe_get_recommendations | 获取参数修复 |
vibe_get_model_history | 查看打印历史记录 |
建筑
vibe_print/
├── server.py # MCP server with all 33 tools
├── config.py # Environment configuration
├── materials/ # Filament & nozzle profiles
│ ├── filaments.py # Pre-configured filament profiles
│ └── nozzles.py # Nozzle configurations
├── wizard/ # Novice-friendly workflow
│ ├── guided_workflow.py # Interactive checkpoints
│ ├── design_review.py # Design suggestions
│ ├── slicing_review.py # Quality recommendations
│ ├── novice_parser.py # Plain language -> parameters
│ └── material_optimizer.py # Material-based adjustments
├── generator/ # Model generation
│ ├── requirements.py # Natural language parsing
│ ├── image_analyzer.py # Photo dimension extraction
│ ├── parametric.py # CadQuery/OpenSCAD generation
│ ├── templates.py # Template library
│ └── ai_generator.py # Meshy/Tripo3D integration
├── models/
│ ├── analyzer.py # STL/3MF analysis
│ └── scaler.py # Dimension scaling
├── slicer/
│ ├── cli.py # Slicer CLI
│ ├── parameters.py # Slicing parameters
│ └── profiles.py # Preset management
├── printer/
│ ├── mqtt_client.py # MQTT communication
│ ├── controller.py # Job control
│ └── status.py # Status parsing
├── camera/
│ ├── stream.py # RTSPS capture
│ └── detector.py # Defect detection
└── iteration/
├── tracker.py # SQLite history
└── recommender.py # Parameter recommendations新手友好使用
对于CAD初学者,请使用指导工作流程:
# Start with your plain language description
workflow = await vibe_start_guided_workflow({
"description": "I need a heavy duty squeezer for my 65mm lotion bottle"
})
# The system parses your description:
# - "heavy duty" -> wall_thickness: 3mm, infill: 30%
# - "65mm" -> tube_diameter: 65mm
# - "squeezer" -> category: tube_squeezer
# Then guides you through checkpoints:
# 1. Requirements confirmation
# 2. Design review (catches thin walls, tight tolerances)
# 3. Material selection (suggests TPU if flexible needed)
# 4. Nozzle selection (recommends 0.4mm for standard parts)
# 5. Quality settings (functional vs decorative)
# 6. Final review before generation简明语言示例
系统理解:
- “重型”->厚墙(3mm),高填充(30%)
- “紧贴”->间隙:0.2-0.3mm
- “松配合”->间隙:0.8-1.0mm
- “柔性”->建议使用TPU材料
- “防水”->建议PETG
- “耐热”->建议使用PC或PETG
例子
看 examples/ 目录:
complete_workflow.py-完整的端到端示例tube_squeezer_workflow.py-缩放示例generation_tools_reference.md-生成工具文档mcp_tools_reference.md-所有工具参考
许可证
麻省理工学院
