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打印问题提供故障排除建议。
先决条件
- Python 3.9+ 安装。
uv:一个非常快的Python包安装程序和虚拟环境管理器。如果你没有它,请通过pip安装:
pip install uv- 普鲁萨切片机:您的系统上必须安装PrusaSlicer。配置中需要其可执行文件的路径。
- OctoPrint:OctopPrint的实例正在您的网络上运行并可访问。您需要它的URL和API密钥。
设置和配置
- 克隆存储库:
git clone https://github.com/VisualBoy/AI-Slicer.git
cd AI-Slicer- 创建和激活虚拟环境:
使用 uv 以创建隔离的虚拟环境。
uv venv这创建了一个 .venv 文件夹和 uv 将自动使用此环境执行后续命令。如果你需要为你的shell手动激活它:
source .venv/bin/activate # On macOS/Linux
.venv\Scripts\activate # On Windows- 安装依赖关系:
项目依赖关系(如 python-dotenv 用于管理环境变量和 requests 用于API通信)定义于 pyproject.toml。使用安装它们 uv:
uv pip install -e .(The -e flag以可编辑模式安装项目。)
- 配置环境变量:
复制示例环境文件 .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).
