Skip to main content
Glama
PrusaMCP
by Noosbai

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

analyze_mesh

Geometric analysis of STL/3MF (dimensions, volume, overhangs, manifold)

check_printability

Issue detection: thin walls, bridges, overhangs, stability

suggest_orientation

Test 6 orientations with scoring (overhangs, height, adhesion)

recommend_profile

Full profile recommendation with per-setting justification

generate_prusaslicer_config

Generate PrusaSlicer-compatible .ini file

estimate_cost

Cost estimate (filament + electricity) and print time

search_filament

Search filament database (30+ entries)

print_wizard

All-in-one: analysis + printability + orientation + profile + questions

diagnose_print

Post-print diagnosis (warping, stringing, under-extrusion...)

PrusaSlicer Integration

Tool

Description

slice_prusaslicer

Run slicing via CLI with G-code stats

get_current_model

Get the model currently open in PrusaSlicer

screenshot_prusaslicer

Capture PrusaSlicer window (even in background)

postprocess_gcode

G-code post-processing (pause, filament change, etc.)

upload_print

Upload to OctoPrint / Prusa Connect

Feedback & Community

Tool

Description

submit_feedback

Submit print feedback after printing

feedback_stats

Feedback statistics by material/goal

export_feedback

Anonymized community data export

Installation

git clone https://github.com/Noosbai/PrusaMCP.git
cd PrusaMCP
npm install
npm run build

Configuration

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

PRUSASLICER_PATH

Path to prusa-slicer-console.exe

Auto-detected

PRUSASLICER_PROFILES_DIR

PrusaSlicer profiles folder

%APPDATA%/PrusaSlicer

OCTOPRINT_URL

Your OctoPrint instance URL

—

OCTOPRINT_API_KEY

OctoPrint API key

—

Usage

Typical Workflow

  1. Analyze a model: analyze_mesh to get dimensions, overhangs, etc.

  2. Check printability: check_printability to detect potential issues

  3. Get a recommendation: recommend_profile with your goal (draft, standard, quality, strong, speed)

  4. Generate config: generate_prusaslicer_config for a ready-to-use .ini

  5. Slice: slice_prusaslicer to 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

draft / prototype

Fast, quality secondary

standard

Good quality/time balance

quality / fine

Smooth surface, fine details

strong / structural

Maximum mechanical strength

vase

Spiral vase mode

speed

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.ts

Requirements

  • 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 tools
analyze_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.

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

    A3.6/5.0

    Scored across 17 tools

    Disambiguation4/5

    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.

    Naming Consistency4/5

    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.

    Tool Count4/5

    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.

    Completeness5/5

    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

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers