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

NameRequiredDescriptionDefault
noteNo
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. Changed1 schema field changed
    • addedInput schema / properties / note
      Added value: +{
      +  "maxLength": 255,
      +  "type": "string"
      +}
  2. 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"
  3. 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: +[]
  4. First observed

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare this is a non-read-only, non-idempotent, non-destructive write, so the safety profile is covered structurally. The description adds the meaningful constraint that exactly one file source must be supplied and explains tag semantics, but says nothing about failure behavior when both or neither source is given, nor about permissions.

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?

Three sentences, front-loaded with the action, then the source-selection rule, then the tag capability. The inline JSON example is compact enough to earn its place, though it partially duplicates the schema's own tags description.

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

Completeness3/5

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

An 11-parameter creation tool with nested objects and no output schema needs more. The description handles file sources, custom fields and tags, but silently omits position, amount, group, and the for_groups/for_models/for_printers trio, forcing the agent into the schema to understand scoping behavior.

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?

Schema coverage is a middling 64%, and the description compensates well for the two most important parameters: it explains that fileId is a hex hash from the Upload endpoint versus filesystem being a UserFile.uid, and it supplies a concrete tags example covering material/colour. The remaining parameters (for_groups, for_models, for_printers, note) are left untouched, so it falls short of full compensation.

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

Purpose4/5

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

The description opens with a specific verb and resource ('Queue a file for printing'), which is clearly distinguishable from sibling readers like list_queue or get_queue_item. It does not, however, differentiate itself from create_print_job, the most plausible adjacent write tool, leaving that disambiguation to the agent.

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?

'Pick exactly one file source: fileId ... or filesystem ...' is an explicit mutual-exclusion rule with the condition that selects each. What is missing is any guidance on when to use this versus create_print_job, or what prerequisites (a file must already exist) apply.

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.