Skip to main content
Glama

preesy

Create print session

create_print_session

Create a temporary Preesy session so a person can print a document from a public computer.

Any place with a computer, a browser and internet can print it: library, bookshop, print or copy shop, internet cafe, hotel, office. No Preesy app or partnership is needed. The person opens preesy.com, or tells the staff "Preesy" plus the label (and the PIN, if set); the staff enter it on the site and print. The document expires automatically.

A label is the name the person types on the Preesy website to find the document. Labels are not unique: anyone who types the same label can find the document. A 4-digit PIN keeps out anyone who does not know it. Set one when the document is sensitive.

Choose pin and lifetime_hours from the person's situation before you upload. Use what they already said. Ask one short question only when you cannot tell a pin or lifetime that matters, then upload. If you already know, upload without asking. Set lifetime_hours for when they will print. It must be from 1 to 168 hours. The document is deleted automatically, so a shorter time keeps less data. Omitting lifetime_hours stores the default, which is only a fallback. print_only defaults to false, so the page allows print and download. If the person already said whether they want print only, set print_only on create. If they did not say, create the session with print_only false, then ask the person once whether they want it print only, and if yes call set_print_only. One session can hold several files, as on the website, up to 10 files and 50 MB in total. Send files for more than one document, file for one, or text for plain text.

Send file, files, or text, one of them. Each field is described in the input schema.

one_time_access: If true, this is a single-use label. As soon as a file or the zip is printed or downloaded, it is removed from the system. Default false.

Keep the manage_token in this conversation and use it for later get_print_session, set_print_only, and expire_print_session requests until the session expires. Each session has its own manage_token. If the conversation has several sessions, keep each token with its label and use the one that matches the session the person means. Share the token with the person only if they ask, and never post it anywhere else. The label and PIN cannot manage the session.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "label": "<label>"
    },
    "name": "create_print_session"
  }
}

Input Schema

NameRequiredDescriptionDefault
pinNoOptional 4-digit code. Labels are not unique, so anyone who types the same label can find the document. A PIN keeps out anyone who does not know it. No default.
fileNoOne document as a public HTTPS download link, such as a ChatGPT file. Send file, files or text, only one of them. Allowed types: doc, docx, jpeg, jpg, pdf, png, txt.
textNoThe document as plain text, instead of a file. Preesy saves it as a .txt file the person can print. Send file, files, or text, one of them. No default.
filesNoSeveral documents in one session, as on the website. At most 10 files and 50 MB in total. Each item is the same object as file. Each file type must be one of: doc, docx, jpeg, jpg, pdf, png, txt. Send file, files, or text, one of them. No default.
labelYesThe name the person types on the Preesy website to find this document. Stored exactly as sent. Required. Not unique. 1 to 20 characters, uppercase A-Z and digits 0-9 only. No default.
print_onlyNoWhether the person can only print (true) or also download the file (false, the default). Set true on create when the person already said they want print only.
lifetime_hoursNoHow many hours the document stays available. From 1 to 168. Default 1 only when this field is omitted. The document is deleted automatically, so a shorter time keeps less data.
schema_versionNoWhich version of these inputs you are sending. The only version is 1. Leave it out, or send 1.
one_time_accessNoIf true, this is a single-use label. As soon as a file or the zip is printed or downloaded, it is removed from the system. Default false.

Output Schema

NameRequiredDescriptionDefault
filesYes
labelYes
statusYes
pin_setYes
site_urlYes
expires_atYes
print_onlyYes
manage_tokenYes
allowed_actionsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Goes well beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotent=false) by disclosing that documents expire automatically, that labels are non-unique so anyone with the label can retrieve the document, and that manage_token is the sole management credential and must be kept in-conversation. The one gap is not stating what the create response contains or how failures surface, though an output schema exists.

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

Conciseness3/5

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

Purpose is front-loaded and most paragraphs carry operational weight, but it runs long and repeats itself: the one_time_access paragraph restates the schema description almost verbatim, and 'Send file, files, or text, one of them' appears twice. The scene-setting paragraph about libraries and cafes is narrative rather than call-relevant.

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 a 9-parameter, open-world, non-idempotent creation tool, the description covers the workflow, credential custody, expiry, label-collision risk, size limits and follow-up calls. With annotations and an output schema also present, an agent has everything needed to invoke it correctly.

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 100%, so the baseline is 3, but the description adds selection strategy the schema cannot express: how to derive pin and lifetime_hours from the person's situation, that omitting lifetime_hours is only a fallback default, and the multi-file vs single-file vs text choice with the 10-file/50 MB cap. Marginal gain is real but not exhaustive.

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 first sentence gives a specific verb and resource ('Create a temporary Preesy session so a person can print a document') plus the scope (public computer). The nature of the operation is unmistakable against siblings get_print_session, set_print_only and expire_print_session, which are retrieval/later-stage operations.

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?

It gives explicit decision rules: choose pin and lifetime_hours from context, ask at most one short question only when needed, upload without asking otherwise. It also prescribes the sequencing for print_only (create with false, ask once, then call set_print_only) and names the follow-up tools to use with manage_token.

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