此 MCP 可以做什么
Manages 3D printer farms by monitoring printers, assigning filament, queuing and controlling print jobs, and reporting operational statistics.
工具
输入模式
{'type': 'object', 'required': [], 'properties': {'type': {'type': 'string'}, 'comment': {'type': 'string', 'maxLength': 5000}, 'file_id': {'type': 'string'}, 'item_id': {'type': 'integer', 'minimum': 1}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'tags': {'type': 'object', 'properties': {'custom': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Custom tag ids to assign.'}, 'nozzle': {'type': 'number', 'description': 'Legacy single-nozzle size in millimetres.'}, 'tag_id': {'type': 'integer', 'minimum': 1, 'description': 'Legacy alias for a single custom tag id.'}, 'bedType': {'type': 'object', 'properties': {'type': {'type': 'string'}, 'custom': {'type': 'integer', 'minimum': 0}}, 'description': 'Build-plate tag.'}, 'tag_ids': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Alias for custom.'}, 'material': {'type': 'array', 'items': {'type': 'object', 'properties': {'ext': {'type': 'integer', 'minimum': 0}, 'hex': {'type': 'string', 'description': 'Material colour as a hex value, e.g. #FF0000.'}, 'type': {'type': 'integer', 'description': 'Filament profile id.'}, 'color': {'type': 'string', 'description': 'Material colour name.'}, 'width': {'type': 'number'}, 'nozzle': {'type': 'integer', 'minimum': 0}}}, 'description': 'Material tags, one object per extruder. Set color and/or hex to tag a file by colour.'}, 'nozzleData': {'type': 'array', 'items': {'type': 'object', 'properties': {'i': {'type': 'integer', 'minimum': 0}, 'size': {'type': 'number', 'minimum': 0}, 'type': {'type': 'string'}, 'volumeType': {'type': 'string'}}}, 'description': 'Nozzle data, one object per nozzle.'}, 'detach_tag_ids': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Custom tag ids to remove.'}}, 'description': 'Tag-assignment object. Use material for colour, for example {"material":[{"color":"Red","hex":"#FF0000","nozzle":0,"ext":0}]}; use custom or tag_ids for custom tag IDs, nozzleData for nozzle positions, bedType for the build plate, and detach_tag_ids to remove custom tags.'}, 'group': {'type': 'integer', 'minimum': 0, 'description': 'Queue group id to add the item to. Use list_queue_groups to discover available groups.'}, 'amount': {'type': 'integer', 'minimum': 1, 'description': 'Number of copies to queue. Default 1.'}, 'fileId': {'type': 'string', 'description': 'Hex bucket hash returned by the files.simplyprint.io Upload endpoint. Use this when the file was uploaded via the API (recommended for integrations).'}, 'position': {'type': 'string', 'description': 'Where to insert: "top", "bottom", or a 1-based numeric position.'}, 'filesystem': {'type': 'string', 'description': 'UserFile.uid of an existing library file (use list_files to discover). Either numeric id or UID string is accepted.'}, 'for_groups': {'type': 'string'}, 'for_models': {'type': 'string'}, 'for_printers': {'type': 'string'}, 'custom_fields': {'type': 'array', 'items': {'type': 'object', 'required': ['customFieldId', 'value'], 'properties': {'value': {'type': 'object'}, 'customFieldId': {'type': 'string'}}}, 'description': 'PRINT_QUEUE custom fields for the new queue item. Each entry: {customFieldId: string uuid, value: one-of {string, number, boolean, date, options[]}}.'}}}
输入模式
{'type': 'object', 'required': ['filament_id'], 'properties': {'log_print': {'type': 'boolean'}, 'filament_id': {'type': 'integer', 'minimum': 1, 'description': 'The filament ID'}, 'percent_left': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'weighed_gross': {'type': 'number', 'maximum': 100000, 'minimum': 0}, 'grams_remaining': {'type': 'number', 'maximum': 100000, 'minimum': 0}, 'empty_spool_weight': {'type': 'integer', 'maximum': 100000, 'minimum': 0}, 'log_print_filename': {'type': 'string', 'maxLength': 255}, 'log_print_printer_id': {'type': 'integer', 'minimum': 1}, 'subtract_empty_spool': {'type': 'boolean'}, 'save_empty_spool_weight': {'type': 'boolean'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'job': {'type': 'integer', 'minimum': 1}, 'jobs': {'type': 'string'}, 'comment': {'type': 'string', 'maxLength': 2000}}}
输入模式
{'type': 'object', 'required': ['jobs'], 'properties': {'jobs': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}}, 'reason': {'type': 'string', 'maxLength': 500}}}
输入模式
{'type': 'object', 'required': ['printer_id', 'filament_id'], 'properties': {'source': {'enum': ['changer', 'tag', 'filamentpage', 'viewspool', 'startprint', 'slicer', 'codescanner', 'slot_action', 'analysis_fix'], 'type': 'string'}, 'extruder': {'type': 'array', 'items': {'type': 'string'}}, 'printer_id': {'type': 'integer', 'minimum': 1, 'description': 'The printer ID'}, 'filament_id': {'type': 'integer', 'minimum': 1, 'description': 'The filament IDs (comma-separated for multiple)'}}}
输入模式
{'type': 'object', 'required': ['task_id'], 'properties': {'notify': {'type': 'boolean'}, 'task_id': {'type': 'integer'}, 'user_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['type'], 'properties': {'type': {'enum': [3], 'type': 'integer', 'default': 3}, 'custom': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Custom tag ids to assign.'}, 'edited': {'enum': ['nozzle', 'material', 'custom', 'bedType'], 'type': 'string'}, 'nozzle': {'type': 'number', 'description': 'Legacy single-nozzle size in millimetres.'}, 'tag_id': {'type': 'integer', 'minimum': 1, 'description': 'Legacy alias for a single custom tag id.'}, 'bedType': {'type': 'object', 'properties': {'type': {'type': 'string'}, 'custom': {'type': 'integer', 'minimum': 0}}, 'description': 'Build-plate tag.'}, 'file_id': {'type': 'string', 'description': 'UserFile.uid of one file from list_files.'}, 'tag_ids': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Alias for custom.'}, 'file_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'UserFile.uid values when assigning the same tags to multiple files.'}, 'material': {'type': 'array', 'items': {'type': 'object', 'properties': {'ext': {'type': 'integer', 'minimum': 0}, 'hex': {'type': 'string', 'description': 'Material colour as a hex value, e.g. #FF0000.'}, 'type': {'type': 'integer', 'description': 'Filament profile id.'}, 'color': {'type': 'string', 'description': 'Material colour name.'}, 'width': {'type': 'number'}, 'nozzle': {'type': 'integer', 'minimum': 0}}}, 'description': 'Material tags, one object per extruder. Set color and/or hex to tag a file by colour.'}, 'override': {'type': 'boolean'}, 'nozzleData': {'type': 'array', 'items': {'type': 'object', 'properties': {'i': {'type': 'integer', 'minimum': 0}, 'size': {'type': 'number', 'minimum': 0}, 'type': {'type': 'string'}, 'volumeType': {'type': 'string'}}}, 'description': 'Nozzle data, one object per nozzle.'}, 'detach_tag_ids': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'description': 'Custom tag ids to remove.'}}}
输入模式
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'reason': {'type': 'integer', 'maximum': 9, 'minimum': 1, 'description': 'Cancel reason ID. May be required depending on organization settings.'}, 'comment': {'type': 'string', 'maxLength': 500, 'description': 'Optional comment explaining why the print was cancelled. May be required depending on organization settings.'}, 'printer_id': {'type': 'integer', 'minimum': 1, 'description': 'The printer IDs (comma-separated for multiple)'}, 'custom_position': {'type': 'integer', 'minimum': 0, 'description': "Custom sort position when return_position is 'custom'."}, 'return_position': {'enum': ['top', 'bottom', 'custom', 'original'], 'type': 'string', 'description': 'Position to insert queue item at when returning to queue (original, top, bottom or custom).'}, 'return_to_queue': {'type': 'boolean', 'description': 'Whether to return cancelled queued print to the queue. Uses organization default if not specified.'}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'printer_id': {'type': 'integer', 'minimum': 1, 'description': 'The printer IDs (comma-separated for multiple)'}, 'expected_job_uid': {'type': 'string', 'description': 'Job uid returned by list_scheduled_prints. The action is refused if that printer now holds a different pending print.'}}}
输入模式
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'integer'}, 'completion_summary': {'type': 'string', 'maxLength': 5000}, 'resolve_problem_ids': {'type': 'array', 'items': {'type': 'integer'}}, 'skip_resolve_linked': {'type': 'boolean'}}}
输入模式
{'type': 'object', 'required': ['task_id'], 'properties': {'task_id': {'type': 'integer'}, 'custom_fields': {'type': 'array', 'items': {'type': 'string'}}, 'skip_spare_part': {'type': 'boolean'}, 'selected_spare_part_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['name', 'parent_folder'], 'properties': {'org': {'type': 'boolean'}, 'name': {'type': 'string', 'maxLength': 128}, 'item_id': {'type': 'integer', 'minimum': 1}, 'org_perms': {'type': 'array', 'items': {'type': 'string'}}, 'parent_folder': {'type': 'integer', 'minimum': 0}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'file_id': {'type': 'string', 'description': 'Hex bucket hash returned by the files.simplyprint.io Upload endpoint. Choose this when starting from a file uploaded via the API.'}, 'mms_map': {'type': 'string'}, 'reprint': {'type': 'integer', 'description': 'Previous print_job id to reprint with the same file and settings.'}, 'filesystem': {'type': 'string', 'description': 'UserFile.uid of an existing library file. Choose this when starting from an already-imported file.'}, 'printer_id': {'type': 'string', 'description': '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).'}, 'queue_file': {'type': 'integer', 'description': 'Existing print queue item id. Choose this to start the job from a queued item (most common flow).'}, 'schedule_for': {'type': 'string', 'description': 'Hold the print until this absolute instant instead of starting it now. ISO 8601 with an offset or Z, e.g. "2026-08-18T22:30:00Z". Must be at least 1 minute and at most 7 days ahead. Requires the Schedule Print feature (Pro and up) and the schedule_print permission. The printer is reserved as soon as the job is created and reports state print_pending until it starts. Print allowance is only reserved on plans that have quotas (Print Farm and up); Pro has none. Not valid with next_queue_item. Resolve relative times ("tonight", "in 3 hours") against the user\'s clock before calling - this field takes an absolute instant only.'}, 'custom_fields': {'type': 'array', 'items': {'type': 'object', 'required': ['customFieldId', 'value'], 'properties': {'value': {'type': 'object'}, 'customFieldId': {'type': 'string'}}}, 'description': '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).'}, 'start_options': {'type': 'string'}, 'next_queue_item': {'type': 'boolean', 'description': '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.'}, 'individual_custom_fields': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'value'], 'properties': {'id': {'type': 'string'}, 'value': {'type': 'array', 'items': {'type': 'object', 'required': ['customFieldId', 'value'], 'properties': {'value': {'type': 'object'}, 'customFieldId': {'type': 'string'}}}}}}, 'description': 'Per-printer or per-queue-item PRINT_JOB custom fields. Each entry: {id: <string>, value: [customFieldSubmissions]}.'}}}
输入模式
{'type': 'object', 'required': ['file'], 'properties': {'file': {'type': 'string'}}}
输入模式
{'type': 'object', 'required': ['folder'], 'properties': {'folder': {'type': 'string'}}}
输入模式
{'type': 'object', 'required': ['item_id'], 'properties': {'item_id': {'type': 'integer', 'minimum': 1}}}
输入模式
{'type': 'object', 'required': ['item_id'], 'properties': {'item_id': {'type': 'integer', 'minimum': 1}, 'move_to': {'type': 'integer', 'minimum': 0}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'job': {'type': 'integer', 'minimum': 1}, 'jobs': {'type': 'string'}, 'remove': {'type': 'boolean'}, 'comment': {'type': 'string', 'maxLength': 2000}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'group': {'type': 'integer', 'minimum': 1}, 'done_items': {'type': 'boolean'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'item_id': {'type': 'string'}, 'mms_map': {'type': 'array', 'items': {'type': 'string'}}, 'newFile': {'type': 'boolean'}, 'analysis': {'type': 'array', 'items': {'type': 'string'}}, 'printer_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'users': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}}, 'general': {'type': 'boolean'}, 'end_date': {'type': 'string', 'minLength': 1}, 'printers': {'type': 'array', 'items': {'type': 'string'}}, 'fake_data': {'type': 'boolean'}, 'start_date': {'type': 'string', 'minLength': 1}, 'printer_models': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}}}}
输入模式
{'type': 'object', 'required': [], 'properties': {}}
输入模式
{'type': 'object', 'required': [], 'properties': {'public': {'type': 'boolean'}, 'spool_id': {'type': 'integer', 'minimum': 1}, 'company_id': {'type': 'integer', 'minimum': 1}, 'locationscount': {'type': 'boolean'}, 'spool_short_id': {'type': 'string'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'page': {'type': 'integer', 'minimum': 1}, 'public': {'type': 'boolean'}, 'item_id': {'type': 'integer', 'minimum': 1}, 'perPage': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'user_id': {'type': 'string'}}}
输入模式
{'type': 'object', 'required': ['item_id'], 'properties': {'item_id': {'type': 'integer', 'minimum': 1}}}
输入模式
{'type': 'object', 'required': [], 'properties': {}}
输入模式
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'integer', 'description': 'Maintenance job id.'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'compact': {'type': 'boolean', 'default': True, 'description': '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.'}, 'filters': {'type': 'array', 'items': {'type': 'string'}}, 'sorting': {'type': 'array', 'items': {'type': 'string'}}, 'settings': {'type': 'array', 'items': {'type': 'string'}}, 'deselects': {'type': 'string'}, 'normalOnly': {'type': 'boolean'}, 'printer_id': {'type': 'integer', 'minimum': 1, 'description': 'The printer IDs (comma-separated for multiple)'}, 'mustClearBed': {'type': 'boolean'}, 'queueGroupsOrder': {'type': 'array', 'items': {'type': 'integer'}}, 'skippedQueueItems': {'type': 'array', 'items': {'type': 'integer'}}, 'includeTodoSummary': {'type': 'boolean'}, 'specificQueueGroups': {'type': 'array', 'items': {'type': 'integer'}}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'compact': {'type': 'boolean', 'default': True, 'description': '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.'}, 'printer_id': {'type': 'string', 'description': "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."}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'compact': {'type': 'boolean', 'default': True, 'description': '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.'}, 'printer_id': {'type': 'string'}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'printer_id': {'type': 'integer', 'description': 'The printer to profile. Required.'}, 'include_active_job_detail': {'type': 'boolean', 'description': 'Also return the full task checklist of the active (or next scheduled) job. Off by default; get_maintenance_job gives the same detail for any job.'}}}
输入模式
{'type': 'object', 'required': ['item_id'], 'properties': {'extra': {'type': 'string'}, 'item_id': {'type': 'string', 'minLength': 10}, 'getcustomfields': {'type': 'string'}}}
输入模式
{'type': 'object', 'required': ['item_id'], 'properties': {'item_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['queue_item_id'], 'properties': {'item_id': {'type': 'integer'}, 'mms_map': {'type': 'array', 'items': {'type': 'string'}}, 'printer_id': {'type': 'integer'}, 'queue_item_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {}}
输入模式
{'type': 'object', 'required': ['file'], 'properties': {'file': {'type': 'string'}}}
输入模式
{'type': 'object', 'required': ['event'], 'properties': {'event': {'enum': ['test', 'job.started', 'job.paused', 'job.resumed', 'job.cancelled', 'job.done', 'job.failed', 'job.bed_cleared', 'job.objects_skipped', 'printer.autoprint_state_changed', 'printer.nozzle_size_changed', 'printer.material_changed', 'printer.custom_tag_assigned', 'printer.custom_tag_detached', 'printer.out_of_order_state_changed', 'company.autoprint_state_changed', 'queue.add_item', 'queue.delete_item', 'queue.empty_queue', 'queue.move_item', 'queue.revive_item', 'queue.item_pending_approval', 'queue.item_approved', 'queue.item_denied', 'filament.create', 'filament.update', 'filament.delete', 'filament.assigned', 'filament.unassigned', 'printer.ai_state_changed', 'organization.user_signup', 'organization.user_pending', 'printer.ai_failure_detected', 'printer.ai_failure_false_positive', 'printer.autoprint_max_cycles', 'balance.charged', 'balance.refunded', 'balance.topped_up', 'balance.adjusted', 'quota.request_new', 'quota.request_resolved', 'quota.adjusted', 'quota.reset', 'todo_list.daily_digest', 'partner.request_submitted', 'partner.request_resolved', 'maintenance.job_created', 'maintenance.job_started', 'maintenance.job_completed', 'maintenance.job_cancelled', 'maintenance.job_overdue', 'maintenance.job_reopened', 'maintenance.problem_reported', 'maintenance.problem_resolved', 'maintenance.low_stock', 'maintenance.task_completed', 'maintenance.task_skipped', 'maintenance.schedule_created', 'maintenance.schedule_updated', 'maintenance.schedule_deleted', 'maintenance.job_updated', 'maintenance.job_deleted', 'maintenance.spare_part_created', 'maintenance.spare_part_updated', 'maintenance.spare_part_deleted', 'maintenance.stock_adjusted'], 'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1}, 'version': {'type': 'integer', 'maximum': 1, 'minimum': 1}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'axes': {'type': 'string', 'default': 'X Y Z', 'description': 'Axes to home, space-separated. Examples: "X Y Z" (all), "X Y" (XY only), "Z" (Z only)'}, 'printer_id': {'type': 'integer', 'minimum': 1, 'description': 'The printer IDs (comma-separated for multiple)'}, 'snippet_id': {'type': 'integer', 'description': 'ID of a gcode snippet to send. Either gcode, macro, or snippet_id is required.'}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'mode': {'enum': ['autoprint'], 'type': 'string'}, 'printer_id': {'type': 'string'}}}
输入模式
{'type': 'object', 'required': ['item_id'], 'properties': {'item_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['page', 'page_size'], 'properties': {'page': {'type': 'integer'}, 'search': {'type': 'string', 'maxLength': 128}, 'sort_id': {'type': 'string'}, 'end_date': {'type': 'number'}, 'sort_dir': {'enum': ['asc', 'desc'], 'type': 'string'}, 'page_size': {'type': 'integer'}, 'start_date': {'type': 'number'}}}
输入模式
{'type': 'object', 'required': ['category'], 'properties': {'category': {'enum': ['print', 'user', 'printer', 'filament', 'maintenance_job', 'maintenance_problem', 'maintenance_task', 'maintenance_inventory'], 'type': 'string'}, 'subCategory': {'enum': ['print_queue', 'print_job', 'user_file', 'user_file_printable', 'user_file_non_printable', 'user_file_vector'], 'type': 'string'}, 'includeDisabled': {'enum': ['true', 'false', '1', '0'], 'type': 'string'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {}}
输入模式
{'type': 'object', 'required': [], 'properties': {'brand': {'type': 'string', 'description': 'Brand name substring'}, 'color': {'type': 'string', 'description': 'Color substring — matches hex, name, or color group'}, 'empty': {'type': 'boolean', 'description': 'true = only empty spools; false = only non-empty spools'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Cap on number of spools returned after sorting/filtering. Use this with sort_by to grab e.g. the 3 newest.'}, 'compact': {'type': 'boolean', 'default': True, 'description': '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_by': {'enum': ['created', 'last_used', 'left', 'brand', 'color'], 'type': 'string', 'description': 'Field to sort by. Defaults to created (newest first).'}, 'assigned': {'type': 'boolean', 'description': 'true = only spools assigned to a printer; false = only unassigned spools'}, 'sort_dir': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction. Defaults to desc.'}, 'printer_id': {'type': 'integer', 'description': 'Only spools assigned to this printer id'}, 'material_type': {'type': 'string', 'description': 'Material type substring (e.g. "PLA", "PETG")'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'f': {'type': 'integer', 'description': 'Folder id to list (0 or omitted = root)'}, 'limit': {'type': 'integer', 'description': 'Cap on returned files (1-500). Useful with sort_by for "5 largest files" or "10 most recent".'}, 'search': {'type': 'string', 'description': '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.'}, 'compact': {'type': 'boolean', 'default': True, 'description': '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_by': {'enum': ['name', 'size', 'created'], 'type': 'string', 'description': "Sort files by this field (folders are not affected). Default: repository order (user's saved files-page sort)."}, 'sort_dir': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction; default desc (newest/largest first).'}, 'has_gcode': {'type': 'boolean', 'description': 'true = only files with a parsed G-code analysis (printable); false = only non-printable files (models, etc.)'}, 'printer_id': {'type': 'integer', 'description': 'Only return files compatible with this printer (full compatibility check, not just model)'}, 'global_search': {'type': 'boolean', 'description': 'If true (default), search recursively across all folders instead of only the current one'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'page': {'type': 'integer', 'minimum': 1, 'description': 'Page number (1-based).'}, 'search': {'type': 'string', 'description': 'Substring match over job title, description and printer name.'}, 'status': {'enum': ['scheduled', 'in_progress', 'completed', 'cancelled'], 'type': 'string', 'description': 'Filter by stored job status. "overdue" is not a stored status and is rejected here — it is derived from scheduled_date at read time.'}, 'sort_id': {'enum': ['created_at', 'scheduled_date', 'status', 'priority', 'printer', 'title'], 'type': 'string', 'description': 'Sort field; default created_at.'}, 'sort_dir': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction; default desc.'}, 'page_size': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Jobs per page, 1-100. Defaults to 10 over MCP; job records are large.'}, 'printer_id': {'type': 'integer', 'description': 'Only jobs for this printer. Takes precedence over printer_ids.'}, 'printer_ids': {'type': 'string', 'description': 'Only jobs for these printers, as a comma-separated list of ids ("4,9,12"). Ignored when printer_id is set.'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'page': {'type': 'integer', 'minimum': 1, 'description': 'Page number (1-based).'}, 'search': {'type': 'string', 'description': 'Substring match over problem description, printer name, problem type name and reporter name.'}, 'status': {'enum': ['open', 'acknowledged', 'resolved'], 'type': 'string', 'description': 'Filter by problem status. Use "open" for what still needs attention.'}, 'sort_id': {'enum': ['created_at', 'status', 'printer', 'problem_type'], 'type': 'string', 'description': 'Sort field; default created_at.'}, 'sort_dir': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction; default desc (newest first).'}, 'page_size': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Problems per page, 1-100. Defaults to 10 over MCP.'}, 'printer_id': {'type': 'integer', 'description': 'Only problems reported against this printer.'}, 'problem_type_id': {'type': 'integer', 'description': 'Only problems of this problem type.'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'page': {'type': 'integer', 'minimum': 1}, 'status': {'type': 'string'}, 'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'page': {'type': 'integer', 'description': 'Page number (1-based) when paginating beyond limit/page_size.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter printers that have any of the given tag names'}, 'limit': {'type': 'integer', 'description': 'Cap on results (1-100). Alias for page_size. Use this with sort_by for "top N" queries.'}, 'search': {'type': 'string', 'maxLength': 256}, 'status': {'type': 'array', 'items': {'enum': ['online', 'offline', 'idle', 'was_printing_when_offline', 'in_maintenance', 'print_pending', 'can_accept_commands', 'awaiting_bed_clear', 'printing', 'operational', 'paused', 'pausing', 'resuming', 'cancelling', 'error', 'downloading', 'unknown'], 'type': 'string'}, 'description': '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?".'}, 'compact': {'type': 'boolean', 'default': True, 'description': '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_by': {'enum': ['name', 'sku', 'mac', 'created', 'status', 'last_online'], 'type': 'string', 'description': 'Sort by this field. Default: stable (no sort).'}, 'sort_id': {'type': 'string'}, 'group_id': {'type': 'integer', 'description': 'Only return printers in this printer group'}, 'order_by': {'enum': ['status', 'name', 'online', 'last_online', 'ui', 'created'], 'type': 'string'}, 'sort_dir': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction; default asc when sort_by is set.'}, 'page_size': {'type': 'integer', 'maximum': 25, 'minimum': 1}, 'job_columns': {'type': 'string'}, 'out_of_order': {'type': 'boolean', 'description': 'If true, only out-of-order printers; if false, only in-order printers (enterprise feature)'}, 'printer_columns': {'type': 'string'}, 'filament_columns': {'type': 'string'}}}
输入模式
{'type': 'object', 'required': ['page', 'page_size'], 'properties': {'page': {'type': 'integer', 'description': 'Page number (1-based)'}, 'limit': {'type': 'integer', 'description': 'Cap on results per page (1-100). Alias for page_size.'}, 'search': {'type': 'string', 'description': 'Filename / UID / custom-field substring search'}, 'compact': {'type': 'boolean', 'default': True, 'description': '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_by': {'enum': ['filename', 'dates', 'status', 'cost'], 'type': 'string', 'description': 'Sort by this field. Default: started date desc (newest first).'}, 'sort_id': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'enum': ['0', '1', '2'], 'type': 'integer'}}, 'end_date': {'type': 'string', 'description': 'Latest start (ISO-8601)'}, 'sort_dir': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction; default desc.'}, 'spool_id': {'type': 'integer', 'description': 'Only jobs that used this filament spool'}, 'user_ids': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Only jobs started by these users (requires VIEW_ALL_PRINT_HISTORY)'}, 'page_size': {'type': 'integer', 'description': 'Items per page (1-100)'}, 'queue_job': {'type': 'integer', 'minimum': 1}, 'start_date': {'type': 'string', 'description': 'Earliest start (ISO-8601)'}, 'printer_ids': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Only jobs from these printer ids'}, 'machine_types': {'type': 'array', 'items': {'type': 'string', 'maxLength': 32}}, 'printer_types': {'type': 'array', 'items': {'type': 'integer'}}, 'printer_groups': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Only jobs from printers in these groups'}, 'archived_status': {'enum': ['null', 'archived', 'both'], 'type': 'string', 'description': 'null (default): hide archived; archived: only archived; both: include archived'}, 'accepted_statuses': {'type': 'array', 'items': {'enum': ['ongoing', 'finished', 'failed', 'cancelled'], 'type': 'string'}, 'description': 'Filter by job status. Multiple values OR-matched.'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'page': {'type': 'integer'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Match items that have any of the given tag names'}, 'group': {'type': 'integer', 'minimum': 0, 'description': 'Only return items in this queue group (0 = the ungrouped bucket)'}, 'search': {'type': 'string', 'description': 'Filename substring search'}, 'compact': {'type': 'boolean', 'default': True, 'description': '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_by': {'enum': ['sort_position', 'created', 'name', 'approval_status'], 'type': 'string', 'description': "Sort by this field. Default: sort_position (ascending — matches the queue's display order)."}, 'sort_dir': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction; default asc.'}, 'page_size': {'type': 'integer', 'description': 'Items per page (1-200). Use this as the result-size cap.'}, 'printer_id': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Only return queue items assigned to (via for_printers) any of these printer ids'}, 'added_after': {'type': 'string', 'description': 'Items created strictly after this ISO-8601 date'}, 'added_before': {'type': 'string', 'description': 'Items created strictly before this ISO-8601 date'}, 'custom_fields': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Custom field uuid (from list_custom_fields_for)'}, 'value': {'description': 'Exact-match value'}, 'contains': {'type': 'string', 'description': 'Case-insensitive substring match on text fields'}}}, 'description': '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.'}, 'approval_status': {'enum': ['not_required', 'pending', 'approved', 'denied', 'revision'], 'type': 'string', 'description': 'Filter by approval status. Default excludes denied.'}, 'newer_than_days': {'type': 'integer', 'description': 'Items created within the last this many days'}, 'older_than_days': {'type': 'integer', 'description': 'Items created more than this many days ago'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'file_id': {'type': 'string'}, 'item_id': {'type': 'integer', 'minimum': 1}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'item_id': {'type': 'integer', 'minimum': 1}}}
输入模式
{'type': 'object', 'required': ['page', 'page_size'], 'properties': {'page': {'type': 'integer', 'minimum': 1}, 'page_size': {'type': 'integer'}, 'printer_ids': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'page': {'type': 'integer', 'minimum': 1, 'description': 'Page number (1-based).'}, 'search': {'type': 'string', 'description': 'Substring match over part name, SKU, description and category.'}, 'sort_id': {'enum': ['name', 'quantity', 'category', 'sku', 'cost_per_unit', 'status'], 'type': 'string', 'description': 'Sort field; default name.'}, 'category': {'type': 'string', 'description': 'Exact spare-part category match.'}, 'sort_dir': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction; default asc.'}, 'page_size': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Parts per page, 1-100; default 25.'}, 'stock_status': {'enum': ['in_stock', 'low_stock', 'out_of_stock'], 'type': 'string', 'description': "Filter by derived stock state. low_stock means at or below the part's threshold but not yet zero."}, 'printer_brand': {'type': 'string', 'description': 'Only parts that fit this printer brand.'}, 'printer_model_ids': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Only parts that fit these printer models.'}}}
输入模式
{'type': 'object', 'required': ['filament_id'], 'properties': {'dried_at': {'type': 'string'}, 'filament_id': {'type': 'integer', 'minimum': 1, 'description': 'The filament IDs (comma-separated for multiple)'}}}
输入模式
{'type': 'object', 'required': ['model'], 'properties': {'model': {'type': 'string', 'maxLength': 255, 'minLength': 1}, 'gcodeAnalysis': {'type': 'array', 'items': {'type': 'string'}}}}
输入模式
{'type': 'object', 'required': ['files', 'folder'], 'properties': {'files': {'type': 'string'}, 'folder': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['folder', 'target'], 'properties': {'folder': {'type': 'integer'}, 'target': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['printer_id', 'direction', 'distance'], 'properties': {'speed': {'type': 'number', 'description': 'Movement speed in mm/min. If not specified, uses printer default.'}, 'distance': {'type': 'number', 'description': 'Distance to move in millimeters'}, 'direction': {'enum': ['X', 'X-', 'Y', 'Y-', 'Z', 'Z-'], 'type': 'string', 'description': 'Axis and direction to move. Use axis letter, optionally with minus for negative. Examples: "X" (+X), "X-" (-X), "Y", "Y-", "Z", "Z-"'}, 'printer_id': {'type': 'integer', 'minimum': 1, 'description': 'The printer IDs (comma-separated for multiple)'}, 'snippet_id': {'type': 'integer', 'description': 'ID of a gcode snippet to send. Either gcode, macro, or snippet_id is required.'}}}
输入模式
{'type': 'object', 'required': ['jobs', 'target_group_id'], 'properties': {'jobs': {'type': 'string'}, 'target_group_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'printer_id': {'type': 'integer', 'minimum': 1, 'description': 'The printer IDs (comma-separated for multiple)'}}}
输入模式
{'type': 'object', 'required': [], 'properties': {'job': {'type': 'integer', 'minimum': 1}, 'jobs': {'type': 'string'}}}
输入模式
{'type': 'object', 'required': ['to', 'group_id'], 'properties': {'to': {'type': 'integer', 'minimum': 0}, 'group_id': {'type': 'integer', 'minimum': 0}}}
输入模式
{'type': 'object', 'required': ['queue_item_id', 'to'], 'properties': {'to': {'type': 'integer', 'minimum': 1}, 'from': {'type': 'integer', 'minimum': 1}, 'queue_item_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'printer_id': {'type': 'string', 'description': 'Comma-separated printer id(s) whose scheduled print should move.'}, 'schedule_for': {'type': 'string', 'description': 'New absolute instant (ISO 8601), at least 1 minute and at most 7 days ahead. Omit or null to start the print now.'}, 'expected_job_uid': {'type': 'string', 'description': 'Job uid returned by list_scheduled_prints. The action is refused if that printer now holds a different pending print.'}}}
输入模式
{'type': 'object', 'required': ['queue_item_id'], 'properties': {'comment': {'type': 'string', 'maxLength': 2000}, 'queue_item_id': {'type': 'integer', 'minimum': 1}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'printer_id': {'type': 'integer', 'minimum': 1, 'description': 'The printer IDs (comma-separated for multiple)'}}}
输入模式
{'type': 'object', 'required': ['queue_item_id'], 'properties': {'group': {'type': 'integer'}, 'amount': {'type': 'integer', 'minimum': 1}, 'position': {'enum': ['top', 'bottom'], 'type': 'string'}, 'priority': {'enum': ['normal', 'low'], 'type': 'string'}, 'queue_item_id': {'type': 'integer'}, 'position_index': {'type': 'integer', 'minimum': 0}}}
输入模式
{'type': 'object', 'required': [], 'properties': {}}
输入模式
{'type': 'object', 'required': ['queue_item_id'], 'properties': {'comment': {'type': 'string', 'maxLength': 2000}, 'queue_item_id': {'type': 'integer', 'minimum': 1}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'gcode': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 200, 'minItems': 1, 'description': 'Array of G-code commands to send. Either gcode, macro, or snippet_id is required.'}, 'macro': {'enum': ['is_start', 'is_end', 'is_cancel', 'is_pause', 'is_resume', 'move_axis', 'change_print_speed', 'change_flow_rate', 'is_home', 'set_tool_temperature', 'set_bed_temperature', 'set_chamber_temperature', 'motors_onoff', 'fans_onoff', 'baby_stepping', 'z_offset_cal_start', 'z_offset_cal_nudge', 'z_offset_cal_save', 'is_autoprint_clear', 'is_autoprint_on_end'], 'type': 'string', 'description': 'Predefined macro name to execute. Either gcode, macro, or snippet_id is required.'}, 'printer_id': {'type': 'integer', 'minimum': 1, 'description': 'The printer IDs (comma-separated for multiple)'}, 'snippet_id': {'type': 'integer', 'description': 'ID of a gcode snippet to send. Either gcode, macro, or snippet_id is required.'}, 'macro_context': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional context data for macro execution.'}}}
输入模式
{'type': 'object', 'required': ['category', 'entityIds', 'values'], 'properties': {'values': {'type': 'array', 'items': {'type': 'string'}}, 'category': {'enum': ['print', 'user', 'printer', 'filament', 'maintenance_job', 'maintenance_problem', 'maintenance_task', 'maintenance_inventory'], 'type': 'string'}, 'entityIds': {'type': 'array', 'items': {'type': 'string'}}, 'subCategory': {'enum': ['print_queue', 'print_job', 'user_file', 'user_file_printable', 'user_file_non_printable', 'user_file_vector'], 'type': 'string'}}}
输入模式
{'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}, 'groups': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}}, 'models': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}}, 'printers': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}}}}
输入模式
{'type': 'object', 'required': ['printer_id', 'speed'], 'properties': {'speed': {'type': 'integer', 'maximum': 255, 'minimum': 0, 'description': 'Fan speed from 0 (off) to 255 (full speed). Use 0 to turn fans off.'}, 'printer_id': {'type': 'integer', 'minimum': 1, 'description': 'The printer IDs (comma-separated for multiple)'}, 'snippet_id': {'type': 'integer', 'description': 'ID of a gcode snippet to send. Either gcode, macro, or snippet_id is required.'}}}
输入模式
{'type': 'object', 'required': ['printer_id', 'enabled'], 'properties': {'enabled': {'enum': ['on', 'off'], 'type': 'string', 'description': 'Motor state: "on" to enable motors (lock axes), "off" to disable (allow manual movement)'}, 'printer_id': {'type': 'integer', 'minimum': 1, 'description': 'The printer IDs (comma-separated for multiple)'}, 'snippet_id': {'type': 'integer', 'description': 'ID of a gcode snippet to send. Either gcode, macro, or snippet_id is required.'}}}
输入模式
{'type': 'object', 'required': ['printer_id'], 'properties': {'bed': {'type': 'integer', 'maximum': 500, 'minimum': 0, 'description': 'Target heated bed temperature in degrees Celsius. 0 turns the bed heater off. Values above the printer model maximum are clamped. At least one of tool, bed or chamber is required.'}, 'tool': {'type': 'integer', 'maximum': 1000, 'minimum': 0, 'description': 'Target nozzle temperature in degrees Celsius. 0 turns the hotend off. Values above the printer model maximum are clamped. At least one of tool, bed or chamber is required.'}, 'chamber': {'type': 'integer', 'maximum': 200, 'minimum': 0, 'description': 'Target chamber temperature in degrees Celsius. 0 turns the chamber heater off. Skipped for printers without an actively heated chamber. At least one of tool, bed or chamber is required.'}, 'printer_id': {'type': 'integer', 'minimum': 1, 'description': 'The printer IDs (comma-separated for multiple)'}, 'tool_index': {'type': 'integer', 'maximum': 15, 'minimum': 0, 'description': 'Zero-based tool index for multi-tool printers. Requires tool to be set. Defaults to 0.'}}}
输入模式
{'type': 'object', 'required': ['task_id'], 'properties': {'task_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['jobs'], 'properties': {'jobs': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}}}}
输入模式
{'type': 'object', 'required': ['filament_id'], 'properties': {'source': {'enum': ['changer', 'tag', 'filamentpage', 'viewspool', 'startprint', 'slicer', 'codescanner', 'slot_action'], 'type': 'string'}, 'filament_id': {'type': 'integer', 'minimum': 1, 'description': 'The filament ID'}, 'location_id': {'type': 'integer', 'minimum': 1}}}
输入模式
{'type': 'object', 'required': ['task_id'], 'properties': {'task_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['task_id'], 'properties': {'task_id': {'type': 'integer'}}}
输入模式
{'type': 'object', 'required': ['item_id'], 'properties': {'name': {'type': 'string', 'maxLength': 256, 'minLength': 1}, 'item_id': {'type': 'string'}, 'analysis': {'type': 'array', 'items': {'type': 'string'}}, 'printers': {'type': 'string'}, 'printer_groups': {'type': 'string'}, 'printer_models': {'type': 'string'}, 'remove_thumbnail': {'type': 'boolean'}}}
输入模式
{'type': 'object', 'required': ['item_id', 'comment'], 'properties': {'comment': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'item_id': {'type': 'integer', 'minimum': 1}}}
输入模式
{'type': 'object', 'required': ['queue_item_id'], 'properties': {'note': {'type': 'string', 'maxLength': 255}, 'time': {'type': 'integer', 'maximum': 100000000, 'minimum': 0}, 'amount': {'type': 'integer', 'minimum': 0}, 'paused': {'type': 'boolean'}, 'printed': {'type': 'integer', 'minimum': 1}, 'deadline': {'type': 'string', 'format': 'date'}, 'infinite': {'type': 'boolean'}, 'priority': {'enum': ['normal', 'low'], 'type': 'string'}, 'log_print': {'type': 'boolean'}, 'for_groups': {'type': 'string'}, 'for_models': {'type': 'string'}, 'persistent': {'type': 'boolean'}, 'for_printers': {'type': 'string'}, 'queue_item_id': {'type': 'integer'}, 'material_usage': {'type': 'number', 'maximum': 100000000, 'minimum': 0}, 'max_concurrent_printers': {'type': 'integer', 'minimum': 1}}}
近期工具变更
类似的 MCP 服务器
askacharge.com — EV charging network
Operates EV charging networks through OCPP, including charger status, remote commands, sessions, customers, tariffs, pricing, and…
Dreambooth Studio
Provides photobooth operators with session, revenue, wallet, credit, gallery, project, device-status, and product-documentation i…
AstraNL
Enables discovery, registration, monitoring, and evidence retrieval for real-world tasks executed in the Netherlands by people, c…
INMETRO: Cronotacógrafo (Detalhes)
Looks up official INMETRO cronotachograph certification and detail records.
site
Collects and submits a consented enquiry for generator servicing to human providers; it does not provide guaranteed quotes or pro…
RegEvidenceHub CableCert
Inspects and audits structured-cabling certification CSV evidence, reconciling cable IDs and reporting exceptions.
site
Collects and submits a consent-confirmed enquiry to human providers offering commercial heat pump installation.
AdButler
Manages AdButler advertisers, campaigns, ad items, audiences, zones, creatives, catalogs, and advertising reports.