3D打印工作流服务器

一个兼容MCP协议的服务器,提供3D模型切片和打印机管理功能,支持AI代理和其他MCP客户端通过编程方式与3D打印工作流交互。

  • by VisualBoy
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 visualboy/ai-slicer-mcp-server

使用说明

OctoPrint/PrusaSlicer MCP服务器

该项目是一个符合模型上下文协议(MCP)的服务器,它公开了3D模型切片功能(通过PrusaSlicer CLI)和3D打印机管理功能(通过OctopPrint API)。它允许AI代理和其他MCP客户端以编程方式与您的3D打印工作流程进行交互。

功能(MCP工具)

服务器提供以下工具,MCP客户端可以调用这些工具:

  • list_models:列出模型文件夹中所有可用的三维模型文件(.stl、.obj、.3mf)。
  • list_gcode_files:列出G-code文件夹中生成的所有.gcode文件。
  • get_slicer_profiles:从OctoPrint检索并列出可用的切片器配置文件名称。
  • run_slicer:通过PrusaSlicer CLI使用指定的配置文件对3D模型进行切片,保存输出的G代码。
  • upload_file_to_octoprint:将指定的模型或G代码文件上传到OctoPrint,可以选择并开始打印。
  • print_gcode_file:选择已在OctoPrint上的G代码文件并启动打印过程。
  • analyze_model_printability:(占位符)分析3D模型是否存在潜在的可打印性问题,如悬垂或薄壁。
  • optimize_model_orientation:(占位符)根据指定目标(例如,最小化支撑)为3D模型建议最佳方向。
  • select_slicing_profile:(占位符)为给定的模型和打印目标建议最佳的切片轮廓。
  • diagnose_print_issue:(占位符)根据描述为常见的3D打印问题提供故障排除建议。

先决条件

  1. Python 3.9+ 安装。
  2. uv:一个非常快的Python包安装程序和虚拟环境管理器。如果你没有它,请通过pip安装:
    pip install uv
    
  3. 普鲁萨切片机:您的系统上必须安装PrusaSlicer。配置中需要其可执行文件的路径。
  4. OctoPrint:OctopPrint的实例正在您的网络上运行并可访问。您需要它的URL和API密钥。

设置和配置

  1. 克隆存储库:

    git clone https://github.com/VisualBoy/AI-Slicer.git
    cd AI-Slicer
    
  2. 创建和激活虚拟环境: 使用 uv 以创建隔离的虚拟环境。

    uv venv
    

    这创建了一个 .venv 文件夹和 uv 将自动使用此环境执行后续命令。如果你需要为你的shell手动激活它:

    source .venv/bin/activate  # On macOS/Linux
    .venv\Scripts\activate    # On Windows
    
  3. 安装依赖关系: 项目依赖关系(如 python-dotenv 用于管理环境变量和 requests 用于API通信)定义于 pyproject.toml。使用安装它们 uv:

    uv pip install -e .
    

    (The -e flag以可编辑模式安装项目。)

  4. 配置环境变量: 复制示例环境文件 .env.example 到名为的新文件 .env.

    cp .env.example .env
    

    打开 .env 使用文本编辑器创建文件,并为您的设置提供正确的值:

    • PRUSA_SLICER_PATH:PrusaSlicer控制台可执行文件的完整路径(例如。, /Applications/PrusaSlicer.app/Contents/MacOS/PrusaSlicer --console 在macOS或 C:\Program Files\Prusa3D\PrusaSlicer\prusa-slicer-console.exe 在Windows上)。
    • MODELS_FOLDER_PATH:3D模型文件所在文件夹的完整路径(例如。, .stl, .obj)被存储。
    • GCODE_FOLDER_PATH:生成文件夹的完整路径 .gcode 应该保存文件。
    • OCTOPRINT_URL:OctoPrint实例的基本URL(例如。, http://octopi.local 或 http://192.168.1.100).
    • OCTOPRINT_API_KEY:您的OctopPrint API密钥,可在OctopPrint的设置中找到。

运行服务器

要启动MCP服务器,请从项目的根目录运行以下命令:

uv run python src/main.py

服务器将启动并监听其标准输入(stdin)上的JSON-RPC 2.0消息,并向标准输出(stdout)发送响应。

MCP合规性

该服务器设计为与模型上下文协议(MCP)兼容。MCP是一种规范,允许AI模型和其他软件客户端以标准化的方式与各种工具和服务器(如本例)进行交互。这使得该服务器的3D打印功能能够无缝集成到更大的人工智能驱动的工作流程中。

MCP客户端可以使用 mcp.json 文件。这是 mcp.json 此服务器的配置:

{
  "$schema": "https://modelcontextprotocol.io/schemas/mcp-server.schema.json",
  "name": "OctoPrint-MCP-Bridge",
  "description": "MCP server providing tools to interact with OctoPrint and PrusaSlicer for 3D printing workflows.",
  "homepage": "https://github.com/VisualBoy/AI-Slicer",
  "server": {
    "run": [
      "python",
      "src/main.py"
    ],
    "protocols": ["json-rpc-2.0"]
  }
}

(注:虽然 uv run python src/main.py 建议在本地执行,以确保正确的环境 mcp.json 指定 python src/main.py 为了与MCP客户端实现更广泛的兼容性 uv-意识到并假设一个标准的Python执行。)

如何使用MCP客户端

MCP客户端通常被配置为通过“stdio”(标准输入/输出)传输机制使用此服务器。客户将使用 server.run 在中指定的命令 mcp.json (或通往 mcp.json 文件本身)启动并与此服务器通信。

有关如何使用stdio连接到MCP服务器的详细信息,请参阅特定MCP客户端的文档。然后,客户端将能够调用“功能”部分中列出的方法(例如。, mcp/getTools, mcp/runTool, mcp/setRoots).