3D print farm management for AI. Monitor, queue, and control prints on your SimplyPrint account.
Monitor, queue, and control 3D prints across your SimplyPrint farm.
Captured live from the server via tools/list.
list_printers
List MULTIPLE printers with optional filters. For details on a single known printer, call get_printer instead — do not list-then-filter. For farm-wide counts ("how many printers are doing X"), call get_farm_overview instead — do not paginate this. Use status=["online"] to only see reachable printers, status=["printing"] for ones actively printing, status=["was_printing_when_offline"] for printers that dropped mid-print, status=["idle"] for available printers ready to accept a job, status=["awaiting_bed_clear"] for printers whose last print finished but the bed has not been cleared yet (NOT print_pending, which means a queued staggered start).
Parameters (16)
pageinteger
Page number (1-based) when paginating beyond limit/page_size.
page_sizeinteger
searchstring
sort_idstring
sort_bystring
Sort by this field. Default: stable (no sort).
sort_dirstring
Sort direction; default asc when sort_by is set.
limitinteger
Cap on results (1-100). Alias for page_size. Use this with sort_by for "top N" queries.
statusarray
Filter by status. Multiple values are OR-matched. Macros (derived): online, offline, idle, was_printing_when_offline, in_maintenance, print_pending, can_accept_commands, awaiting_bed_clear. Raw PrinterStatus: printing, operational, paused, pausing, resuming, cancelling, error, downloading, unknown. Note: awaiting_bed_clear means a print finished but the bed has not been cleared yet (online + operational + still has a job) — use this NOT print_pending (which means a queued/staggered start) when the user asks "which printers need to be cleared off?".
group_idinteger
Only return printers in this printer group
tagsarray
Filter printers that have any of the given tag names
out_of_orderboolean
If true, only out-of-order printers; if false, only in-order printers (enterprise feature)
printer_columnsstring
job_columnsstring
filament_columnsstring
order_bystring
compactboolean
Keep at default true. Returns minimal data tuned for AI context. Only set to false if you specifically need fields the compact view drops, and then pair with limit to keep the response small.
get_printer
Get details, status, temps, current job, filament, notifications for ONE specific printer by id. Use this (not list_printers) whenever the user asks about a single printer they've already identified — "status of printer X", "what's printer 5 doing", "temperature on Creality K2". Cheaper and less noisy than listing all printers.
Parameters (2)
printer_idstringrequired
compactboolean
Keep at default true. Returns minimal data tuned for AI context. Only set to false if you specifically need fields the compact view drops, and then pair with limit to keep the response small.
get_farm_overview
One-shot summary of farm-wide printer state. Use this (NOT list_printers) when the user asks "how many printers are printing/idle/awaiting bed clear/etc." or "what is the state of the farm". Returns a total and {count, printers:[{id,name}]} for each bucket: online, offline, not_connected, operational (idle), printing, paused, awaiting_bed_clear (a print finished but the bed has not been cleared yet — printer is online + operational + still has a job; this is NOT print_pending), in_maintenance, print_pending (a queued staggered/scheduled start), requires_attention (has unresolved error notifications), ai_running, ai_detected_low, ai_detected_high. Counts overlap intentionally: a printer can be in "online" + "printing" + "ai_running" at once.
No parameters.
pause_print
Pause the current print on a printer
Parameters (1)
printer_idintegerrequired
The printer IDs (comma-separated for multiple)
resume_print
Resume a paused print on a printer
Parameters (1)
printer_idintegerrequired
The printer IDs (comma-separated for multiple)
cancel_print
Cancel the current print on a printer
Parameters (6)
printer_idintegerrequired
The printer IDs (comma-separated for multiple)
reasoninteger
Cancel reason ID. May be required depending on organization settings.
commentstring
Optional comment explaining why the print was cancelled. May be required depending on organization settings.
return_to_queueboolean
Whether to return cancelled queued print to the queue. Uses organization default if not specified.
return_positionstring
Position to insert queue item at when returning to queue.
custom_positioninteger
Custom sort position when return_position is 'custom'.
send_gcode
Send G-code commands to a printer
Parameters (5)
printer_idintegerrequired
The printer IDs (comma-separated for multiple)
gcodearray
Array of G-code commands to send. Either gcode, macro, or snippet_id is required.
macrostring
Predefined macro name to execute. Either gcode, macro, or snippet_id is required.
macro_contextarray
Optional context data for macro execution.
snippet_idinteger
ID of a gcode snippet to send. Either gcode, macro, or snippet_id is required.
create_print_job
Start a print job on one or more printers. File source is exactly one of: file_id (API file hash from upload), filesystem (user-file uid), queue_file (existing queue item id), reprint (previous print-job id), or next_queue_item=true (auto-pick the next matching queue item per printer, deduplicated across printers). Supports PRINT_JOB custom fields (shared and per-printer). Auto-starts when the account's autostartPrints setting is on (default).
Parameters (10)
printer_idstringrequired
Comma-separated printer id(s) to start the job on. Must be operational. When next_queue_item=true, each printer gets a different queue item (same item never duplicated within one call).
filesystemstring
UserFile.uid of an existing library file. Choose this when starting from an already-imported file.
file_idstring
Hex bucket hash returned by the files.simplyprint.io Upload endpoint. Choose this when starting from a file uploaded via the API.
queue_fileinteger
Existing print queue item id. Choose this to start the job from a queued item (most common flow).
reprintinteger
Previous print_job id to reprint with the same file and settings.
next_queue_itemboolean
If true, auto-pick the next matching queue item for each printer in pid. Uses the same compatibility matcher as get_next_queue_items_for_printers. Mutually exclusive with file_id/filesystem/queue_file/reprint.
start_optionsstring
mms_mapstring
custom_fieldsarray
PRINT_JOB custom fields shared across all started jobs. Each entry is an object with customFieldId (string uuid) and value (one-of string/number/boolean/date/options).
individual_custom_fieldsarray
Per-printer or per-queue-item PRINT_JOB custom fields. Each entry: {id: <string>, value: [customFieldSubmissions]}.
home_printer
Home the printer axes (move to origin position)
Parameters (3)
printer_idintegerrequired
The printer IDs (comma-separated for multiple)
snippet_idinteger
ID of a gcode snippet to send. Either gcode, macro, or snippet_id is required.
axesstring
Axes to home, space-separated. Examples: "X Y Z" (all), "X Y" (XY only), "Z" (Z only)
move_printer_axis
Move a printer axis to a relative position
Parameters (5)
printer_idintegerrequired
The printer IDs (comma-separated for multiple)
snippet_idinteger
ID of a gcode snippet to send. Either gcode, macro, or snippet_id is required.
directionstringrequired
Axis and direction to move. Use axis letter, optionally with minus for negative. Examples: "X" (+X), "X-" (-X), "Y", "Y-", "Z", "Z-"
distancenumberrequired
Distance to move in millimeters
speednumber
Movement speed in mm/min. If not specified, uses printer default.
set_printer_fans
Control the printer cooling fans
Parameters (3)
printer_idintegerrequired
The printer IDs (comma-separated for multiple)
snippet_idinteger
ID of a gcode snippet to send. Either gcode, macro, or snippet_id is required.
speedintegerrequired
Fan speed from 0 (off) to 255 (full speed). Use 0 to turn fans off.
set_printer_motors
Enable or disable the printer stepper motors
Parameters (3)
printer_idintegerrequired
The printer IDs (comma-separated for multiple)
snippet_idinteger
ID of a gcode snippet to send. Either gcode, macro, or snippet_id is required.
enabledstringrequired
Motor state: "on" to enable motors (lock axes), "off" to disable (allow manual movement)
list_queue
List print queue items with optional filters. Supports filtering by assigned printer(s), group, approval status, tags, queue-item custom-field values, and age. Example: older_than_days=7 for "items added more than 7 days ago", or custom_fields=[{id: "<uuid>", value: "Engineering"}] for a specific department field.
Parameters (15)
pageinteger
page_sizeinteger
Items per page (1-200). Use this as the result-size cap.
groupinteger
Only return items in this queue group (0 = the ungrouped bucket)
sort_bystring
Sort by this field. Default: sort_position (ascending — matches the queue's display order).
sort_dirstring
Sort direction; default asc.
searchstring
Filename substring search
printer_idarray
Only return queue items assigned to (via for_printers) any of these printer ids
approval_statusstring
Filter by approval status. Default excludes denied.
tagsarray
Match items that have any of the given tag names
custom_fieldsarray
Filter by custom field values. Each entry must specify the field id (uuid) and either value (exact match against string/number/boolean/date/options) or contains (case-insensitive substring on text fields). Multiple entries are AND-joined.
added_beforestring
Items created strictly before this ISO-8601 date
added_afterstring
Items created strictly after this ISO-8601 date
older_than_daysinteger
Items created more than this many days ago
newer_than_daysinteger
Items created within the last this many days
compactboolean
Keep at default true. Returns minimal data tuned for AI context. Only set to false if you specifically need fields the compact view drops, and then pair with limit to keep the response small.
get_queue_item
Get details of a specific queue item
Parameters (1)
item_idintegerrequired
remove_from_queue
Remove an item from the print queue
Parameters (2)
jobinteger
jobsstring
add_to_queue
Queue a file for printing. Pick exactly one file source: fileId (hex hash from the files.simplyprint.io Upload endpoint) or filesystem (UserFile.uid of an existing library file). Supports PRINT_QUEUE custom fields.
Parameters (10)
groupinteger
Queue group id to add the item to. Use list_queue_groups to discover available groups.
filesystemstring
UserFile.uid of an existing library file (use list_files to discover). Either numeric id or UID string is accepted.
fileIdstring
Hex bucket hash returned by the files.simplyprint.io Upload endpoint. Use this when the file was uploaded via the API (recommended for integrations).
amountinteger
Number of copies to queue. Default 1.
tagsarray
for_printersstring
for_modelsstring
for_groupsstring
custom_fieldsarray
PRINT_QUEUE custom fields for the new queue item. Each entry: {customFieldId: string uuid, value: one-of {string, number, boolean, date, options[]}}.
positionstring
Where to insert: "top", "bottom", or a 1-based numeric position.
update_queue_item
Update a queue item (amount, note, custom print time, material usage, printer assignments).
Parameters (15)
amountinteger
printedinteger
notestring
timeinteger
material_usagenumber
for_printersstring
for_modelsstring
for_groupsstring
prioritystring
pausedboolean
infiniteboolean
persistentboolean
max_concurrent_printersinteger
deadlinestring
queue_item_idintegerrequired
reorder_queue_item
Move a single queue item to a new 1-based position.
Parameters (3)
frominteger
tointegerrequired
queue_item_idintegerrequired
move_queue_item
Move one or more queue items to a different queue group.
Parameters (2)
jobsstringrequired
target_group_idintegerrequired
revive_queue_item
Bring a completed (done) queue item back to the active queue.
Parameters (6)
amountinteger
prioritystring
positionstring
position_indexinteger
groupinteger
queue_item_idintegerrequired
empty_queue
DESTRUCTIVE: Delete all items from the queue (optionally filtered by group or done-only). Confirm with the user before calling.
Parameters (2)
groupinteger
done_itemsboolean
inspect_printer_queue
Show which queue items match/miss a specific printer and why. Useful for diagnosing why a queue item will not print.
Parameters (2)
printer_idstringrequired
modestring
get_queue_item_cost
Calculate the estimated cost of a queue item, optionally for a specific printer.
Parameters (4)
printer_idinteger
mms_maparray
queue_item_idintegerrequired
item_idinteger
get_next_queue_item
Find the best-matching queue item(s) for a set of printers using SimplyPrint's compatibility matcher.
Parameters (10)
printer_idintegerrequired
The printer IDs (comma-separated for multiple)
settingsarray
skippedQueueItemsarray
specificQueueGroupsarray
queueGroupsOrderarray
filtersarray
sortingarray
normalOnlyboolean
deselectsstring
compactboolean
Keep at default true. Returns minimal data tuned for AI context. Only set to false if you specifically need fields the compact view drops, and then pair with limit to keep the response small.
get_next_queue_items_for_printers
Read-only preview: for each given printer, return the next queue item that would be started. Uses the same dedup matcher as create_print_job with next_queue_item=true, so the same queue item is never returned twice across printers in one call. Includes match failures per printer (issues) so you can explain why a printer has nothing to print. Does NOT start any job.
Parameters (2)
printer_idstringrequired
Comma-separated printer id(s). Does not need to be operational — offline printers return their would-be match too, so you can see what's waiting for them.
compactboolean
Keep at default true. Returns minimal data tuned for AI context. Only set to false if you specifically need fields the compact view drops, and then pair with limit to keep the response small.
list_queue_groups
List all queue groups in the user's account.
Parameters (1)
item_idinteger
save_queue_group
Create a new queue group or update an existing one.
No parameters.
delete_queue_group
Delete a queue group. Optionally move its items to another group via move_to.
Parameters (2)
move_tointeger
item_idintegerrequired
reorder_queue_group
Move a queue group to a new position.
Parameters (2)
tointegerrequired
group_idintegerrequired
list_pending_queue_items
List queue items pending approval (status: PENDING, DENIED, or REVISION).
Parameters (3)
statusstring
pageinteger
per_pageinteger
approve_queue_item
Approve one or more pending/revision/denied queue items, with optional comment.
Parameters (3)
commentstring
jobinteger
jobsstring
deny_queue_item
Deny a pending queue item, either removing it or requesting revisions. Include a comment explaining the decision.
Parameters (4)
commentstring
removeboolean
jobinteger
jobsstring
send_back_for_revision
Revoke approval on an already-approved item and send it back to the submitter for revisions.
Parameters (2)
commentstring
queue_item_idintegerrequired
resubmit_queue_item
Resubmit a denied or revision-requested queue item back to pending approval. File-replacement is not supported via MCP.
Parameters (2)
commentstring
queue_item_idintegerrequired
list_queue_comments
Retrieve all approval comments on a queue item or user file.
Parameters (2)
item_idinteger
file_idstring
add_queue_comment
Add a comment (general or feedback) to a queue item or user file. File attachments are not supported via MCP.
Parameters (4)
commentstring
item_idinteger
file_idstring
typestring
update_queue_comment
Edit an approval comment you authored.
Parameters (2)
item_idintegerrequired
commentstringrequired
delete_queue_comment
Delete an approval comment you authored (or any comment if you have the permission).
Parameters (1)
item_idintegerrequired
list_custom_fields
List custom field definitions with pagination and search.
Parameters (7)
pageintegerrequired
page_sizeintegerrequired
searchstring
sort_idstring
sort_dirstring
start_datenumber
end_datenumber
list_custom_fields_for
List custom field definitions for a specific entity category and optional sub-category (e.g. PRINT + PRINT_QUEUE for queue-item custom fields).
Parameters (3)
categorystringrequired
subCategorystring
includeDisabledstring
set_custom_field_values
Set custom field values on one or more entities (queue items, files, printers, etc.). Use this to set a "deadline" or similar field across many queue items at once.
Parameters (4)
categorystringrequired
subCategorystring
entityIdsarrayrequired
valuesarrayrequired
list_files
List files and folders in the user's SimplyPrint storage. With pid set, only returns files compatible with that printer (full compatibility check). With global_search=true (default), searches recursively across all folders.
Parameters (9)
finteger
Folder id to list (0 or omitted = root)
searchstring
Filename substring search. Matches with or without extension — "Schleife oben 1_PLA_1h4m" and "Schleife oben 1_PLA_1h4m.3mf" both find the same file.
global_searchboolean
If true (default), search recursively across all folders instead of only the current one
printer_idinteger
Only return files compatible with this printer (full compatibility check, not just model)
has_gcodeboolean
true = only files with a parsed G-code analysis (printable); false = only non-printable files (models, etc.)
sort_bystring
Sort files by this field (folders are not affected). Default: repository order (user's saved files-page sort).
Cap on returned files (1-500). Useful with sort_by for "5 largest files" or "10 most recent".
compactboolean
Keep at default true. Returns minimal data tuned for AI context. Only set to false if you specifically need fields the compact view drops, and then pair with limit to keep the response small.
get_folder
Get a folder's details including permissions.
Parameters (1)
item_idintegerrequired
estimate_file_cost
Estimate the print cost of a file, optionally for a specific printer.
Parameters (5)
analysisarray
printer_idinteger
mms_maparray
item_idstring
newFileboolean
match_file_to_printers
Find which printer models in the account are compatible with a given file.
Parameters (2)
gcodeAnalysisarray
modelstringrequired
set_file_printers
Set the printers/models/groups a file is assigned to.
Parameters (3)
itemsarrayrequired
printersarray
modelsarray
update_file
Update file metadata such as name and GCODE analysis.
Parameters (7)
namestring
printersstring
printer_modelsstring
printer_groupsstring
remove_thumbnailboolean
analysisarray
item_idstringrequired
create_folder
Create a new folder (or edit an existing one with optional org-level permissions).
Parameters (5)
namestringrequired
parent_folderintegerrequired
orgboolean
org_permsarray
item_idinteger
delete_folder
Delete one or more folders.
Parameters (1)
folderstringrequired
move_file
Move one or more files to a folder.
Parameters (2)
filesstringrequired
folderintegerrequired
move_folder
Move a folder to another location.
Parameters (2)
folderintegerrequired
targetintegerrequired
delete_file
Delete one or more files.
Parameters (1)
filestringrequired
get_slicer_settings_for_file
Retrieve slicer settings stored for a file.
Parameters (1)
filestringrequired
list_filaments
List filament spools with optional filters and sorting. Accounts often have hundreds of spools, so ALWAYS pair sort_by with a limit. Use sort_by=last_used + limit=10 for "most used / most popular spool" questions. Use sort_by=created + limit=N for recently added. Use sort_by=left for emptiest/fullest. Filters (material_type/brand/color) are case-insensitive substring matches. If the user names a specific spool by id or 4-character short id (e.g. "T2SO"), call get_filament instead — do NOT list and grep.
Parameters (10)
material_typestring
Material type substring (e.g. "PLA", "PETG")
brandstring
Brand name substring
colorstring
Color substring — matches hex, name, or color group
assignedboolean
true = only spools assigned to a printer; false = only unassigned spools
emptyboolean
true = only empty spools; false = only non-empty spools
printer_idinteger
Only spools assigned to this printer id
compactboolean
Keep at default true. Returns minimal data tuned for AI context. Only set to false if you specifically need fields the compact view drops, and then pair with limit to keep the response small.
sort_bystring
Field to sort by. Defaults to created (newest first).
sort_dirstring
Sort direction. Defaults to desc.
limitinteger
Cap on number of spools returned after sorting/filtering. Use this with sort_by to grab e.g. the 3 newest.
get_filament
Get details of one specific filament spool. Use this (NOT list_filaments+grep) when the user names a spool by id or short id. Accepts spool_id (the integer DB id) or spool_short_id (the 4-character code shown on QR labels and the spool view page, e.g. "T2SO", "M0WT").
Parameters (5)
spool_short_idstring
spool_idinteger
publicboolean
locationscountboolean
company_idinteger
adjust_filament_weight
Adjust the remaining weight of a filament spool (e.g. after manual weighing).
Parameters (7)
filament_idintegerrequired
The filament ID
grams_remainingnumber
percent_leftnumber
weighed_grossnumber
empty_spool_weightinteger
subtract_empty_spoolboolean
save_empty_spool_weightboolean
assign_filament
Assign a filament spool to a printer (or a specific extruder slot).
Parameters (4)
printer_idintegerrequired
The printer ID
filament_idintegerrequired
The filament IDs (comma-separated for multiple)
extruderarray
sourcestring
unassign_filament
Remove a filament spool from its printer assignment.
Parameters (3)
filament_idintegerrequired
The filament ID
sourcestring
location_idinteger
get_filament_history
Retrieve the usage history of a filament spool.
Parameters (5)
user_idstring
item_idinteger
publicboolean
pageinteger
perPageinteger
mark_filament_dried
Mark a filament spool as freshly dried (resets humidity tracking).
Parameters (2)
filament_idintegerrequired
The filament IDs (comma-separated for multiple)
dried_atstring
list_filament_colors
List available filament colors (for UI pickers or picking similar spools).
No parameters.
list_brand_filaments
List filament products from a specific brand.
Parameters (1)
item_idintegerrequired
list_print_jobs
List past print jobs with pagination, filters, and sort. Compact mode (default) drops gcodeAnalysis, filament breakdowns, and panel-only flags.
Parameters (18)
pageintegerrequired
Page number (1-based)
page_sizeintegerrequired
Items per page (1-100)
limitinteger
Cap on results per page (1-100). Alias for page_size.
printer_typesarray
printer_idsarray
Only jobs from these printer ids
printer_groupsarray
Only jobs from printers in these groups
user_idsarray
Only jobs started by these users (requires VIEW_ALL_PRINT_HISTORY)
accepted_statusesarray
Filter by job status. Multiple values OR-matched.
archived_statusstring
null (default): hide archived; archived: only archived; both: include archived
start_datestring
Earliest start (ISO-8601)
end_datestring
Latest start (ISO-8601)
searchstring
Filename / UID / custom-field substring search
sort_idstring
sort_bystring
Sort by this field. Default: started date desc (newest first).
sort_dirstring
Sort direction; default desc.
spool_idinteger
Only jobs that used this filament spool
queue_jobinteger
compactboolean
Keep at default true. Returns minimal data tuned for AI context. Only set to false if you specifically need fields the compact view drops, and then pair with limit to keep the response small.
get_print_job
Get detailed info for a specific print job.
Parameters (3)
item_idstringrequired
extrastring
getcustomfieldsstring
archive_print_job
Archive a print job (hide from default history listings).
Parameters (2)
jobsarrayrequired
reasonstring
unarchive_print_job
Restore an archived print job.
Parameters (1)
jobsarrayrequired
get_account_statistics
Account-level print statistics (success rate, filament used, print time, cost) with optional date range and user/printer filters.
Parameters (7)
usersarray
printersarray
printer_modelsarray
start_datestring
end_datestring
generalboolean
fake_databoolean
get_maintenance_dashboard
Overview of maintenance jobs, problems, inventory, and printer maintenance status.
No parameters.
get_referral_stats
Referral program statistics: conversions, earnings, pending payout.
No parameters.
get_webhook_sample
Get one or more realistic sample webhook payloads for a specific event type, matching the envelope a live webhook delivery would produce. Used by integration platforms (Activepieces, n8n, Zapier) to show the payload shape before any real event fires. Falls back to synthetic data when no applicable entity exists in the account.
Official Claude Code marketplace from SimplyPrint. Hosts the SimplyPrint plugin for Claude Code so you can manage your 3D printer farm without leaving your terminal.
Connects Claude Code to your SimplyPrint account via the official SimplyPrint MCP server. Includes starter skills for common workflows.
Hosting it yourself
This whole repo is the marketplace. Anyone can add it with /plugin marketplace add simplyprint/simplyprint-claude-plugin. To run a fork, just point users at your repo instead.