Skip to main content
Glama

SimplyPrint: 3D Print Farm Management

add_to_queue

Queue a file for printing. Pick exactly one file source: fileId (hex hash from the files.simplyprint.io Upload endpoint) or filesystem (UserFile.uid of an existing library file). Supports PRINT_QUEUE custom fields 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}]}).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNoTag-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.
groupNoQueue group id to add the item to. Use list_queue_groups to discover available groups.
amountNoNumber of copies to queue. Default 1.
fileIdNoHex bucket hash returned by the files.simplyprint.io Upload endpoint. Use this when the file was uploaded via the API (recommended for integrations).
positionNoWhere to insert: "top", "bottom", or a 1-based numeric position.
filesystemNoUserFile.uid of an existing library file (use list_files to discover). Either numeric id or UID string is accepted.
for_groupsNo
for_modelsNo
for_printersNo
custom_fieldsNoPRINT_QUEUE custom fields for the new queue item. Each entry: {customFieldId: string uuid, value: one-of {string, number, boolean, date, options[]}}.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / tags / description
      Added value: +"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."
    • removedInput schema / properties / tags / items
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / tags / properties
      Added value: +{
      +  "bedType": {
      +    "description": "Build-plate tag.",
      +    "properties": {
      +      "custom": {
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "type": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "custom": {
      +    "description": "Custom tag ids to assign.",
      +    "items": {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "type": "array"
      +  },
      +  "detach_tag_ids": {
      +    "description": "Custom tag ids to remove.",
      +    "items": {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "type": "array"
      +  },
      +  "material": {
      +    "description": "Material tags, one object per extruder. Set color and/or hex to tag a file by colour.",
      +    "items": {
      +      "properties": {
      +        "color": {
      +          "description": "Material colour name.",
      +          "type": "string"
      +        },
      +        "ext": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "hex": {
      +          "description": "Material colour as a hex value, e.g. #FF0000.",
      +          "type": "string"
      +        },
      +        "nozzle": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "type": {
      +          "description": "Filament profile id.",
      +          "type": "integer"
      +        },
      +        "width": {
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "nozzle": {
      +    "description": "Legacy single-nozzle size in millimetres.",
      +    "type": "number"
      +  },
      +  "nozzleData": {
      +    "description": "Nozzle data, one object per nozzle.",
      +    "items": {
      +      "properties": {
      +        "i": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "size": {
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "type": {
      +          "type": "string"
      +        },
      +        "volumeType": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "tag_id": {
      +    "description": "Legacy alias for a single custom tag id.",
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  "tag_ids": {
      +    "description": "Alias for custom.",
      +    "items": {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "type": "array"
      +  }
      +}
    • changedInput schema / properties / tags / type
      Previous value: -"array"New value: +"object"
  2. Changed9 schema fields changed
    • addedInput schema / properties / custom_fields / description
      Added value: +"PRINT_QUEUE custom fields for the new queue item. Each entry: {customFieldId: string uuid, value: one-of {string, number, boolean, date, options[]}}."
    • addedInput schema / properties / custom_fields / items / properties
      Added value: +{
      +  "customFieldId": {
      +    "type": "string"
      +  },
      +  "value": {
      +    "type": "object"
      +  }
      +}
    • addedInput schema / properties / custom_fields / items / required
      Added value: +[
      +  "customFieldId",
      +  "value"
      +]
    • changedInput schema / properties / custom_fields / items / type
      Previous value: -"string"New value: +"object"
    • addedInput schema / properties / fileId
      Added value: +{
      +  "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).",
      +  "type": "string"
      +}
    • changedInput schema / properties / filesystem / description
      Previous value: -"ID of an existing UserFile to queue (from list_files)."New value: +"UserFile.uid of an existing library file (use list_files to discover). Either numeric id or UID string is accepted."
    • changedInput schema / properties / filesystem / type
      Previous value: -"integer"New value: +"string"
    • addedInput schema / properties / group / description
      Added value: +"Queue group id to add the item to. Use list_queue_groups to discover available groups."
    • changedInput schema / required
      Previous value: -[
      -  "filesystem"
      -]New value: +[]
  3. First observed

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this is a non-idempotent, non-read-only, non-destructive write, which is consistent with adding a queue item. The description explains the tags object format and the two file-source modes, which adds useful context beyond the raw annotations, but it doesn't mention that the operation may require write permissions or what happens if both sources are provided, despite the 'pick exactly one' rule.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph but is front-loaded with the core action and the critical 'pick exactly one' constraint. The tags example is useful even if a bit dense. Notably, the schema itself already contains a detailed tags description, so the description credits itself for the example without being overly redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema and the presence of 10 parameters including a complex nested tags object, the description does a solid job of clarifying the two file-source options and the tags structure. It only misses explicit mention of the 'for_groups', 'for_models', and 'for_printers' string parameters in the prose, but those are documented in the schema, so completeness is strong overall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers roughly 70% of parameters, and the description adds value by explaining the tags object with a concrete example and clarifying that fileId comes from the Upload endpoint while filesystem corresponds to a UserFile.uid. The description reinforces the mutually exclusive file-source choice and provides the key example for material colour tag assignment.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Queue') and resource ('a file for printing'), and immediately differentiates from siblings by naming the two mutually exclusive file sources (fileId vs filesystem). It also references the PRINT_QUEUE custom fields and tags object, which distinguishes it from related queue operations like update_queue_item or remove_from_queue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly says to pick exactly one file source between fileId and filesystem, and both schema descriptions anchor those sources to specific endpoints (files.simplyprint.io Upload; list_files). However, it doesn't explicitly state when to prefer this over sibling operations like approve_queue_item or update_queue_item, so exclusion guidance is partial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.