_ registry / mcp streamable-http · checked 2h ago

SimplyPrint MCP

https://simplyprint.io

Registry code: 92936a3bf6f93db7

api record

SimplyPrint MCP Server provides tools for managing your 3D printers, print queue, files, and filament. Available tools depend on your granted scopes.

endpoint
https://simplyprint.io/api/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing
karma
0 · newcomer
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
131ms

last good check

priced tools
0

of 89 tools

_ answered our checks, 90 days 2 checks · signed record
  • unknown → live
_ used through this hub 30 days

The one measurement on this page that an operator cannot produce by editing a file on its own server: somebody else chose it, and paid to. Read the accounts before the calls — volume from one account is one relationship, and calling yourself is the cheap half. Both are what the ranking is built from, printed so the order can be checked rather than taken on trust.

accounts
0

distinct, expensive to fake

calls served
0

successful, last 30 days

_ what it can do 89 tools
89 auth-required 89 of 89 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • get_account_statistics auth-required 4h ago

    Account-level print statistics (success rate, filament used, print time, cost) with optional date range and user/printer filters.

    mcp-tool

    {
      "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
          }
        }
      }
    }
    arguments 40 lines
  • get_filament auth-required 2h ago

    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").

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 23 lines
  • get_filament_history auth-required 2h ago

    Retrieve the usage history of a filament spool.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 25 lines
  • get_maintenance_dashboard auth-required 2h ago

    Whole-account maintenance overview in one call: counts (in maintenance, scheduled, overdue, open problems, low/out of stock), the single next due job, the 10 most recent jobs, per-printer status and the active maintenance plans. Good for "how is the farm doing"; use list_maintenance_jobs for anything that needs filtering, paging or more than the 10 most recent jobs. Note low_stock_parts is silently [] when the account lacks the Maintenance Inventory feature — list_spare_parts says so explicitly instead.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • get_farm_overview auth-required 4h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • get_next_queue_items_for_printers auth-required never probed

    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.

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 17 lines
  • list_queue_groups auth-required never probed

    List all queue groups in the user's account.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "item_id": {
          "type": "integer",
          "minimum": 1
        }
      }
    }
    arguments 10 lines
  • save_queue_group auth-required never probed

    Create a new queue group or update an existing one.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • reorder_queue_group auth-required never probed

    Move a queue group to a new position.

    mcp-tool

    {
      "type": "object",
      "required": [
        "to",
        "group_id"
      ],
      "properties": {
        "to": {
          "type": "integer",
          "minimum": 0
        },
        "group_id": {
          "type": "integer",
          "minimum": 0
        }
      }
    }
    arguments 17 lines
  • approve_queue_item auth-required never probed

    Approve one or more pending/revision/denied queue items, with optional comment.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "job": {
          "type": "integer",
          "minimum": 1
        },
        "jobs": {
          "type": "string"
        },
        "comment": {
          "type": "string",
          "maxLength": 2000
        }
      }
    }
    arguments 17 lines
  • deny_queue_item auth-required never probed

    Deny a pending queue item, either removing it or requesting revisions. Include a comment explaining the decision.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "job": {
          "type": "integer",
          "minimum": 1
        },
        "jobs": {
          "type": "string"
        },
        "remove": {
          "type": "boolean"
        },
        "comment": {
          "type": "string",
          "maxLength": 2000
        }
      }
    }
    arguments 20 lines
  • send_back_for_revision auth-required never probed

    Revoke approval on an already-approved item and send it back to the submitter for revisions.

    mcp-tool

    {
      "type": "object",
      "required": [
        "queue_item_id"
      ],
      "properties": {
        "comment": {
          "type": "string",
          "maxLength": 2000
        },
        "queue_item_id": {
          "type": "integer",
          "minimum": 1
        }
      }
    }
    arguments 16 lines
  • resubmit_queue_item auth-required never probed

    Resubmit a denied or revision-requested queue item back to pending approval. File-replacement is not supported via MCP.

    mcp-tool

    {
      "type": "object",
      "required": [
        "queue_item_id"
      ],
      "properties": {
        "comment": {
          "type": "string",
          "maxLength": 2000
        },
        "queue_item_id": {
          "type": "integer",
          "minimum": 1
        }
      }
    }
    arguments 16 lines
  • list_queue_comments auth-required never probed

    Retrieve all approval comments on a queue item or user file.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "file_id": {
          "type": "string"
        },
        "item_id": {
          "type": "integer",
          "minimum": 1
        }
      }
    }
    arguments 13 lines
  • add_queue_comment auth-required never probed

    Add a comment (general or feedback) to a queue item or user file. File attachments are not supported via MCP.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "type": {
          "type": "string"
        },
        "comment": {
          "type": "string",
          "maxLength": 5000
        },
        "file_id": {
          "type": "string"
        },
        "item_id": {
          "type": "integer",
          "minimum": 1
        }
      }
    }
    arguments 20 lines
  • delete_queue_comment auth-required never probed

    Delete an approval comment you authored (or any comment if you have the permission).

    mcp-tool

    {
      "type": "object",
      "required": [
        "item_id"
      ],
      "properties": {
        "item_id": {
          "type": "integer",
          "minimum": 1
        }
      }
    }
    arguments 12 lines
  • set_custom_field_values auth-required never probed

    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.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 46 lines
  • list_files auth-required never probed

    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.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 52 lines
  • get_folder auth-required never probed

    Get a folder's details including permissions.

    mcp-tool

    {
      "type": "object",
      "required": [
        "item_id"
      ],
      "properties": {
        "item_id": {
          "type": "integer",
          "minimum": 1
        }
      }
    }
    arguments 12 lines
  • match_file_to_printers auth-required never probed

    Find which printer models in the account are compatible with a given file.

    mcp-tool

    {
      "type": "object",
      "required": [
        "model"
      ],
      "properties": {
        "model": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        },
        "gcodeAnalysis": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
    arguments 19 lines
  • set_file_printers auth-required never probed

    Set the printers/models/groups a file is assigned to.

    mcp-tool

    {
      "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
          }
        }
      }
    }
    arguments 36 lines
  • adjust_filament_weight auth-required never probed

    Adjust the remaining weight of a filament spool (e.g. after manual weighing).

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 50 lines
  • assign_filament auth-required never probed

    Assign a filament spool to a printer (or a specific extruder slot).

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 39 lines
  • unassign_filament auth-required never probed

    Remove a filament spool from its printer assignment.

    mcp-tool

    {
      "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
        }
      }
    }
    arguments 30 lines
  • list_filament_colors auth-required never probed

    List available filament colors (for UI pickers or picking similar spools).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • list_brand_filaments auth-required never probed

    List filament products from a specific brand.

    mcp-tool

    {
      "type": "object",
      "required": [
        "item_id"
      ],
      "properties": {
        "item_id": {
          "type": "integer"
        }
      }
    }
    arguments 11 lines
  • list_print_jobs auth-required never probed

    List past print jobs with pagination, filters, and sort. Compact mode (default) drops gcodeAnalysis, filament breakdowns, and panel-only flags.

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 134 lines
  • get_print_job auth-required never probed

    Get detailed info for a specific print job.

    mcp-tool

    {
      "type": "object",
      "required": [
        "item_id"
      ],
      "properties": {
        "extra": {
          "type": "string"
        },
        "item_id": {
          "type": "string",
          "minLength": 10
        },
        "getcustomfields": {
          "type": "string"
        }
      }
    }
    arguments 18 lines
  • get_referral_stats auth-required never probed

    Referral program statistics: conversions, earnings, pending payout.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • get_queue_item_cost auth-required never probed

    Calculate the estimated cost of a queue item, optionally for a specific printer.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 23 lines
  • list_pending_queue_items auth-required never probed

    List queue items pending approval (status: PENDING, DENIED, or REVISION).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "page": {
          "type": "integer",
          "minimum": 1
        },
        "status": {
          "type": "string"
        },
        "per_page": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1
        }
      }
    }
    arguments 18 lines
  • update_queue_comment auth-required never probed

    Edit an approval comment you authored.

    mcp-tool

    {
      "type": "object",
      "required": [
        "item_id",
        "comment"
      ],
      "properties": {
        "comment": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1
        },
        "item_id": {
          "type": "integer",
          "minimum": 1
        }
      }
    }
    arguments 18 lines
  • list_custom_fields auth-required never probed

    List custom field definitions with pagination and search.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 35 lines
  • uncomplete_maintenance_task auth-required never probed

    Reopen a task that was ticked off by mistake. The undo for complete_maintenance_task.

    mcp-tool

    {
      "type": "object",
      "required": [
        "task_id"
      ],
      "properties": {
        "task_id": {
          "type": "integer"
        }
      }
    }
    arguments 11 lines
  • pause_print auth-required never probed

    Pause the current print on a printer

    mcp-tool

    {
      "type": "object",
      "required": [
        "printer_id"
      ],
      "properties": {
        "printer_id": {
          "type": "integer",
          "minimum": 1,
          "description": "The printer IDs (comma-separated for multiple)"
        }
      }
    }
    arguments 13 lines
  • get_next_queue_item auth-required never probed

    Find the best-matching queue item(s) for a set of printers using SimplyPrint's compatibility matcher.

    mcp-tool

    {
      "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"
          }
        }
      }
    }
    arguments 66 lines
  • delete_queue_group auth-required never probed

    Delete a queue group. Optionally move its items to another group via move_to.

    mcp-tool

    {
      "type": "object",
      "required": [
        "item_id"
      ],
      "properties": {
        "item_id": {
          "type": "integer",
          "minimum": 1
        },
        "move_to": {
          "type": "integer",
          "minimum": 0
        }
      }
    }
    arguments 16 lines
  • list_custom_fields_for auth-required never probed

    List custom field definitions for a specific entity category and optional sub-category (e.g. PRINT + PRINT_QUEUE for queue-item custom fields).

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 41 lines
  • estimate_file_cost auth-required 4h ago

    Estimate the print cost of a file, optionally for a specific printer.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 27 lines
  • create_folder auth-required never probed

    Create a new folder (or edit an existing one with optional org-level permissions).

    mcp-tool

    {
      "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
        }
      }
    }
    arguments 30 lines
  • mark_filament_dried auth-required never probed

    Mark a filament spool as freshly dried (resets humidity tracking).

    mcp-tool

    {
      "type": "object",
      "required": [
        "filament_id"
      ],
      "properties": {
        "dried_at": {
          "type": "string"
        },
        "filament_id": {
          "type": "integer",
          "minimum": 1,
          "description": "The filament IDs (comma-separated for multiple)"
        }
      }
    }
    arguments 16 lines
  • archive_print_job auth-required never probed

    Archive a print job (hide from default history listings).

    mcp-tool

    {
      "type": "object",
      "required": [
        "jobs"
      ],
      "properties": {
        "jobs": {
          "type": "array",
          "items": {
            "type": "integer",
            "minimum": 1
          }
        },
        "reason": {
          "type": "string",
          "maxLength": 500
        }
      }
    }
    arguments 19 lines
  • unarchive_print_job auth-required never probed

    Restore an archived print job.

    mcp-tool

    {
      "type": "object",
      "required": [
        "jobs"
      ],
      "properties": {
        "jobs": {
          "type": "array",
          "items": {
            "type": "integer",
            "minimum": 1
          }
        }
      }
    }
    arguments 15 lines
  • list_maintenance_problems auth-required never probed

    List reported printer problems with their description, problem type, reporter, status and age — get_maintenance_dashboard returns only an open-problem count, none of this. Returns 10 per page by default; raise page_size (max 100) or advance page.

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 56 lines
  • revive_queue_item auth-required never probed

    Bring a completed (done) queue item back to the active queue.

    mcp-tool

    {
      "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
        }
      }
    }
    arguments 36 lines
  • empty_queue auth-required never probed

    DESTRUCTIVE: Delete all items from the queue (optionally filtered by group or done-only). Confirm with the user before calling.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "group": {
          "type": "integer",
          "minimum": 1
        },
        "done_items": {
          "type": "boolean"
        }
      }
    }
    arguments 13 lines
  • inspect_printer_queue auth-required never probed

    Show which queue items match/miss a specific printer and why. Useful for diagnosing why a queue item will not print.

    mcp-tool

    {
      "type": "object",
      "required": [
        "printer_id"
      ],
      "properties": {
        "mode": {
          "enum": [
            "autoprint"
          ],
          "type": "string"
        },
        "printer_id": {
          "type": "string"
        }
      }
    }
    arguments 17 lines
  • complete_maintenance_job auth-required never probed

    Close a maintenance job as done. This RETURNS THE PRINTER TO THE AUTOPRINT ROTATION, so only call it when the work has actually been carried out - confirm with the user first. Optionally pass completion_summary, and resolve_problem_ids to close the problems this job fixed.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 24 lines
  • cancel_maintenance_job auth-required never probed

    Cancel a maintenance job that is not going to happen. If it was in progress this also returns the printer to the AutoPrint rotation. Not the same as completing it: no work is recorded and schedule counters are not reset.

    mcp-tool

    {
      "type": "object",
      "required": [
        "job_id"
      ],
      "properties": {
        "job_id": {
          "type": "integer"
        }
      }
    }
    arguments 11 lines
  • get_webhook_sample auth-required never probed

    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.

    mcp-tool

    {
      "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
        }
      }
    }
    arguments 89 lines
  • update_file auth-required never probed

    Update file metadata such as name and GCODE analysis.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 34 lines
  • skip_maintenance_task auth-required never probed

    Mark a task as skipped rather than done - it was not needed this time. Reversible with unskip_maintenance_task.

    mcp-tool

    {
      "type": "object",
      "required": [
        "task_id"
      ],
      "properties": {
        "task_id": {
          "type": "integer"
        }
      }
    }
    arguments 11 lines
  • unskip_maintenance_task auth-required never probed

    Undo a skip, putting the task back on the job as outstanding.

    mcp-tool

    {
      "type": "object",
      "required": [
        "task_id"
      ],
      "properties": {
        "task_id": {
          "type": "integer"
        }
      }
    }
    arguments 11 lines
  • assign_maintenance_task auth-required never probed

    Assign a maintenance task to a user, or pass no user_id to unassign it. Set notify true to tell them.

    mcp-tool

    {
      "type": "object",
      "required": [
        "task_id"
      ],
      "properties": {
        "notify": {
          "type": "boolean"
        },
        "task_id": {
          "type": "integer"
        },
        "user_id": {
          "type": "integer"
        }
      }
    }
    arguments 17 lines
  • list_printers auth-required never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 112 lines
  • get_printer auth-required never probed

    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.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 16 lines
  • resume_print auth-required never probed

    Resume a paused print on a printer

    mcp-tool

    {
      "type": "object",
      "required": [
        "printer_id"
      ],
      "properties": {
        "printer_id": {
          "type": "integer",
          "minimum": 1,
          "description": "The printer IDs (comma-separated for multiple)"
        }
      }
    }
    arguments 13 lines
  • cancel_print auth-required never probed

    Cancel the current print on a printer

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 43 lines
  • send_gcode auth-required never probed

    Send G-code commands to a printer

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 60 lines
  • create_print_job auth-required never probed

    Start a print job on one or more printers, now or at a chosen time. 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). Pass schedule_for to hold the print until a specific time instead ("print this tonight at 10pm", "start it tomorrow morning").

    mcp-tool

    {
      "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]}."
        }
      }
    }
    arguments 95 lines
  • set_printer_motors auth-required never probed

    Enable or disable the printer stepper motors

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 26 lines
  • list_scheduled_prints auth-required never probed

    List every print across the account that is waiting for a scheduled start time, soonest first. Use this for "what is scheduled tonight", "do I have anything queued up for tomorrow", or before rescheduling/cancelling so you can name the right printer. Returns printer, filename, scheduled_for and who scheduled it. Prints already released and starting are NOT listed here - use get_farm_overview for those.

    mcp-tool

    {
      "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
          }
        }
      }
    }
    arguments 23 lines
  • reschedule_print auth-required never probed

    Change when a scheduled print starts, or release it immediately. Pass schedule_for with a new absolute instant to move it; omit schedule_for (or send null) to start the print now. Only affects prints still waiting on a scheduled time - a print already staggered or downloading cannot be pushed back.

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 20 lines
  • cancel_scheduled_print auth-required never probed

    Cancel a print that has not started yet - either waiting for its scheduled time or waiting in a staggered start queue - and free the printer. This does NOT cancel a print that is already running; use cancel_print for that.

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 17 lines
  • home_printer auth-required never probed

    Home the printer axes (move to origin position)

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 22 lines
  • move_printer_axis auth-required never probed

    Move a printer axis to a relative position

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 39 lines
  • set_printer_fans auth-required never probed

    Control the printer cooling fans

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 24 lines
  • set_printer_temperatures auth-required never probed

    Set target temperatures (nozzle, bed and/or chamber) on one or more printers - works while idle and mid-print. Values above the printer model maximum are clamped; 0 turns a heater off.

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 37 lines
  • list_queue auth-required never probed

    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.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 109 lines
  • get_queue_item auth-required never probed

    Get details of a specific queue item

    mcp-tool

    {
      "type": "object",
      "required": [
        "item_id"
      ],
      "properties": {
        "item_id": {
          "type": "integer"
        }
      }
    }
    arguments 11 lines
  • remove_from_queue auth-required never probed

    Remove an item from the print queue

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "job": {
          "type": "integer",
          "minimum": 1
        },
        "jobs": {
          "type": "string"
        }
      }
    }
    arguments 13 lines
  • add_to_queue auth-required never probed

    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 and a tags object for material colour, nozzle, build plate, or custom tags (for example tags={"material":[{"color":"Red","hex":"#FF0000","nozzle":0,"ext":0}]}).

    mcp-tool

    {
      "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[]}}."
        }
      }
    }
    arguments 163 lines
  • update_queue_item auth-required never probed

    Update a queue item (amount, note, custom print time, material usage, printer assignments).

    mcp-tool

    {
      "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
        }
      }
    }
    arguments 69 lines
  • reorder_queue_item auth-required never probed

    Move a single queue item to a new 1-based position.

    mcp-tool

    {
      "type": "object",
      "required": [
        "queue_item_id",
        "to"
      ],
      "properties": {
        "to": {
          "type": "integer",
          "minimum": 1
        },
        "from": {
          "type": "integer",
          "minimum": 1
        },
        "queue_item_id": {
          "type": "integer"
        }
      }
    }
    arguments 20 lines
  • move_queue_item auth-required never probed

    Move one or more queue items to a different queue group.

    mcp-tool

    {
      "type": "object",
      "required": [
        "jobs",
        "target_group_id"
      ],
      "properties": {
        "jobs": {
          "type": "string"
        },
        "target_group_id": {
          "type": "integer"
        }
      }
    }
    arguments 15 lines
  • assign_tags auth-required never probed

    Assign or remove routing tags on a file, including material colour. Use file_id (the UserFile.uid from list_files) and material=[{color, hex, nozzle, ext}] for a colour tag. This tool targets files only (type defaults to 3).

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 139 lines
  • delete_folder auth-required never probed

    Delete one or more folders.

    mcp-tool

    {
      "type": "object",
      "required": [
        "folder"
      ],
      "properties": {
        "folder": {
          "type": "string"
        }
      }
    }
    arguments 11 lines
  • move_file auth-required never probed

    Move one or more files to a folder.

    mcp-tool

    {
      "type": "object",
      "required": [
        "files",
        "folder"
      ],
      "properties": {
        "files": {
          "type": "string"
        },
        "folder": {
          "type": "integer"
        }
      }
    }
    arguments 15 lines
  • move_folder auth-required never probed

    Move a folder to another location.

    mcp-tool

    {
      "type": "object",
      "required": [
        "folder",
        "target"
      ],
      "properties": {
        "folder": {
          "type": "integer"
        },
        "target": {
          "type": "integer"
        }
      }
    }
    arguments 15 lines
  • delete_file auth-required never probed

    Delete one or more files.

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": "string"
        }
      }
    }
    arguments 11 lines
  • get_slicer_settings_for_file auth-required never probed

    Retrieve slicer settings stored for a file.

    mcp-tool

    {
      "type": "object",
      "required": [
        "file"
      ],
      "properties": {
        "file": {
          "type": "string"
        }
      }
    }
    arguments 11 lines
  • list_filaments auth-required never probed

    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. Amount-remaining fields: report weight from leftGrams/totalGrams (grams) and percentLeft (%), NOT the raw total/left which are internal filament LENGTH in mm. density (g/cm³) is the value used for the gram conversion; densityIsEstimated=true means the spool has no material profile so a default density was assumed.

    mcp-tool

    {
      "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\")"
        }
      }
    }
    arguments 60 lines
  • list_maintenance_jobs auth-required never probed

    List maintenance jobs across the account with filters, paging and sorting — the tool for "what maintenance is outstanding, and on which printer". Each job carries its printer, priority, scheduled date, task progress, assignees and linked problems. Returns 10 per page by default; raise page_size (max 100) or advance page. IMPORTANT: a returned job status may read "overdue", but that value is DERIVED (a scheduled job whose scheduled_date has passed) and is NOT accepted by the status filter — ask for status "scheduled" and read each job's returned status, or use the dashboard's overdue count.

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 59 lines
  • get_printer_maintenance_profile auth-required never probed

    Everything known about one printer's maintenance: current status, health (last maintenance, days since, open problem count, active job), lifetime print and maintenance stats, the last 50 jobs, per-task completion history and spare parts consumed. The only source of a PREDICTED next-due date — when nothing is scheduled yet, health.next_scheduled_job is filled from the matching maintenance plan and carries is_predicted=true with a null id. Large response: ask for one printer at a time, and use get_maintenance_status_map for fleet-wide questions.

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 16 lines
  • get_maintenance_job auth-required never probed

    Full detail for one maintenance job: the task checklist with per-task completion, assignee and spare-part requirement, the printer's stats since its last maintenance, the problems linked to the job, and other unresolved problems on the same printer. Task checklists and spare-part requirements are available nowhere else over MCP. Pass the job id as job_id (list_maintenance_jobs returns it as "id"); each task's id is what the task tools take as task_id.

    mcp-tool

    {
      "type": "object",
      "required": [
        "job_id"
      ],
      "properties": {
        "job_id": {
          "type": "integer",
          "description": "Maintenance job id."
        }
      }
    }
    arguments 12 lines
  • list_spare_parts auth-required never probed

    List maintenance spare parts with stock level, low-stock threshold, SKU, category, cost and the printer models each part fits. Requires the Maintenance Inventory plan feature: without it this tool fails with an explicit "your account doesn't have access to this feature" error, so an empty list here always means the account genuinely has no matching parts. (get_maintenance_dashboard cannot tell you that — its low_stock_parts is silently [] both when the feature is missing and when stock is healthy.)

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 65 lines
  • get_maintenance_status_map auth-required never probed

    Cheapest fleet-wide maintenance check; takes no parameters. Returns an object keyed by printer id, each entry holding status (in_maintenance, due or scheduled) and next_scheduled_date. Only printers with a scheduled or in-progress job appear, so a printer that is absent has no maintenance outstanding and an empty object means nothing is scheduled anywhere. Follow up with get_printer_maintenance_profile for one printer, or list_maintenance_jobs for job-level detail.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {}
    }
    arguments 5 lines
  • start_maintenance_job auth-required never probed

    Move a scheduled maintenance job to in-progress, putting the printer into maintenance mode so AutoPrint stops sending it work. Only works on a job in "scheduled" status. This is the safe direction: it takes a printer OUT of rotation.

    mcp-tool

    {
      "type": "object",
      "required": [
        "job_id"
      ],
      "properties": {
        "job_id": {
          "type": "integer"
        }
      }
    }
    arguments 11 lines
  • complete_maintenance_task auth-required never probed

    Tick one task off a maintenance job. Does NOT complete the job or return the printer to the AutoPrint rotation - use complete_maintenance_job for that once every task is done. If the task is tied to a spare-part category you must pass selected_spare_part_id, or skip_spare_part true; completing it decrements that part's stock.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 23 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/92936a3bf6f93db7/badge.svg)](https://brick.blue/agent/92936a3bf6f93db7)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Own the domain? Prove it and the listing carries a verified badge here too: passport.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.