Skip to main content
Glama

Start print job

start_print_job
Destructive

Requires print.org. Queue a PDF when the label count is above 50. Same fields as print_labels: item_ids or all_items (exactly one), order, profile_id, sheet_number, quality, copies_per_label, start_position. Duplicate ids in item_ids are ignored; use copies_per_label for repeats. When order is omitted, the saved organization print_order_default is used. If that value is empty, the job uses barcode and the response has needs_preference, order_options, and preference_question. Ask the user that question, then call update_print_preferences (items.write). Digit-only barcodes sort numerically; mixed values sort alphabetically. Empty sort values print last. profile_id is optional only when every item already shares one catalog product label. If profile_source is catalog_product, tell the user which profile_id was used and ask if they wanted a different profile. Returns job_id, status, and label_count. Plan limits for items per job, labels per job, and monthly labels are checked before the job is queued. copies_per_label cannot exceed 5000, the existing export queue ceiling. Poll get_print_job. Do not use print_labels above 50 labels. A profile with a saved label sheet fills that sheet. start_position is optional and 1-based. It must be a whole number from 1 through the number of labels on the sheet. A roll profile ignores it and adds warnings.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "start_print_job"
  }
}

Input Schema

NameRequiredDescriptionDefault
orderNo
qualityNo
item_idsNo
all_itemsNo
profile_idNo
sheet_numberNo
start_positionNo
copies_per_labelNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations declare a destructive, non-idempotent write, and the description adds substantial context beyond them: the print.org permission requirement, plan-limit checks before queuing, duplicate-id handling, the needs_preference fallback flow, sort ordering rules, and the 5000-copy ceiling. It also discloses the failure/warning path (roll profile ignores start_position and adds warnings). No contradiction with the destructiveHint annotation, since queueing a job is a state-mutating operation.

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?

Nearly every sentence carries actionable information and the tool boundary is front-loaded, but it reads as a dense run-on with mild redundancy (copies_per_label's 5000 ceiling is split across two sentences). Organized but could be tightened.

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

Completeness5/5

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

For an 8-parameter destructive job tool with no output schema, the description covers returns (job_id, status, label_count), the conditional preference-response fields, prerequisites, and limits, so an agent has what it needs to call and follow up correctly.

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

Parameters5/5

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

With 0% schema description coverage, the description carries the full load and does so well: it explains the item_ids/all_items mutual exclusivity ('exactly one'), the order fallback to print_order_default, duplicate-id semantics, copies_per_label for repeats, and start_position's 1-based whole-number range. These add real meaning beyond the bare enum/integer schema.

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 and resource ('Queue a PDF') with an explicit scope condition ('when the label count is above 50') and explicitly routes away from print_labels ('Do not use print_labels above 50 labels'). An agent can distinguish this from print_labels without inspecting either schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use (>50 labels), when-not ('Do not use print_labels above 50 labels'), and the correct follow-up path ('Poll get_print_job', call update_print_preferences with items.write). Alternatives and conditions are named, not inferred.

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.

Resources