← Back to search

io.github.CSOAI-ORG/qidi-printer-mcp

CSOAI-ORG Scanned 25d ago

QIDI 3D Printer MCP server. Controls QIDI 4 Max Combo via Moonraker REST API. Tools: printer...

D
57.5 / 100

Versions

1.0.1latest
first seen Jun 5, 2026
1.0.4
first seen May 19, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 12

printer_status
annotations: none low

Full printer status: state, bed/nozzle temps, and current print info. READ-ONLY · idempotent · no side effects.

get_temperatures
annotations: none low

Current bed and nozzle temperatures with targets. READ-ONLY · idempotent · no side effects.

list_files
annotations: none low

List all gcode files uploaded to the printer. READ-ONLY · idempotent · no side effects.

print_progress
annotations: none low

Current print progress: % complete, elapsed, estimated remaining, filename. READ-ONLY · idempotent · no side effects.

box_humidity
annotations: none low

QIDI Box filament-dryer humidity, temperature, and drying state (AHT20 sensor). READ-ONLY · idempotent · no side effects. Use before a moisture-sensitive print (nylon / PA-CF / PETG) to confirm the filament is dry. Returns: humidity_pct (% RH), box_temp_c, drying_active (bool), printer_ip.

humidity_gate
annotations: none low

Pre-print humidity gate — call BEFORE starting a moisture-sensitive print. READ-ONLY / advisory: reads Box humidity and returns a GO / NO-GO verdict so a wet-filament print can't start by accident. It does NOT stop the printer itself — only call start_print when safe_to_print is True. Fail-safe: returns NO-GO/UNKNOWN if the Box can't be read (a network blip can't green-light a wet print). Args: max_humidity: max safe % RH (default 20.0; nylon / PA-CF want < 20%). material: filament name, for the advice string. Returns: safe_to_print (bool), humidity_pct, threshold, verdict, advice.

material str max_humidity float
start_print
annotations: none low

Start printing a gcode file already uploaded to the printer. ⚠️ MUTATING — starts a physical print. Real-world side effects, NOT idempotent, NOT read-only. For moisture-sensitive filament, call humidity_gate first and only proceed if safe_to_print is True. Args: filename: name of the gcode file on the printer (e.g. 'benchy.gcode').

filename str
pause_print
annotations: none low

Pause the current print job. ⚠️ MUTATING — changes printer state. NOT read-only, NOT idempotent.

resume_print
annotations: none low

Resume a paused print job. ⚠️ MUTATING — changes printer state. NOT read-only, NOT idempotent.

cancel_print
annotations: none low

Cancel the current print job (printer stops and cools down). ⚠️ MUTATING & DESTRUCTIVE — aborts the running print, losing progress. NOT read-only, NOT idempotent. Only call with clear intent.

send_gcode
annotations: none low

Send a raw G-code command to the printer. ⚠️ MUTATING & potentially DESTRUCTIVE — moves the head, sets temps, drives motors. NOT read-only, NOT idempotent. Validate commands before sending. Common: G28 home · G1 X100 Y100 Z50 F3000 move · M104 S200 nozzle · M140 S60 bed · M106 S255 fan on · M107 fan off. Args: command: the G-code command string.

command str
preheat
annotations: none low

Preheat bed and nozzle to target temperatures (defaults PLA-friendly: bed 60C, nozzle 220C). ⚠️ MUTATING — turns on heaters. NOT read-only, NOT idempotent. Args: bed_temp: target bed C (0-120, default 60). nozzle_temp: target nozzle C (0-300, default 220).

bed_temp int nozzle_temp int

Permissions 3

network medium
Server uses network capabilities via: urllib
filesystem low
Server uses filesystem capabilities via: open(), os
env_vars low
Server uses env_vars capabilities via: os.environ

Scan Findings 49

low
Tool 'printer_status' has no annotations annotation_checker · 100%
low
Tool 'get_temperatures' has no annotations annotation_checker · 100%
low
Tool 'list_files' has no annotations annotation_checker · 100%
low
Tool 'print_progress' has no annotations annotation_checker · 100%
low
Tool 'box_humidity' has no annotations annotation_checker · 100%
low
Tool 'humidity_gate' has no annotations annotation_checker · 100%
low
Tool 'start_print' has no annotations annotation_checker · 100%
low
Tool 'pause_print' has no annotations annotation_checker · 100%
low
Tool 'resume_print' has no annotations annotation_checker · 100%
low
Tool 'cancel_print' has no annotations annotation_checker · 100%
low
Tool 'send_gcode' has no annotations annotation_checker · 100%
low
Tool 'preheat' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-3qhf-m339-9g5v) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-9h52-p55h-vw2f) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-j975-95f5-7wqh) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-jpw9-pfvf-9f58) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-vj7q-gjh5-988w) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-1616) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-1617) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-1618) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-3482) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-3483) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: printer_status manifest_parser · 90%
info
Tool: get_temperatures manifest_parser · 90%
info
Tool: list_files manifest_parser · 90%
info
Tool: print_progress manifest_parser · 90%
info
Tool: box_humidity manifest_parser · 90%
info
Tool: humidity_gate manifest_parser · 90%
info
Tool: start_print manifest_parser · 90%
info
Tool: pause_print manifest_parser · 90%
info
Tool: resume_print manifest_parser · 90%
info
Tool: cancel_print manifest_parser · 90%
info
Tool: send_gcode manifest_parser · 90%
info
Tool: preheat manifest_parser · 90%
info
Required env vars (2) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 80%
low
Permission: filesystem access detected permission_analyzer · 80%
low
Permission: env_vars access detected permission_analyzer · 90%
critical
Invisible Unicode characters in 'start_print' poisoning · 92%
critical
Invisible Unicode characters in 'pause_print' poisoning · 92%
critical
Invisible Unicode characters in 'resume_print' poisoning · 92%
critical
Invisible Unicode characters in 'cancel_print' poisoning · 92%
critical
Invisible Unicode characters in 'send_gcode' poisoning · 92%
critical
Invisible Unicode characters in 'preheat' poisoning · 92%
info
No dependency files found for SBOM generation sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%