Skip to main content
Glama

SimplyPrint: 3D Print Farm Management

create_print_job

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

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
file_idNoHex bucket hash returned by the files.simplyprint.io Upload endpoint. Choose this when starting from a file uploaded via the API.
mms_mapNo
reprintNoPrevious print_job id to reprint with the same file and settings.
filesystemNoUserFile.uid of an existing library file. Choose this when starting from an already-imported file.
printer_idYesComma-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_fileNoExisting print queue item id. Choose this to start the job from a queued item (most common flow).
schedule_forNoHold 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_fieldsNoPRINT_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_optionsNo
next_queue_itemNoIf 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_fieldsNoPer-printer or per-queue-item PRINT_JOB custom fields. Each entry: {id: <string>, value: [customFieldSubmissions]}.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / schedule_for
      Added value: +{
      +  "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.",
      +  "type": "string"
      +}
  2. Changed3 schema fields changed
    • addedInput schema / properties / individual_custom_fields / items
      Added value: +{
      +  "properties": {
      +    "id": {
      +      "type": "string"
      +    },
      +    "value": {
      +      "items": {
      +        "properties": {
      +          "customFieldId": {
      +            "type": "string"
      +          },
      +          "value": {
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "customFieldId",
      +          "value"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "value"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / next_queue_item
      Added value: +{
      +  "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.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / printer_id / description
      Previous value: -"Comma-separated printer id(s) to start the job on. Must be operational."New value: +"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)."
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Beyond annotations, it discloses auto-start behavior when autostartPrints is enabled, reservation and print_pending behavior for scheduled jobs, quota-based allowance reservation, and per-printer deduplication for next_queue_item. These are meaningful, non-obvious runtime traits.

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

Conciseness5/5

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

The description is compact and front-loaded, with every sentence adding a distinct fact: core action, source exclusivity, custom-field support, auto-start behavior, and scheduling. No fluff or repetition.

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 tool's complexity, the combination of description and schema covers source selection, scheduling constraints, permissions, quotas, and custom fields well. Minor gaps remain: mms_map/start_options lack documentation and no response shape/return value is indicated.

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 82% and individual parameter descriptions already carry substantial weight. The description adds the crucial exclusivity rule across file sources and summarizes scheduling behavior, but leaves mms_map and start_options undiscussed.

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?

The description opens with a specific action, resource, and scope: 'Start a print job on one or more printers, now or at a chosen time.' It then distinguishes the tool by naming the five possible file-source modes, which helps separate it from queue-only or G-code siblings.

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?

It gives strong within-tool guidance: exactly one file source must be chosen, schedule_for is the way to delay printing, and next_queue_item=true has special matching behavior. It does not explicitly compare against sibling tools like add_to_queue, but the action and source semantics make the intended use clear.

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.