PrusaMCP
Allows for the direct upload of G-code files to an OctoPrint instance for remote 3D print management and workflow automation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PrusaMCP Analyze my model and suggest a profile for high strength PETG."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PrusaMCP
Intelligent MCP Server for PrusaSlicer — 17 tools to analyze, configure and launch your 3D prints from Claude or any MCP client.
PrusaMCP is not a simple CLI wrapper. It's a 3D printing assistant that analyzes your mesh, recommends optimal settings with justification, diagnoses defects, and can drive PrusaSlicer automatically.
Built with Claude Code.
Features
Native mesh analysis — Binary/ASCII STL and 3MF parser, zero external dependencies for parsing
Recommendation engine — Bible FDM + official Prusa knowledge base, justification for every setting
MVS-based speed capping — Automatic speed calculation based on material Max Volumetric Speed
17 MCP tools covering the full print workflow
Post-print diagnostics — Bible FDM diagnostic tree for 9 common defects
Filament database — 30+ filaments with temperatures, MVS, recommended surface
Related MCP server: Klipper MCP Server
Tools
Analysis & Recommendation (no PrusaSlicer needed)
Tool | Description |
| Geometric analysis of STL/3MF (dimensions, volume, overhangs, manifold) |
| Issue detection: thin walls, bridges, overhangs, stability |
| Test 6 orientations with scoring (overhangs, height, adhesion) |
| Full profile recommendation with per-setting justification |
| Generate PrusaSlicer-compatible .ini file |
| Cost estimate (filament + electricity) and print time |
| Search filament database (30+ entries) |
| All-in-one: analysis + printability + orientation + profile + questions |
| Post-print diagnosis (warping, stringing, under-extrusion...) |
PrusaSlicer Integration
Tool | Description |
| Run slicing via CLI with G-code stats |
| Get the model currently open in PrusaSlicer |
| Capture PrusaSlicer window (even in background) |
| G-code post-processing (pause, filament change, etc.) |
| Upload to OctoPrint / Prusa Connect |
Feedback & Community
Tool | Description |
| Submit print feedback after printing |
| Feedback statistics by material/goal |
| Anonymized community data export |
Installation
git clone https://github.com/Noosbai/PrusaMCP.git
cd PrusaMCP
npm install
npm run buildConfiguration
Claude Desktop / Claude Code
Add to your MCP configuration:
{
"mcpServers": {
"prusa-mcp": {
"command": "node",
"args": ["/path/to/PrusaMCP/build/index.js"],
"env": {
"PRUSASLICER_PATH": "C:/Program Files/Prusa3D/PrusaSlicer/prusa-slicer-console.exe"
}
}
}
}Environment Variables
Variable | Description | Default |
| Path to | Auto-detected |
| PrusaSlicer profiles folder |
|
| Your OctoPrint instance URL | — |
| OctoPrint API key | — |
Usage
Typical Workflow
Analyze a model:
analyze_meshto get dimensions, overhangs, etc.Check printability:
check_printabilityto detect potential issuesGet a recommendation:
recommend_profilewith your goal (draft, standard, quality, strong, speed)Generate config:
generate_prusaslicer_configfor a ready-to-use .iniSlice:
slice_prusaslicerto generate G-code
Or in one command
print_wizard does everything at once: analysis + printability + orientation + profile + cost estimate + follow-up questions to refine.
Available Goals
Goal | Description |
| Fast, quality secondary |
| Good quality/time balance |
| Smooth surface, fine details |
| Maximum mechanical strength |
| Spiral vase mode |
| Everything maxed out |
Supported Materials
PLA, PETG, ABS, ASA, TPU, Nylon, PC — with official Prusa temperatures, Bible FDM MVS values, drying/enclosure warnings.
Knowledge Base
The recommendation engine is built on:
Bible de l'impression 3D FDM — Comprehensive FDM settings guide for PrusaSlicer
Official Prusa documentation — Temperatures, MVS, reference profiles
9-step calibration workflow (mechanical → PID → Z → EM → MVS → retraction → cooling → PA → accel)
Diagnostic tree for 9 common defects with causes and fixes
MVS (Max Volumetric Speed) — The Central Parameter
Material | MVS (mm³/s) |
PLA | ~15 |
ABS/ASA | ~11 |
PETG | ~8 |
Nylon/PC | ~8 |
PVA/BVOH | ~4 |
TPU | ~1-2.5 |
Architecture
src/
├── index.ts # MCP entry point + STDIO transport
├── types.ts # TypeScript interfaces
├── config.ts # PrusaSlicer detection
├── stl-parser.ts # Native binary/ASCII STL parser
├── threemf-parser.ts # 3MF parser (ZIP + XML)
├── mesh-analyzer.ts # Geometric analysis
├── profile-engine.ts # Recommendation engine (Bible FDM)
├── ini-writer.ts # PrusaSlicer .ini generation
├── print-issues.ts # Issue detection + Bible FDM diagnostics
├── orientation.ts # Optimal orientation suggestion
├── cost-estimator.ts # Cost/time estimation
├── filament-db.ts # Filament database
├── prusa-cli.ts # PrusaSlicer CLI wrapper
├── community-data.json # Community data (MVS, diagnostics, best practices)
└── tools/ # 17 MCP tools
├── analyze-mesh.ts
├── check-printability.ts
├── suggest-orientation.ts
├── recommend-profile.ts
├── generate-config.ts
├── estimate-cost.ts
├── search-filament.ts
├── print-wizard.ts
├── diagnose-print.ts
├── slice.ts
├── get-current-model.ts
├── screenshot-prusaslicer.ts
├── postprocess-gcode.ts
├── upload-print.ts
└── feedback.tsRequirements
Node.js >= 18
PrusaSlicer (optional — only needed for slice, screenshot, get_current_model)
Windows for screenshot feature (uses PrintWindow API)
License
MIT
Available Tools
17 toolsanalyze_meshAnalyser un mesh 3DC
Analyse un fichier STL ou 3MF et retourne : dimensions, volume, surface, pourcentage d'overhangs, détection de détails fins, et vérification manifold.
Inputs: file_path (required).
check_printabilityVérifier la printabilité d'un modèleB
Analyse un modèle 3D (STL/3MF) pour détecter les problèmes d'impression : murs trop fins, ponts trop longs, overhangs, mesh non-manifold, stabilité, etc. Retourne un score de printabilité et des recommandations.
Inputs: file_path (required), nozzle_diameter.
diagnose_printDiagnostiquer un défaut d'impressionA
Diagnostic post-impression basé sur la Bible FDM. Décris le défaut observé et obtiens les causes probables, les corrections à appliquer, et les réglages PrusaSlicer à modifier.
Inputs: defect (required), material, details.
estimate_costEstimer le coût d'impressionB
Estime le coût d'impression d'un modèle 3D : filament, électricité, temps. Peut aussi comparer plusieurs profils (draft/standard/quality) côte à côte.
Inputs: file_path (required), material, nozzle, filament_price_per_kg, +2 more.
export_feedbackExporter le feedback pour la communautéA
Exporte tes retours d'impression de manière anonymisée pour contribuer à la base de connaissances communautaire. Supprime les chemins de fichiers et généralise le nom d'imprimante. Le JSON résultant peut être partagé via GitHub PR ou autre canal.
Inputs: no named parameters.
feedback_statsStatistiques de printsC
Affiche les statistiques de tes impressions : taux de réussite, score moyen, problèmes fréquents, et meilleurs paramètres par matériau. Combine tes données locales et les données communautaires.
Inputs: material.
generate_prusaslicer_configGénérer un fichier config PrusaSlicerB
Génère un fichier .ini compatible PrusaSlicer à partir d'une intention ou de paramètres custom. Le fichier peut être chargé directement avec --load dans PrusaSlicer.
Inputs: goal (required), printer, nozzle, material, +3 more.
get_current_modelVoir le modèle ouvert dans PrusaSlicerA
Détecte le fichier actuellement ouvert dans PrusaSlicer en lisant le titre de la fenêtre. Retourne le chemin du fichier, les presets actifs (imprimante, filament, profil), et une analyse complète du mesh si c'est un STL.
Inputs: analyze.
postprocess_gcodePost-traiter un G-codeA
Modifie un fichier G-code existant pour insérer des actions : pause à une couche, changement de filament (M600), changement de température, ou commande custom. Crée un nouveau fichier sans écraser l'original.
Inputs: gcode_path (required), actions (required), output_path.
print_wizardAssistant d'impression completA
Analyse complète d'un modèle 3D avec recommandations. Retourne : analyse mesh, problèmes détectés, meilleure orientation, profil recommandé, estimation de coût, et questions à poser à l'utilisateur pour affiner les paramètres. Idéal comme point d'entrée pour un nouveau print.
Inputs: file_path (required), printer, nozzle, material, +1 more.
recommend_profileRecommander un profil d'impressionB
Génère un profil d'impression complet avec justification pour chaque paramètre. Prend en compte l'intention (prototype rapide, beau rendu, solide...), la buse, le matériau, et optionnellement une analyse mesh.
Inputs: goal (required), printer, nozzle, material, +1 more.
screenshot_prusaslicerCapturer l'écran de PrusaSlicerA
Prend un screenshot de la fenêtre PrusaSlicer (même en arrière-plan) et retourne l'image. Le fichier temporaire est automatiquement supprimé après lecture.
Inputs: no named parameters.
search_filamentChercher un filament dans la base de donnéesC
Recherche des filaments par marque, matériau ou mot-clé. Retourne les températures recommandées, densité, prix, et notes.
Inputs: query, material, brand.
slice_prusaslicerSlicer un modèle 3D avec PrusaSlicerB
Slice un fichier STL/3MF avec PrusaSlicer CLI et retourne le G-code + statistiques. Peut utiliser un fichier .ini existant ou générer une config depuis une intention.
Inputs: stl_path (required), config_path, output_gcode, goal, +3 more.
submit_feedbackNoter un printA
Enregistre un retour après impression. Note la qualité, l'adhésion, la solidité, et les problèmes rencontrés. Ces données améliorent les futures recommandations et peuvent être partagées anonymement avec la communauté.
Inputs: model_name (required), material (required), printer (required), nozzle (required), +15 more.
suggest_orientationSuggérer la meilleure orientation d'impressionA
Teste 6 orientations principales d'un modèle 3D et classe chacune selon les overhangs, la hauteur d'impression, le contact plateau, et le volume de supports. Retourne un classement avec le score et l'explication pour chaque orientation.
Inputs: file_path (required).
upload_printEnvoyer un G-code à l'imprimanteB
Upload un fichier G-code vers OctoPrint ou PrusaConnect pour lancer l'impression. Nécessite l'URL du serveur et une API key.
Inputs: gcode_path (required), server_type (required), server_url (required), api_key (required), +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Most tools have distinct purposes, but there is some overlap between analyze_mesh and check_printability, which both analyze 3D models for issues, potentially causing confusion. However, their descriptions differentiate them slightly: analyze_mesh focuses on geometric properties, while check_printability assesses printability problems. Other tools like diagnose_print and print_wizard are clearly distinct in their post-print and comprehensive analysis roles, respectively.
Tool names follow a consistent snake_case pattern throughout, which is good. However, there is minor inconsistency in verb usage: some tools use action-oriented verbs like analyze, check, diagnose, while others use more descriptive terms like suggest_orientation or generate_prusaslicer_config. This deviation is slight and does not significantly hinder readability, but it prevents a perfect score.
With 17 tools, the count is on the higher side but reasonable for a comprehensive 3D printing assistant server covering mesh analysis, slicing, printing, and feedback. It feels slightly heavy but not excessive, as each tool appears to serve a specific function in the workflow, from pre-print analysis to post-print diagnostics and community sharing.
The tool set provides complete coverage of the 3D printing domain, including pre-print analysis (e.g., analyze_mesh, check_printability), slicing (slice_prusaslicer), configuration (generate_prusaslicer_config), printing (upload_print), post-print feedback (submit_feedback, diagnose_print), and community features (export_feedback, feedback_stats). There are no obvious gaps; agents can handle the full lifecycle from model preparation to print completion and review.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- AlicenseBqualityBmaintenanceEnables interaction with 3D printer management systems through an MCP server, supporting STL file manipulation, slicing, and control of printers like OctoPrint, Klipper, Duet, and more.305,867 npm263GPL 2.0
- FlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI assistants to control and monitor Klipper 3D printers via the Moonraker API. It supports comprehensive printer management, including G-code execution, toolchanger operations, and real-time status monitoring.29-
- AlicenseNot gradedqualityCmaintenanceMCP server for generating print-ready 3D models from text descriptions via a multi-agent pipeline, enabling AI assistants to create and optimize STL files.1MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for pre-print QA of Bambu Studio projects, providing tools to inspect models and 3MF files, validate risky settings, create support variants, and open files in Bambu Studio.MIT